返回值
**返回值示例
**
# 单返回值示例
def test1():
name="zs"
return name
n=test1()
print("名字是:%s" %n)
# 多返回值,返回元组
def test2():
name="zs"
age=12
return name,age
n,a=test2()
print("名字是:%s,年龄是:%d" %(n,a))
#第二种返回值接收形式
result=test2()
print(result)
print("名字是:%s,年龄是:%d" %(result[0],result[1]))
# 多返回值,返回元组2,与上一个函数返回的结果是一样的
def test3():
name="zs"
age=12
return (name,age)
n,a=test3()
print("名字是:%s,年龄是:%d" %(n,a))
输出结果
交换变量的值
a=100
b=10
# 形式一
b,a=a,b
print(b,a)
# 形式二,注: 其实两种方式是一样的,只是看起来一个加了括号一个没加,但其实后面都是用的元组
b,a=(a,b)
print(b,a)
不可变与可变参数
示例
# 可变与不可变类型参数,使用赋值语句 不会影响外部调用时的 变量
def test1(num,num_list):
num=10
num_list=[4,5,6]
print("函数内部num值:%d" %num)
print("函数内部num_list值:",num_list)
gl_num=3
gl_num_list=[1,2,3]
test1(gl_num,gl_num_list)
print("函数外部num值:%d" %gl_num)
print("函数外部num_list值:",gl_num_list)
# 可变类型的参数,使用 方法赋值,会影响外部调用时的 变量
def test2(num_list):
# 形式一
num_list.append(9)
# 形式二
num_list.extend([2,2,2])
# 形式三(默认使用的也是 extend)
num_list+=[3,3,3]
print("函数内部调用后的值是:",num_list)
gl_num_list2=[1,1,1]
test2(gl_num_list2)
print("函数外部调用后的值是:",gl_num_list2)
输出结果
缺省参数
def test1(name,work="工程师",gender="男"):
print("名字是:%s,职位是:%s,性别是:%s" %(name,work,gender))
test1("张三",gender="女")
test1("李四",work="设计师")
test1("王五",work="设计师",gender="人妖")
输出结果
多值参数
参数名前增加一个** * 可以接收 元组**
参数名前增加 两个** * 可以接收 字典**
一般在给多值参数命名时,习惯使用以下两个名字
args 是 arguments 的缩写,有变量的含义
**kw 是 keyword 的缩写,kwargs 可以记忆 键值对参数
**
示例
# 测试普通参数,元组,字典传参
def test(num,*args,**kwargs):
print(num)
print(args)
print(kwargs)
test(1,2,3,4,5,nmae="zs",age="12")
输出结果
**元组和字典的拆包
**
在 元组变量前**,增加一个 ***
在 字典变量前**,增加两个 *
**
示例
def test(*args,**kwargs):
print(args)
print(kwargs)
# 不使用拆包
test(1,2,3,name="zs",age=12)
# 使用拆包
t_tuple=(1,2,3)
d_dict={"name":"zs","age":12}
test(*t_tuple,**d_dict)
**输出结果
**
示例
# 使用递归 计算累加 1+2+3....num
def sum_num(num):
# 定义出口
if num==1:
return 1
tmp=sum_num(num-1)
return num+tmp
total=sum_num(10)
print("累加的值是:",total)
输出结果
全部0条评论
快来发表一下你的评论吧 !