python第十四天

必选参数:

def f(a,b):

return a+b

print(f(1,2))    输出3 #有几个必须传几个

默认参数:

def f(a,b=100):

return a+b

print(f(1))    输出101  # 1默认给a,b=100

print(f(1,2))  输出3  #有值就传递,没有就不传

def f(a=100,b=200):

return a+b

print(f())      输出300 #都有默认值可以不传

print(f(1))    输出201  #默认给a赋值

print(f(b=2))  输出102  #给b赋值

def f(a=1,b):  #a为默认值

print('a=%s,b=%s'%(a,b))

f(200)  输出错误。

#默认值的参数一定写在非默认值参数的后面!

可变参数元祖:

将传入的参数,依次放入元组中

如果不传,得到空元组()

def f(*num):

print('a=%s'%str(num)) # %s是转化为字符串,所以加str为字符串

f(1)    输出a=1

f(1,2,3,4,5)  输出a=(1,2,3,4,5)

def f(*nums):

print(nums)

f(1,2,3,4,5)

f(100,110)

f(1111)

f([1,2,3],None,True,{'a':20})  # 传递任何类型都行

f()

求和 sum为函数内置求和:

def f1(*args):

print(sum(args))

num1=100

num2=200

num3=30

f1(num1,num2,num3)  输出330

ls = [100,200,300]

f1(ls[0],ls[1],ls[2])  输出600

ls = [i for i in range(5)]  #元祖也可以

f(*ls)  输出(0,1,2,3,4)  #把所有值依次拿到

f(ls)  输出([0,1,2,3,4],)  #把这整个当成一个元祖

求和:

f1(*ls)  输出10

可变参数 字典:

调用传值的时候,键 = 值

键不要加单引号,值是任何类型

def f(**kvs):

print(kvs)    输出 {'c':[1,2,3],'b':'abc','a':1}

#print(kvs[a])  指定拿a传过去

f(a=1,b='abc',c=[1,2,3])

infos={'sid':1,'sname':'老王'}

f(**infos)  输出{'sid':1,'sname':'老王'}

关键字参数:

def f(a,b):

print('a={0},b={1}'.format(a,b))

f(b=1,a=2)

参数的顺序

def f(a,b=1,*c,**d):  #这个顺序

print(a)

print(b)

print(c)

print(d)

f(1,2,3,4,5,67,dd=100,bb=30)

输出:

1

2

(3,4,5,67)

{'bb':30,'dd':100}

全局和局部变量:

在函数之前,定义的所有的变量都是全局变量。一旦定义了,后面所有的地方一直访问使用。

在函数里定义的变量,都是局部变量,一旦函数运行完毕,局部变量就会被垃圾回收机制回收。

1、参数

2、在函数里直接定义的变量

a = 100

print('a={0}'.format(a))  输出a=100

for i in range(100):

pass

print(i)  输出99

def f():

a=200

f()

print('a={0}'.format(a))  输出

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容