欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

python函数知识三 函数名的使用、格式化、递归

程序员文章站 2022-03-07 10:10:59
12.函数名的使用 函数是第一类对象 1. 函数名可以当做值被赋值给变量 2. 函数名可以当做元素存放在容器中: 3. 函数名可以当做函数的参数 4. 函数名可以当做函数的返回值 13.格式化f: python3.6版本及以上可以使用 14.递归: 特点:不断调用自己本身 1. 死递归 不断调用自己 ......

12.函数名的使用

函数是第一类对象

  1. 函数名可以当做值被赋值给变量
def func():
    print(1)
    return
a = func
print(func)
print(a)
a()
  1. 函数名可以当做元素存放在容器中:
def func():
    print(1)
    return
lst = [func,func,func]
for i in lst():
    i()
  1. 函数名可以当做函数的参数
def func(f):
    f()
    return
def foo():
    print(123)
    return
func(foo)
  1. 函数名可以当做函数的返回值
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.递归:

特点:不断调用自己本身

  1. 死递归 -- 不断调用自己
  2. 有明确的终止条件

满足以上两个条件是有效递归

递:一直执行

归:从结束开始往回退

官方声明:最大层次 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))
    

python函数知识三 函数名的使用、格式化、递归

可变数据类型默认参数的坑:

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']
'''