当前位置:
首页 > temp > python入门教程 >
-
python函数进阶
# 1.函数的作用域 # 全局变量的作用域: # 一般在函数体外定义的变量成为全局变量,在函数内部定义的变量称为局部变量。 # 全局变量所有作用域都可用,局部变量只能在本函数可用,变 # 量的使用顺序是,局部变量 > 全局变量, 也就是说:优先使用局部变量 # # global关键字: # 为了解决函数内使用全局变量的问题, # python增加了global关键字,利用它的特性,可以指定变量的作用域。 print('1.函数的作用域') # 在函数外面定义变量 可以在函数里面被调用, # 但是只有可变类型对象可以进行操作,不可变类型对象不可操作 a = 1 # 全局变量 def func(): global a # 声明变量为全局变量 a = 100 print(a) func() # 若没有调用这个函数,则下一行输出1 print(a) # 输出100,因为这时a是全局变量
# 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 add(add_money: float): """ 存款函数 :param add_money: 数字 :return: 数字 """ global money money += add_money # 现有金额加存款金额 print(f'操作成功,您当前的余额是{money}元') # 余额打印 def reduce(reduce_money: float): """ 取款函数 :param reduce_money: :return: """ global money # 若不再次声明为全局变量,则在函数内为局部变量,会报错! money -= reduce_money print(f'操作成功,您当前的余额是{money}元') # 余额打印 add(800) reduce(500)
出处:https://www.cnblogs.com/qc2012/p/16909991.html
最新更新
nodejs爬虫
Python正则表达式完全指南
爬取豆瓣Top250图书数据
shp 地图文件批量添加字段
爬虫小试牛刀(爬取学校通知公告)
【python基础】函数-初识函数
【python基础】函数-返回值
HTTP请求:requests模块基础使用必知必会
Python初学者友好丨详解参数传递类型
如何有效管理爬虫流量?
2个场景实例讲解GaussDB(DWS)基表统计信息估
常用的 SQL Server 关键字及其含义
动手分析SQL Server中的事务中使用的锁
openGauss内核分析:SQL by pass & 经典执行
一招教你如何高效批量导入与更新数据
天天写SQL,这些神奇的特性你知道吗?
openGauss内核分析:执行计划生成
[IM002]Navicat ODBC驱动器管理器 未发现数据
初入Sql Server 之 存储过程的简单使用
SQL Server -- 解决存储过程传入参数作为s
关于JS定时器的整理
JS中使用Promise.all控制所有的异步请求都完
js中字符串的方法
import-local执行流程与node模块路径解析流程
检测数据类型的四种方法
js中数组的方法,32种方法
前端操作方法
数据类型
window.localStorage.setItem 和 localStorage.setIte
如何完美解决前端数字计算精度丢失与数