函数的返回值2:
# return除了能够将数据返回之外
# 还有一个隐藏功能,结束函数
# 返回多个值
def create_nums(num):
if num==100:
return num + 1
else:
return num + 2
result1=create_nums(100)
result2=create_nums(200)
print(result1) #输出101
print(result2) #输出202
函数的返回值3:
def calc_2_num(a,b):
sum01=a+b
sub01=a-b
multi01=a*b
divide01=a/b
#return [sum01,sub01,multi01,divide01] #[120, 80, 2000, 5.0]
#return {'sum01':sum01, 'sub01':sub01,'multi01':multi01,'divide01':divide01} #输出字典
#return (sum01,sub01,multi01,divide01) #输出元组
return sum01,sub01,multi01,divide01 #默认输出是元组 (120, 80, 2000, 5.0)
result=calc_2_num(100,20)
print(result) #(120, 80, 2000, 5.0)
Python拆包:
m = 1,2,3
print(m) #(1,2,3)
#拆包
#注意: 需要拆的数据的个数要与变量的个数相同,否则程序会异常
a,b,c = 1,2,3
print(a) #1
print(b) #2
print(c) #3
#除元组外,还可以对列表,字典等拆包
a,b,c = [1,2,3]
print(a) #1
print(b) #2
print(c) #3
a,b = {'name':'张三','age':18} #只能对key拆包
print(a) # name
print(b) # age
函数拆包应用:
# 函数返回多个值,需要其中某个数据时,可以拆包
def calc_2_num(a,b):
sum01=a+b
sub01=a-b
multi01=a*b
divide01=a/b
return sum01, sub01, multi01, divide01 # 默认输出是元组 (120, 80, 2000, 5.0)
#返回值是元组,所以可以直接拆包
a,b,c,d = calc_2_num(100,20)
print(a) #120
print(b) #80
print(c) #2000
print(d) #5.0
函数的参数2:位置参数
# 位置参数: 可以通过指定参数名字的方式进行传值
# 语法: def print_info(name,age):
def print_info(name,age):
#打印任何传入的字符串
print('我的名字叫:%s'%name)
print('我的年龄是:%d'%age)
#调用print_info函数
print_info('张三',18) #参数按照从左向右的位置依次传入,叫位置参数
print_info('李四',20)
函数的参数3:缺省参数
# 缺省参数 : 在形参中默认有值的参数
# 注意: 缺省参数一定要位于位置参数后面
def print_info(name,age=18):
#打印任何传入的字符串
print('我的名字是:%s'%name)
print('我的年龄是:%d'%age)
#调用print_info函数
print_info('张三') #如果不传age ,age默认18
print_info('张三',30) #如果传age,显示传入的值
函数的参数4:不定长参数
# 不定长参数: 有时可能需要一个函数能处理比当初声明时更多的参数。这些参数就叫不定长参数
# 加了星号*的变量args会存放所有未命名的变量参数,args为元组
def sum_nums(a,b,c=0,*args):
result=a+b+c
print(a)
print(b)
print(c)
print(args)
print(result)
sum_nums(11,22,33,44,55,66) #11
#22
#33
#(44, 55, 66) 不定长参数
#66
#当缺省参数在*args后面时,并不会赋给缺省参数新的数据
def sum_nums_3(a,*args,b=22,c=33):
result=a+b+c
print(a)
print(b)
print(c)
print(args)
sum_nums_3(100,200,300,400,500,600,700) #100
#22
#33
#(200, 300, 400, 500, 600, 700) 不定长参数
函数的参数5: 关键字参数
# 关键字参数 : 存放key=value形式的参数 (存放字典 放在参数最后面)
# 变量**kwarg会存放key=value的参数,kwargs为字典
# 变量**kwarg必须放在所有参数的最右侧
# keywords: 关键字
def sum_nums(a,b=11,c=22,*args,**kwargs):
print(a)
print(b)
print(c)
print(args)
print(kwargs)
sum_nums(100,200,300,400,500,name='张三',age=18) #100
#200
#300
#(400, 500) *args 不定长参数
#{'name': '张三', 'age': 18} **kwargs 关键字参数
交换两个变量的值:
# 第一种方法
a = 4
b = 5
c = a
a = b
b = c
print(a) #5
print(b) #4
# 第二种方法 借用列表
a=4
b=5
a=[a,b]
b = a[0]
a = a[1]
print(a) #5
print(b) #4
# 第三种方法 Python特有 拆包
a=4
b=5
a,b = b,a
print(a) #5
print(b) #4