本节目录
一、前言
让我们在PyCharm中完成一个案例需求:
不使用内置函数len(),完成字符串长度的计算。
示例如下:
# 统计字符串长度
str1 = "itheima"
str2 = "itcast"
str3 = "python"
# 定义一个计数变量
count = 0
for i in str1:
count += 1
print(f"字符串{str1}的长度为{count}。")
# 使用函数来优化这一过程
def my_len(data):
count = 0
for i in data:
count += 1
print(f"字符串{data}的长度是{count}。")
my_len(str1)
my_len(str2)
my_len(str3)
1.函数是组织好的、可重复使用的、用来实现特定功能的代码段 。
2.使用函数的好处是:
将功能封装在函数内,可供随时随地重复利用;
提高代码的复用性,减少重复代码,提高开发效率。
二、函数的基础定义语法
1.定义形式
注意事项
参数如不需要,可以省略(后续章节讲解)
返回值如不需要,可以省略(后续章节讲解)
函数必须先定义后使用
2.练习案例:查核酸
手写换行符: \n
# 案例:查核酸
def search_1():
# \n手写换行符
print("欢迎!\n请出示健康码与核酸证明!")
search_1()
三、函数的传入参数
1.语法解析
函数的传入参数作用:在函数运行的时候,接受外部传入的数据
# 定义两个数相加的函数
def add(x, y):
result = x + y
print(f"{x} +{y} = {result}")
# 调用参数
add(3, 4)
函数定义中,提供的x和y,称之为:形式参数(形参),表示函数声明将要使用的2个参数。参数之间使用逗号进行分隔。
函数调用中,提供的5和6,称之为:实际参数(实参),表示函数执行时真正使用的参数值。传入的时候,按照顺序传入数据,使用逗号分隔。
**传入参数的数量是不受限制的。**可以不使用参数,也可以使用任意N个参数。
def add(x, y, z):
result = x + y +z
print(f"{x} + {y} + {z} = {result}")
# 调用参数
add(3, 4, 5)
2.案例升级:核酸
代码如下(示例):
# 案例:核酸升级
def tem(x):
if x <= 37.3:
print(f"欢迎!请出示健康码及核酸证明,并配合测量体温!\n您的体温是:{x}度,请进!")
else:
print(f"欢迎!请出示健康码及核酸证明,并配合测量体温!\n您的体温是:{x}度,需要隔离!")
tem(36.5)
四、函数的返回值
1.语法格式
所谓“返回值”,就是程序中函数完成事情后,最后给调用者的结果。
函数体在遇到return后就结束了,所以写在return后的代码不会执行。
# 函数返回值的语法
def add(x, y):
result = x + y
return result
# return 后的代码不会再执行
print("done!")
r = add(4, 6)
print(r)
2.返回值的None类型
如果函数没有使用return语句返回数据,那么函数有返回值吗?
实际上是:有的。
Python中有一个特殊的字面量:None,其类型是:<class’NoneType’>,
无返回值的函数,实际上就是返回了:None这个字面量。
None表示:空的、无实际意义的意思;
函数返回的None,就表示,这个函数没有返回什么有意义的内容。也就是返回了空的意思。
# 返回值的None类型
def say_hi():
print("hello!")
result = say_hi()
print(f"无返回值函数,返回的内容是{result}")
print(f"无返回值函数,返回的内容类型是{type(result)}")
# 主动返回None的函数
def say_hi2():
print("hello!")
return None
result = say_hi2()
print(f"无返回值函数,返回的内容是{result}")
print(f"无返回值函数,返回的内容类型是{type(result)}")
None=False,if not 即if not False(not True=False,not False=True)而if语句只在Ture时运行所属下列执行代码
# None 用于if判断
def check_age(age):
if age >= 18:
return "SUCCESS"
else:
return None
result = check_age(16)
#
if not result:
print("未成年,禁止进入。")
# None用于声明无初始内容的变量
name = None
五、函数的说明文档
在PyCharm编写代码时,可以通过鼠标悬停,查看调用函数的说明文档
# 定义函数进行文档说明
def add(x, y):
"""
两数相加
:param x: 数字1
:param y:数字2
:return:结果
"""
result = x + y
print(f"两数相加的结果是{result}.")
return result
六、函数的嵌套调用
1.什么是嵌套调用
在一个函数中,调用另外一个函数。
2.执行流程
函数A中执行到调用函数B的语句,会将函数B全部执行完成后,再继续执行函数A的剩余内容。
# 函数的嵌套调用
def func_b():
print("---2---")
def func_a():
print("---1---")
# 嵌套调用func_b
func_b()
print("---3---")
func_a()
七、变量在函数中的作用域
1.局部变量与全局变量
变量作用域指的是变量的作用范围(变量在哪里可用,在哪里不可用),主要分为两类:局部变量和全局变量。
所谓局部变量,是定义在函数内部的变量,即只在函数体内部生效。
所谓全局变量,指的是在函数内、外都能生效的变量。
# 演示局部变量
def test_a():
num = 100
print(num)
test_a()
# 演示全局变量
num = 200
def test_a():
print(f"test_a: {num}")
def test_b():
print(f"test_b: {num}")
test_a()
test_b()
print(num)
2.global关键字
使用global关键字,可以在函数内部声明一下,将变量变为全局变量,如下所示:
# 演示global
num = 200
def test_a():
print(f"test_a: {num}")
def test_b():
global num # 将内部定义的变量设置为全局变量
num = 500
print(f"test_b: {num}")
test_a()
test_b()
print(num)
八、函数综合案例:ATM
# 案例:ATM
money = 5000000
name = None
name = input("please enter your name:")
定义查询函数:
# 定义查询函数
def query(show_header):
if show_header:
print("------------查询余额--------------")
print(f"{name},hello!您的余额为{money}元。")
定义存款函数:
# 定义存款函数
def saving(num):
global money
money += num
print("------------存款--------------")
print(f"{name},您好,您存款{num}元成功。")
# 调用query函数查询余额
"""
这个query()默认是TRUE,
也就是要打印查询余额,如果输入FALSE,
就是不打印查询余额的表头了。
"""
query(False)
定义取款函数:
# 定义取款函数
def get_money(num):
global money
money -= num
print("------------取款--------------")
print(f"{name},您好,您取款{num}元成功。")
query(False)
定义主菜单:
# 定义主菜单
def main():
print("------------主菜单--------------")
print(f"{name},您好,欢迎来到银行。请选择您需要的服务:")
print("查询余额\t输入[1]")
print("存款\t\t输入[2]")
print("取款\t\t输入[3]")
print("退出\t\t输入[4]")
return input("请输入您的选择:")
这里main函数的作用就是输入1234中任意一个数值,return就是在后面调用main函数时,这个数值可以传递给调用函数的地方。
就记住如果函数括号里有传入数的话,就要有return.
设置无限循环:(while的条件需要得到布尔类型,true表示继续循环,false表示结束循环;while true就表示无限循环)
# 设置无限循环,确保程序不退出
while True:
keyboard_input = main()
if keyboard_input == "1":
query(True)
continue
elif keyboard_input == "2":
num = int(input("您想要存多少钱?请输入:"))
saving(num)
continue
elif keyboard_input == "3":
num = int(input("您想要取多少钱?请输入:"))
get_money(num)
continue
else:
print("程序退出。")
break
标签:None,函数,python,51,61,num,result,print,def
From: https://blog.csdn.net/asaasaaax/article/details/143233595