Python_基础_6
1函数基础
def sel_func():print('显示余额')print('存款')print('取款')print('恭喜您登录成功')
sel_func()
print('您的余额是9.99')
sel_func()
print('取了0.99元')
sel_func()
def add_num(a, b):return a + bresult = add_num(1, 2)
print(result)
# 函数体内 return下方的函数不会执行
# 函数的说明文档
# help() 查看函数的说明文档 help(help)
# 说明文档只能写在第一行
def sum_num(a, b):"""求和函数"""return a + bhelp(sum_num)# 高级使用 在注释内敲回车def sum_num1(a, b):"""求和函数1:param a:参数1:param b:参数2:return: 返回值"""return a + bhelp(sum_num1)
# 函数嵌套调用
def testB():print('这里是testB')def testA():print('这里是testA')testB()testA()
# 函数嵌套应用
# 1.1打印一条横线
def print_line():print('-' * 20)print_line()# 1.2打印多条横线
def print_lines(num):i = 0while i < num:print_line()i += 1print_lines(3)
print()# 2.1求三个数之和
def sum_num(a, b, c):return a + b + cresult = sum_num(1, 2, 3)
print(result)# 2.2 求三个数的平均值
def average_num(a, b, c):sumResult = sum_num(a, b, c)return sumResult / 3result1 = average_num(1, 2, 3)
print(result)
2函数进阶
2.1函数的作用域
指的是变量生效的范围,主要分为两类:局部变量和全局变量
2.1.1 局部变量
局部变量 定义在函数体内部的变量,只在函数体内部生效
局部变量的作用:在函数体内部,临时保存数据,即当函数调用完成后,则销毁局部变量。
#定义在函数内部的变量,在函数外部访问则立即报错
2.1.2全局变量
指的是在函数体内、外都能生效的变量
# 修改全局变量
a = 100def testA():print(a)def testB():a = 200print(a)testA() # 100
testB() # 200
print(f'全局变量{a}') # 100# 在函数体内部修改全局变量
def testB1():global aa = 200testB1()
print(f'全局变量a={a}') # 200
2.2多函数程序执行流程
glo_num = 0def test1():global glo_numglo_num = 100def test2():print(glo_num)print(glo_num) # 0 还没有调用函数1
test1()
test2() # 100 先调用了函数1
print(glo_num) # 100
2.3返回值作为参数传递
def test1():return 50def test2(num):print(num)result = test1()
test2(result) # test2(test1())
2.4函数的返回值
# 有多个返回值的写法def return_num1():return 1return 2print(return_num1()) # 1# 正确写法def return_num2():# return 1, 2 # 返回的是元组 (1, 2)# return 后面可以直接书写 元组 列表 字典 返回多个值# return [100, 200] # [100, 200]return {'name': 'whh', 'age': 2}print(return_num2())
2.5函数的参数
# 1位置参数
# 传递和定义参数的顺序和个数必须一致
def user_info(name, age, gender):print(f'名字{name},年龄{age},性别是{gender}')user_info('tom', 20, 'man')
# 2关键字参数
# 函数调用通过“键=值”形式加以指定。消除了参数的顺序的要求
# 函数调用是,如果有位置参数时,位置参数必须在关键字参数的前面,
# 但关键字之间不存在先后顺序
def user_info(name, age, gender):print(f'名字{name},年龄{age},性别是{gender}')user_info('tom', gender='man', age=20)
# 3缺省参数
# 缺省参数也叫做默认参数,用于定义函数,为函数提供默认值,
# 调用函数时可不传该默认参数的值
# 注意:所有位置参数必须出现在默认参数前,包括函数的定义和调用
# 函数调用时,如果为缺省函数传值则修改默认参数值;否则使用这个默认值def user_info(name, age, gender='男'):print(f'名字{name},年龄{age},性别是{gender}')user_info('tom', 20)
user_info('rr', 23, '女')
不定长此参数也叫做可变参数
用于不确定嗲用的时候会传递多少个参数(不穿参也可以)。
可用(packing)位置参数,或者包裹关键字参数,来进行参数传递
# 4.1包裹位置传递
# 传进的所有参数都会被args变量收集,它会根据传进参数的位置合并为一个元组
# args是元组类型,这就是包裹位置传递
def user_info(*args):print(args)user_info('Tom') # ('Tom',)
user_info('Tom', 22) # ('Tom', 22)
# 4.2 包裹关键字传递def user_info(**kwargs):print(kwargs)user_info() # {}
user_info(name='Tm', age=18, id=110)
# {'name': 'Tm', 'age': 18, 'id': 110}
# 无论是包裹位置传递还是包裹关键字传递,都是一个组包的过程
2.6拆包和交换变量值
2.6.1拆包
# 拆包:元组
def return_num():return 100, 200num1, num2 = return_num()
print(num1)
print(num2)# 拆包:字典
dict1 = {'name': 'Tom', 'age': 18}
a, b = dict1print(a)
print(dict1[a])
print(b)
print(dict1[b])
2.6.2交换变量值
# 需要交换a = 10和b = 20的值
# 1 借助第三个变量
a, b, c = 10, 20, 0
c = a
a = b
b = c
print(f'a={a},b={b}') # a=20,b=10# 2
a, b = 1, 2
a, b = b, a
print(f'a={a},b={b}') # a=2,b=1
2.7引用
在python中,值都是靠引用来传递的
可以使用id()来判断两个变量是否为同一个值的引用。
可以将id值理解为那块内存的地址标识
2.7.1引用之不可变类型
# int
a = 1
b = a
print(b) # 1
print(id(a)) # 140713135498064
print(id(b)) # 140713135498064a = 2
print(b) # 1,说明int为不可变类型
print(id(a)) # 140713135498096
print(id(b)) # 140713135498064
2.7.2引用之可变类型
# 列表
aa = [10, 20]
bb = aaprint(id(aa)) # 1471838577288
print(id(bb)) # 1471838577288aa.append(30)
print(bb) # [10, 20, 30] 列表为可变类型print(id(aa)) # 1471838577288
print(id(bb)) # 1471838577288
2.7.3引用当作实参
def test1(a):print(a)print(id(a))a += aprint(a)print(id(a))# int: 计算前后id值不相同
b = 100
test1(b)
# 列表:计算前后id值相同
c = [11, 22]
test1(c)
2.8可变和不可变类型
数据能够直接进行修改的就是可变类型
2.8.1可变类型
列表、字典和集合
2.8.2不可变类型
整型、浮点型、字符串、元组
Python_基础_6相关推荐
- Python_基础知识储备
目录 目录 前言 初识Python 解析型与编译型 OOP与POP 相关概念1 Python的解释器 Python程序设计的思想 Python的编程风格 最后 前言 前面的博文从记录了如何Setup ...
- python语法基础知识-python_基础知识_安装和基础语法
一.python安装 先在官网,找到所属系统的安装环境.建议选择3.x 建议选择安装稳定版本. 选择自行配置安装环境. 直接选择Next,进行下一步. 选择安装目录. 安装页面,等待安装. 安装完成, ...
- Python_基础知识02
1. 主要内容 回顾复习 程序结构--循环结构[while] break关键字 continue关键字 else关键字 案例操作 2. 课堂内容 1) 回顾复习 编程基础结构:程序结构 l 顺序结构 ...
- Python_基础语法_字符串基本操作__声明方式_占位符_切片_转义字符_加密解密(6)
目录: 一.字符串介绍 1.字符的渲染 2.字符的编码 3.不可变类型 二.字符串的基本操作 1.字符串声明 2.字符串占位符号 3.字符串索引切片(包含练习) 4.字符串转义 三.字符串的高级操作 ...
- Python_基础_5
1公共操作 str1 = 'aa' str2 = 'bb'list1 = [1, 2] list2 = [10, 20]t1 = (1, 2) t2 = (10, 20)dict1 = {'name' ...
- Python_基础_4
1元组 # 一个元组可以存储多个数据,但是元组内的数据不可以修改 # 多个数据元组 t1 = (10, 20, 30) # 单个数据元组 t2 = (10,)# 查找 tuple1 = ('aa', ...
- Python_基础_3
1字符串 1.认识字符串 2.下标 3.切片 4.常用操作 1.1 # 字符串 a = 'hello world' print(a) # hello worlda = 'hello ' \'world ...
- Python_基础_2
1条件语句 ''' 语法 if条件:条件成立执行的代码1... 有缩进得到属于if语句条件块 '''age = int(input('请输入您的年龄:')) #例子 if age >= 18:p ...
- Python_基础_1
1.注释 注释分类:单行注释和多行注释 单行注释: 快捷键 Ctrl+/ #知识内容 多行注释: 有两种写法:六个单引号或者六个双引号 ''' 在这里插入代码片1 ''' ""&q ...
最新文章
- 谈谈对线程与进程的理解
- J2EE中一些常用的名词【简】
- 第一台定制商用NAS存储服务器
- 前端学习(1526):heroes案例 效果演示
- [Leetcode][第1025题][JAVA][除数博弈][数学][递推]
- centos php 版本升级 至5.3 wordpress3.7
- java quartz tomcat_Quartz Scheduler - 在Tomcat或应用程序jar中运行?
- E. 数好多好多猴(南阳理工oj—21新生第二场招新赛)
- bootstrap表单拖拽生成器插件_web前端常用插件、工具类库汇总,新手必收藏!!!...
- shell脚本编程学习(一)
- wxpython记录生词GUI程序
- REM布局计算,移动端,pc端有兼容性)
- opera价格设置(一)
- 震惊·X话最少的~“原理图更新到PCB时出现Unknown Pin: PinXXX 问题解决方案”
- matlab划分训练集验证和测试集代码_Matlab随机划分训练集和测试集
- 2019 中科院 信工所二室 夏令营 笔试面试经验
- 如何调试 chrome插件
- 输入法打出的英文间隔很大
- Java高级——OutOfMemoryError和StackOverflowError
- uniapp中使用拷贝,复制粘贴功能,uniapp,隐藏软键盘