python文件处理
1全读到内存
2创建一个新的文件
函数为什么要有返回值?
因为我想要这个函数整个执行的一个结果。
参数:
形参:没有真正在内存中。
实参:实际存在,会在内存当中真是存在。用来调用的函数参数。
形参和实参的对应关系,是从左到右一一对应的。
位置参数:按照位置对应关系对应的有分前后关系的参数。
位置参数与关键字参数的顺序:位置参数要在关键字参数(如:x=3)的前面。
默认参数:已经用关键字赋值了的关键字参数。
在写形参的时候,定义好的参数,叫作默认参数。
默认参数在函数调用的时候,可有可无。
参数组:
当实参不固定的时候,可以用参数组。用“*”,接收的是N个位置参数,转换成元组的形式。
如:
def test(*args):
print(args)
test(1,2,3,4,5)
或:
test(*[1,2,3,4,5])
显示:(1,2,3,4,5)
接收字典:用“**”,可以把N个关键字参数,转换成字典的形式。
如:
def test2(**kwargs):
print(kwargs)
test2(name='stone',age=22,sex='F')
或:
test2(**{'name':'stone','age':22,'sex':'F'})
显示:{'name':'stone','age':22,'sex':'F'}
可以只打印选择具体某一个参数的键对应的值的参数:
print(kwargs['sex'])
显示:F
例子:(**kwargs,与位置参数混合使用)
def test3(name,**kwargs):
print(name)
print(kwargs)
test3('stone',age=22,sex='m')
显示:
stone
{'sex':'m','age':'22'}
例子:(**kwargs,与默认参数混合使用(参数组**kwargs一定往后放))
def test4(name,age=18,**kwargs):
print(name)
print(age)
print(kwargs)
test 4('stone',sex='m',hobby='music')
显示:
stone
18
{'hobby':'music','sex':'m'}
局部变量和全局变量:
局部变量:在子程序(函数)中定义的变量,就是局部变量。
全局变量:在程序的一开始定义的变量,就是全局变量
字符串和整数,是不能在局部(函数)里改的。
其他稍微复杂一点的数据类型,如列表,字典,集合,类,都是可以在局部里面直接改全局的。
递归:自己调用自己,得能结束。
1要有结束 2必须每进入一层问题规模要减少 3效率不高
浙公网安备 33010602011771号