python进阶书(python函数进阶)
导读:# 2.多函数执行流程 print( ...
# 2.多函数执行流程
print()
print(2.多函数执行流程)
b = 1
def test_b():
global b
b = 20
def test_c():
print(b)
test_b() # 执行完后 ,b为全局变量 ,值为20
test_c() # 输出20
# 3.函数的返回值
print()
print(3.函数的返回值)
def func1(a, b):
return a+1, b+3 # 如果返回多个参数 ,会按顺序存放到元组中
# 如果返回值是一个 ,则接收参数为1个
# 如果返回值是多个 ,则接收参数为一个(元组)或者返回的个数(解包)
print(func1(1, 2)) # 输出(2, 5)
print(type(func1(1, 2))) # tuple类型
print(func1(1, 2)[0]) # 输出元组(2, 5)的索引为0的值
data1, data2 = func1(1, 2) # 解包(拆包)
print(data1, data2)
# 4.交换值
print()
print(4.交换值)
x = 1
y = 2
print(x, y)
x, y = y, x # 交换值
print(x, y)
# 5.可变类型和不可变类型
# 可变类型 列表 字典 集合
# 不可变类型 数字 字符串 元组 布尔
# 6.参数
print()
print(6.参数)
def func4(name, age, gender):
print(f我的姓名{name} ,\
我的年龄{age} ,我的性别:{gender})
func4(小明, 20, 女) # 要注意顺序
# 6.1 关键字传参
# 很安全
# 不必考虑顺序
func4(age=20, name=小放, gender=man)
# 6.2 默认参数
def func5(name, age=20, gender=男):
print(f我的姓名{name} ,\
我的年龄{age} ,我的性别:{gender})
func5(age=20, name=小放, gender=女) # 输出的gender是女,而不是男
# 当调用函数的参数有值 ,则默认参数的值被替换
# 6.3 不定长传参
# *args arguments
# **kwargs
# 这个名字可以改的 ,但是一般不改
# 例如:*args == *abv
# **kwargs == **qqq
# *args 把没有形参的实参进行打包,放到一个元组中
def fun(data1, data2, *args):
print(data1, data2, args)
print(args[0])
fun(1, 2, 3, 4) # 输出 1 2 (3, 4)
# **kwargs
# 把没有形参的实参进行打包,但是只打包关键字参数
# 字典 key word arguments
def fun1(**kwargs):
print(kwargs) # 输出字典
fun1(name=小明, age=20, gender=女)
# 今日练习
定义一个模拟ATM机操作的场景
(1)需要一个存钱和取钱的函数
(2)设置全局默认资金1000
(3)调用存钱函数 ,存放800元 ,并将操作后函数将余额打印出来
(4)调用取钱函数,取钱500元 ,并将操作后函数将余额打印出来
print()
print(今日练习)
money = 1000
def cunfang_money(): # 定义存钱函数
global money # 声明变量为全局变量
money -= 800 # 存放800元
print(money)
def quchu_money():
global money # 若不再次声明为全局变量 ,则在函数内为局部变量
money += 500
print(money)
cunfang_money()
quchu_money()
声明:本站所有文章 ,如无特殊说明或标注 ,均为本站原创发布 。任何个人或组织 ,在未征得本站同意时 ,禁止复制 、盗用 、采集、发布本站内容到任何网站 、书籍等各类媒体平台 。如若本站内容侵犯了原著者的合法权益 ,可联系我们进行处理。
创心域SEO版权声明:以上内容作者已申请原创保护,未经允许不得转载,侵权必究!授权事宜、对本内容有异议或投诉,敬请联系网站管理员,我们将尽快回复您,谢谢合作!