1./: 本身不是一个具体的参数,只是限制前面的参数必须以位置参数传入:positional_only
*: 本身也不是一个具体的参数,只是限制后面的参数必须以关键字的形式传参 sort(/, *, key=None, reverse=False)
def special_arg(arg1, arg2, /):
print(arg1, arg2)
# 【×】positional-only arguments passed as keyword arguments: 'arg2'
special_arg(4, 5)
def special_arg2(arg1 , arg2, *, arg3=None, arg4=None):
print(arg1, arg2, arg3, arg4)
# special_arg2() takes 2 positional arguments but 4 were given
special_arg2(1, 2, arg3=3, arg4=4)
2.嵌套函数
def outer(): # outer = function obj
def inner(): # inner = function obj1
print("this is inner function")
print("this is outer function")
inner()
# return inner
#
# inner = outer()
# inner()
# test = outer
# test()
3.递归函数:自己调用自己
# 1+2+3+4+5+6+7...100=5050
# func(n) => n = 100
# 1+2+3+4+5+6+7...100
# func(n-1) =>
# 1+2+3+4+5+6+7...+99
# func(n) => func(n-1) + n
# n * (n + 1) / 2 = 5050
def func_sum(n):
if n == 1:
return 1
else:
return func_sum(n-1) + n
print(func_sum(100))
# 1 3 5 7 + 99
# func(n-2)+n
4.其他用法
id()
print()
sum()
open()
ord()
chr()
len()
都是函数,从哪里来的
Python解释器带了一个自带模块:builtins.py(可以在里面找没见过的函数) Built-in functions, exceptions, and other objects.
内建的函数,异常,其他对象
no imports: 无需导入直接使用
all() =>bool()
any() 所有都为。。
callable() 是否可调用的
abs() absolute:绝对值
dir() 展示一个对象中所有的属性(变量和函数)的名字
divmod() 取商和取余