《建设监理》网站,乐清建设网站,wordpress app生成,社交网站开发实例目录
1、函数介绍
2、函数的定义
3、函数的传入参数
4、函数的返回值
5、函数说明文档
6、函数的嵌套调用
7、变量的作用域 1、函数介绍
函数是组织好的#xff0c;可重复使用的#xff0c;用来实现特定功能的代码段。
name zhangsan;
length len(nam…目录
1、函数介绍
2、函数的定义
3、函数的传入参数
4、函数的返回值
5、函数说明文档
6、函数的嵌套调用
7、变量的作用域 1、函数介绍
函数是组织好的可重复使用的用来实现特定功能的代码段。
name zhangsan;
length len(name);
print(length)
之所以可以随时调用len( )实现统计长度函数是因为它是python内置的函数提前写好的。不使用len( )函数如何实现统计字符串长度。
str python;
count 0;
for i in str:count 1;
print(count)
# 可以使用函数来优化这个过程
def my_len(data):count 0;for i in data:count 1;print(f字符串{data}的长度为{count})
my_len(str)
函数可以得到一个针对特定需求、可供重复利用的代码段提高程序的复用性减少重复性代码、提高开发效率。
2、函数的定义
函数的定义 def 函数名(传入参数): 函数体 return 返回值 函数调用 函数名(参数) # 简单定义一个函数
def my_hi():print(hello)
my_hi()
注意事项
1、参数如果不需要可以省略
2、返回值如果不需要可以省略
3、函数必须限定以后使用
3、函数的传入参数
传入参数的功能是在函数进行计算的时候接受外部调用时提供的数据。
def add1():result 1 2;print(f{result})
add1()
# add1()功能十分局限只能计算12但我们如果给函数增加两个传入参数从而让用户指定加法计算
def add2(a,b):result a b;print(f{a}{b}{ab});
add2(3,4)
1、函数定义中提供的a和b称之为形式参数形参表示函数声明将要使用两个参数参数之间使用逗号进行分割
2、函数调用中提供的5和6称之为实际参数实参表示函数执行时真正使用的参数值传入的时候按照顺序传入数据使用逗号分隔
传入的参数数量是不受限制的可以不使用参数也可以使用任意N个参数
4、函数的返回值
程序中的返回值
# 定义两数相加的函数功能。完成功能后会将相加的结果返回给函数调用者所以变量r接收到了函数的执行结果。
def add(a,b):result a b;return result;
r add(3,4)
print(r)
所谓“返回值”就是程序中函数完成事情之后最后给调用者的结果。
语法格式如下 def 函数名(传入参数): 函数体 return 返回值 变量函数参数 注意函数体在遇到return后就结束了所以写在return后的代码不会执行。
函数如果没有使用return语句返回数据函数的返回值为None
None是一个特殊的字面量其类型是class NoneType无返回值的函数实际上就是返回了None这个字面量。
None表示空的、无实际意义的意思。函数返回的None就表示这个函数没有返回什么有意义的内容返回值为空的意思。
def say_hello():print(hello)# None
result say_hello();
print(result)
print(f返回类型为{type(result)})
None类型的应用场景
None作为一个特殊的字面量用于表示空、无意义其有非常多的应用场景。
1、用在函数无返回值上。
2、用在 if判断上在if判断中None等同于False一般用于在函数中主动返回None配合if判断做相关处理。
def check_age(age):if age 18:return SUCCESS;else:return None
result check_age(14)
if not result:# 进入if表明result是None值print(未满18岁)
3、用于声明无内容的变量上定义变量但暂时不需要变量有具体值可以用None来代替。
name None
5、函数说明文档
函数是纯代码语言想要理解其含义就要一行行的去阅读理解代码效率比较低。
我们可以给函数添加说明文档辅助理解函数的作用。
语法如下 def func(x,y):函数说明:param x: 形参x的说明:param y: 形参y的说明:return: 返回值的说明函数体return 返回值通过多行注释对函数进行说明解释内容要在函数体前
def add(x,y):add函数可以接受两个参数对两数进行相加:param x: 形参x表示相加的其中一个数字:param y: 形参y表示相加的另一个数字:return: 返回两数相加的结果result x y;print(f{x}{y}{xy})return result我们还可以通过鼠标悬停的方式来查看说明文档 可以帮助更好的理解函数。
6、函数的嵌套调用
所谓函数嵌套调用指的是一个函数里面又调用了另外一个函数。
def func_b():print(2)
def func_a():print(1)func_b()
func_a()
如果函数a中调用了另外一个函数b那么先把函数b中的任务都执行完毕之后才会回到上次函数a执行的位置。
7、变量的作用域
变量的作用域指的是变量的作用范围变量在哪里可用在哪里不可用
主要分为两类局部变量和全局变量
所谓局部变量是定义在函数体内部的变量即只在函数体内部生效。
def test():num 100
print(num) # 报错name num is not defined
变量num是定义在“test”函数内部的变量在函数外部访问则立即报错
局部变量的作用在函数体内部临时保存数据当函数调用完成后则立即销毁局部变量。
全局变量指的是在函数体内、外都能生效的变量
def testA():print(num)
def testB():print(num)
testA() # 100
testB() # 100 global关键字
对于上一个代码如果将“testB”函数需要修改变量num的值为200如何修改程序
num 100
def testA():print(num)
def testB():global numnum200print(num)
testA() # 100
testB() # 200
print(num) # 200
# 案例农业银行ATM存款、取款、查询余额函数
# d定义全局变量
money 50000
name None
# 要求客户输出姓名
name input(请输入您的姓名)
# 定义查询函数
def query(show_header):if show_header:print(---------查询余额------------)print(f{name}您好您的余额剩余{money})
# 定义存款函数
def save(num):global moneyprint(---------存款------------)money money numprint(f{name}您存款{num}元成功)query(False)
# 定义取款函数
def get(num):global moneyprint(---------取款------------)if money ! 0:money money - numprint(f{name}您取款{num}元成功)query(False)else:print(您好您的帐户余额为0请及时充值)
# 定义主菜单函数
def main():print(----------主菜单-----------)print(f你好欢迎来到农业银行ATM请选择)print(查询余额输入\t[1])print(存款输入\t\t[2])print(取款输入\t\t[3])print(退出输入\t\t[4])return input(请输入您的选择)
# 无限循环确保不会退出
while True:key_board main()if key_board 1:query(True)continue # 通过continue继续下一次循环elif key_board 2:num int(input(您要存款的金额))save(num)continueelif key_board 3:num int(input(您要取款的金额))get(num)continueelse:print(退出系统)break