python函数知识三 函数名的使用、格式化、递归
程序员文章站
2022-03-07 10:10:59
12.函数名的使用 函数是第一类对象 1. 函数名可以当做值被赋值给变量 2. 函数名可以当做元素存放在容器中: 3. 函数名可以当做函数的参数 4. 函数名可以当做函数的返回值 13.格式化f: python3.6版本及以上可以使用 14.递归: 特点:不断调用自己本身 1. 死递归 不断调用自己 ......
12.函数名的使用
函数是第一类对象
- 函数名可以当做值被赋值给变量
def func(): print(1) return a = func print(func) print(a) a()
- 函数名可以当做元素存放在容器中:
def func(): print(1) return lst = [func,func,func] for i in lst(): i()
- 函数名可以当做函数的参数
def func(f): f() return def foo(): print(123) return func(foo)
- 函数名可以当做函数的返回值
def func(): def foo(): print(123) return return foo a = func() a()
13.格式化f:
python3.6版本及以上可以使用
#填充字符串 s = f"你好{'啊'}" s1 = f"你好{'a'}" print(s) print(s1)
#填充变量 s = "不去" s2 = f"我去{s}"
#填充计算公式 s1 = f"{35+15}" print(s1)
#填充表达式 a = 10 b = 20 s1 = f"{a if a>b else b}" print(s1)
#填充大括号 s1 = f"{{{{{'我勒个去'}}}}}"#每两个显示一个 print(s1) #{}大括号内可以放{},int,方法,函数,list,str,字典值 #{}内不可放符号,要用引号引起来 s1 = f"{{}{}{}{}}" print(s1) s1 = f"{print(123)}" print(s1)
14.递归:
特点:不断调用自己本身
- 死递归 -- 不断调用自己
- 有明确的终止条件
满足以上两个条件是有效递归
递:一直执行
归:从结束开始往回退
官方声明:最大层次 1000,实际测试998/997
def func(): print(123) func() func()
#猜数: ''' 1.宝元 18-2-2-2 2.太白 18-2-2 3.wusir 18-2 4.alex 18 ''' def age(n): if n == 4: return 18 else: return age(n+1)-2 print(age(1)) #分布解析: def age4(n): if n == 4: return 18 def age3(n): if n == 4: return 18 else: return age4(n+1)-2 def age2(n): if n == 4: return 18 else: return age3(n+1)-2 def age1(n): if n == 4: return 18 else: return age2(n+1)-2 print(age(1))
可变数据类型默认参数的坑:
def func(a,lst = []): lst.append(a) return lst lst1 = func(10) lst2 = func(123,[]) lst3 = func('aaa') print(lst1) print(lst2) print(lst3) ''' 结果: [10,'aaa'] [123] [10,'aaa'] '''