函数介绍
函数:是组织好的,可重复使用的,用来实现特定功能的代码段。
# 定义一个统计字符串长度的函数
def my_len(data):
count = 0
for i in data:
count += 1
print(f"{data}字符串的长度为{count}")
name1 = "iwomdsdhihaw"
name2 = "wodiao"
name3 = "aigogogo"
my_len(name1)
my_len(name2)
my_len(name3)
所以,为了得到一个针对特定需求、可供重复使用的代码段,提高程序的复用性、减少重复性代码、提升开发效率,函数至关重要!
函数的定义
1.函数是:
组织好的、可重复使用的、用来实现特定功能的代码块
2.使用函数的好处是:
将功能封装在函数内,可供随时随地重复利用
提高代码的复用性,减少重复代码,提高开发效率
函数的定义:
def 函数名(传入参数):
函数体
return 返回值
函数的调用:
函数名(参数)
# 定义一个函数
def say_hi():
print("hi")
# 调用函数
say_hi()
注意事项
1、参数如不需要,可以省略
2、返回值如不需要,可以省略
3、函数必须先定义后使用
def nat():
print("欢迎来到Gregory的room!\n请出示您的健康码以及24小时核酸证明!")
nat()
函数的参数
函数的传入参数-传参定义
基于函数的定义语法:
def 函数名(传入参数):
函数体
return 返回值
可以有如下函数定义:
def add(x,y):
result = x + y
print(f"{x} + {y}的结果是:{result}")
实现了,每次计算的是x+y,而非固定的1+2
x + y的值,可以在调用函数的时候指定
def add(a,b):
sum = a + b
print(f"{a}+{b}={sum}")
add(5,15)
函数定义中,提供的x和y,称之为:形式参数(形参),表示函数声明将要使用2个参数
参数之间使用逗号进行分割
函数调用中,提供的5和6,称之为:实际参数(实参),表示函数执行时真正使用的参数值
传入的时候,按照顺序传入数据,使用逗号分隔
def auto_nat(heat):
print("欢迎来到巩朕豪的room!请配合测体温!")
if heat < 37.5:
print(f"体温测量中,您的体温是:{heat}度,体温正常请进!")
else:
print(f"体温测量中,您的体温是:{heat}度,需要隔离!")
heat = float(input("请输入您的体温"))
auto_nat(heat)
函数返回值
语法格式:
def 函数(参数...):
函数体
return 返回值
变量 = 函数(参数)
def add(a,b):
result = a + b
return result
sum = add(10,15)
print(sum)
None类型
演示:
def say_hello():
print("Hello...")
# 使用变量接收say_hello函数的返回值
result = say_hello()
# 打印返回值
print(result) # 结果None
# 打印返回值类型
print(type(result)) # 结果<class 'NoneType'>
None可以主动使用return返回,效果等同于不写return语句
def say_good():
print("good")
return None
b = say_good()
print(b) # 结果None
def check_age(age):
if age > 18:
return "SUCCESS"
else:
return None
result = check_age(16)
if not result: # 是 if result is None的简写
print("未成年,不能进")
# 定义空变量
name = None
函数说明文档
def add(a,b):
"""
add函数可以接收两个参数,进行两数相加的功能
:param a:第一个加数
:param b:第二个加数
:return:返回两个数相加的结果
"""
result = a+b
return result
add(5,6)
函数的嵌套调用
所谓函数嵌套调用指的是一个函数里面又调用了另外一个函数
变量的作用域
变量的作用域指的是变量的作用范围(变量在哪里可用,哪里不可用)
主要分为两类:局部变量和全局变量
所谓局部变量是定义在函数体内部的变量,即只在函数体内部生效
def testA():
num = 100
print(num)
testA() # 100
print(num) # 报错:name 'num' is not defined
所谓全局变量,指的是在函数体内、外都能生效的变量
num = 100
def testA():
print(num)
def testB():
print(num)
testA() # 100
testB() # 100
global关键字:在函数内声明变量为全局变量
num = 200
def func01():
print(f"01num:{num}")
def func02():
num = 500
print(f"02num:{num}")
func01()
func02()
print(f"num:{num}")
num = 200
def func01():
print(f"01num:{num}")
def func02():
global num
num = 500
print(f"02num:{num}")
func01()
func02()
print(f"num:{num}")
综合案例
# 我写的
import random
money = random.randint(0,9999999999)
name = input("请输入您的名字")
#查询余额
def query():
print("----------查询余额----------")
print(f"{name},您好,您的余额剩余:{money}元")
# 存款
def save_money():
print("-----------存款-----------")
save = int(input("请输入您想存入金额:"))
global money
money += save
print(f"{name},您好,您存款{save}元成功")
print(f"{name},您好,您的余额剩余:{money}元")
# 取款
def get_money():
print("-----------取款-----------")
get = int(input("请输入您想取出的金额:"))
global money
money -= get
print(f"{name},您好,您取款{get}元成功")
print(f"{name},您好,您的余额剩余:{money}元")
# 退出
# 菜单
sign = 1
while sign:
print("-----------主菜单-----------")
print(f"{name},您好,欢迎来到黑马银行,请选择操作:")
print("查询余额: [输入1]")
print("存款: [输入2]")
print("取款: [输入3]")
print("退出: [输入4]")
put = int(input())
if put == 1:
query()
continue
elif put == 2:
save_money()
continue
elif put == 3:
get_money()
continue
elif put == 4:
print("程序已退出,感谢您的使用")
break
else:
print("您输入的数字有误,请重新输入")