函数 学习一篇就够 TAM功能实现"/>
python基础(第四期):python 函数 学习一篇就够 TAM功能实现
文章目录
- python基础(第四期)
- 一、函数
- 1.1 体验函数
- 1.2 简单 函数定义格式
- 1.3 函数传参
- 1.4 None语句
- 1.5 函数说明文档
- 1.6 函数的嵌套调用
- 1.7 变量的作用域
- 1.8 global关键字(变量提升)
- 1.9 函数综合练习:
python基础(第四期)
一、函数
函数:是组织好的,可以重复使用的,用来实现特定功能的代码段。
1.1 体验函数
需求,不使用内置函数 len() 实现统计字符串的长度。
普通的方法
str1 = "hello world"
str2 = "hello world"
str3 = "hello world"count = 0
for i in str1:count += 1
print(f"字符串{str1}的长度为: {count}")'''运行结果为:字符串hello world的长度为: 11
'''str2 = "hello world"count = 0
for i in str2:count += 1
print(f"字符串{str2}的长度为: {count}")'''运行结果为:字符串hello world的长度为: 11
'''str3 = "hello world"count = 0
for i in str3:count += 1
print(f"字符串{str3}的长度为: {count}")'''运行结果为:字符串hello world的长度为: 11
'''
上面的代码 实在是过于重复了,此时就得使用我们的函数来完成。
使用函数后的代码
str1 = "hello world"
str2 = "hello world"
str3 = "hello world"
# 自定义求字符串长度的函数def my_len(data):count = 0for i in data:count += 1print(f"字符串{data}的长度是{count}")# 调用函数my_len(str1)
my_len(str2)
my_len(str3)
mu_len()这个函数,使我们自己定义的,只能用于计算字符串长度。
1.2 简单 函数定义格式
def say_hi():print("hello world")say_hi()
-
函数一定需要先定义,在使用!(参数不用也可以不写)
-
返回值不需要也可以省略。
def hell():print("hello world")print("hello python")hell()
1.3 函数传参
*函数的参数:
* 传入参数的功能:在函数中进行计算的时候,接收外部(调用者)提供的数据
# 下面这个函数只能 1 + 2,想解决这个问题,只能使用参数传递了。
def add():result = 1 + 2print(f"1 + 2的结果是:{result}")add()
- 传参的写法
def add(x, y):result = x + yprint(f"{x} + {y} 的结果为:{result}")add(1, 2) # 传递什么参数,就怎么计算结果(灵活)
注意事项:
1、函数参数之间使用分号进行分割
2、传参的时候,按照顺序传入数据,使用逗号分隔(多可以,少不行,多了的就不用) 3、 函数参数可以没有,也可以有nge
- 实参:调用时传入的实际参数
- 形参:函数执行时接受的形式参数
- 函数传参练习
def demo(time, c):print(f"时间证明:{time}, 体温为{c}")if c > 38:print("禁止进入")else:print("允许进入")demo(72, 37.5)
1.4 函数的返回值(return)
- 函数:返回值
简单理解就是说;我给你东西(实参),得有回报吧(函数处理完的返回值)
定义格式
def 函数名(参数, .....):函数体return 返回值变量 = 函数名(参数, .....)
- 函数中遇到
return
,直接结束函数。后面不要写代码哦!
def add(a,b):result = a + breturn result # 将结果返回给函数调用者(他叫我帮他算数,等于多少我得告诉他啊!)add(500, 20)
print(add)
- 将结果返回给函数调用者(他叫我帮他算数,等于多少我得告诉他啊!)
1.4 None语句
None语句和 void一样(表示空的)
- 他是一个特殊的字面量,用于表示空、无意义的。应用场景如下所示:
1、 用在if判断:
- 在if判断的时候,None等同于 false
- 一般用在函数中主动返回None,配合if语句做相关处理(return None),调用者收到None,就知道是假的。
2、用于声明无内容的变量上
- 定义变量,但暂时不需要具体的值,可使用None代替
代码示例
返回值 None示例
def fi(age):if age >= 18:print(f"成年!适当娱乐")return ageelse:return Noneresult = fi(17)
# 返回值为None(false)就执行
if not result:print(f"未成年!不能沉迷游戏")
变量初始化为空:
num = None
1.5 函数说明文档
说明函数功能
- 鼠标悬停函数,就会出现函数说明的文档哦!(注意:格式即可)
"""函数说明文档
"""# 通过多行注释,为函数进行说明def add(x, y):"""add函数实现两数相加的功能,接受两个实参,具有返回值。:param x:表示其中一个形参:param y:表示其中一个形参:return: 返回两数(两个形参)相加的结果"""result = x + yprint(f"2数相加的结果为{result}")return resultadd(1300, 14)
- 写在三个引号里面的都属于函数的说明文档。(多写写养成习惯就好了)
1.6 函数的嵌套调用
再函数里面嵌套定义或调用函数
def function1():print("--------------1-------")def function2():print("--------------2-------")function1()print("--------------3-------")function2()
执行流程:
1、先执行函数调用者,function2
2、打印2
3、执行function1
4、打印1
5、最后打印3
- 特别注意,函数调用一定要等到函数执行完毕后,才会执行后面的语句。
1.7 变量的作用域
在Python中,变量的作用域指的是变量可被访问的范围。Python中有四种变量作用域:全局作用域、局部作用域(函数作用域)、嵌套作用域和内置作用域。
- 全局作用域(Global scope):在模块级别定义的变量具有全局作用域,可以在整个程序中的任何地方访问。全局变量可以在函数内部进行读取,但在函数内部无法直接修改其值,除非使用
global
关键字声明为全局变量。
- 定义在函数的外面(实现函数的全局作用域)
python复制代码global_var = 10 # 全局变量def func():print(global_var) # 读取全局变量的值func()
- 局部作用域(函数作用域):在函数内部定义的变量具有局部作用域,只能在函数内部访问。局部变量在函数执行完毕后会被销毁。
python复制代码def func():local_var = 20 # 局部变量print(local_var) # 在函数内部访问局部变量func()
- 嵌套作用域(Enclosing scope):当一个函数内部定义了另一个函数时,内部函数可以访问外部函数的变量,但外部函数不能访问内部函数的变量。
python复制代码def outer_func():outer_var = 30 # 外部函数的变量def inner_func():print(outer_var) # 在内部函数访问外部函数的变量inner_func()outer_func()
- 内置作用域(Built-in scope):Python中有一些内置的函数和变量,如
print()
、len()
等,它们具有内置作用域,可以在程序的任何地方直接访问。
需要注意的是,在嵌套作用域中,变量的查找顺序是从内到外,即先在局部作用域中查找变量,如果找不到再在上一级的嵌套作用域中查找。而在全局作用域中无法访问局部作用域和嵌套作用域中的变量。
1.8 global关键字(变量提升)
x = 100def num():x = 200print(x) # x = 200num()
print(x) # x = 100
函数外部访问到的x是全局的,内部虽然修改了,但是局部,外部访问不到。
使用global后:
x = 100# 使用global ,让函数内部的局部变量提升
def num():global xx = 200print(x) # x = 200num()
print(x) # x = 200
- global提升变量作用域所以,最后面访问x的时候,访问就是函数内部的
1.9 函数综合练习:
def main():print("-" * 20 + "主菜单" + "-" * 20)print("liujintao,你好,欢迎您来到Python ATM, 请选择操作:")print("查询余额[输入1]")print("存款 [输入2]")print("取款 [输入3]")print("退出 [输入4]")sum = 0
# 余额模块def querybalance (balance):print("-" * 20 + "查询余额" + "-" * 20)global sumsum += balanceprint(f"liujintao,您好,您的余额为:{ sum }")return sum
# 存款模块def fetch(cun):print("-" * 20 + "存款" + "-" * 20)# 存款print(f"liujintao, 您好,您存款{cun}元成功!")# 余额querybalance(cun)# 取款模块def withdrawal(qumoney):# 取款print(f"liujintao, 您好,您取款{qumoney}元成功!")# 余额querybalance(-qumoney)flag = Truewhile flag:main()num = int(input(("请输入您的选项:")))if num == 1:querybalance(sum)elif num == 2:money = int(input(("请输入您需要存款的金额:")))fetch(money)elif num == 3:qumoney = int(input("请输入您的取款金额:"))withdrawal(qumoney)elif num == 4:print("退卡成功!")flag = Falseelse:print("输入有误,重新输入!")
更多推荐
python基础(第四期):python 函数 学习一篇就够 TAM功能实现
发布评论