传送门==>B站黑马python入门教程
目录
1.函数
函数: 是指组织好的,可重复使用的,用来实现特定功能的代码块;
例如:之前用过的统计字符串长度的函数len()
python
name = "itpythonjava"
length = len(name)
print(length)
那么,为什么可以随时随地使用len()函数呢?
因为len()是python内置的函数,可直接调用;
之前使用的print() str() int() input() ... 都是内置函数
案例demo,自定义实现一个统计字符串长度的函数;
python
#自定义实现一个可以统计字符串长度的函数;
def get_length(str):
count = 0
if str != "":
for i in str:
count += 1
print(f"该字符串长度为{count}")
str1 = "infotrans"
str2 = "itpython"
str3 = "awes"
get_length(str1)
get_length(str2)
get_length(str3)

2.函数基础语法练习
bash
def 函数名(入参)
函数体
return 返回值(可以省略)
示例
python
# 示例函数
def helloworld():
print("hello world")
# 调用;
helloworld()
3.函数入参
传入的参数: 函数计算时,需要接收的外部提供数据;
示例:如下代码是数字相加的功能
bash
def add():
res = 1+2
print(f"1+2={res}")
但是该函数无入参,就只能支持其中定制的计算1+2
可以尝试给函数加上入参,即可支持其他的两数之和计算;
python
def add(num1,num2):
return num1+num2
num1 = 10
num2 = 20
print( f"num1+num2={add(num1,num2)}")
定义函数:进行体温判断是否发烧
正常范围为小于等于37.5°
python
def check_temperature(temperature):
if temperature <= 37.5:
print("正常")
else:
print("发烧")
4.函数返回值None类型
若函数没有使用return 语句返回数据时:
python中有特殊的字面量:None, 类型为<class 'NoneType'>
无返回值的函数,实际就是返回了None:即无意义内容
python
# 示例:无return的函数
def hello():
print("hello")
demo = hello()
print(type(demo))

虽然是默认返回的None 实际使用时也可以直接return None
python
# 可以直接return None
# 示例;
def check_num(num):
if num > 0:
return "正数"
else:
return None
data = check_num(-1)
print(data)
None 也可以用于赋值给无意义的变量
python
# 示例
diff = None
5.函数的说明文档
与其他语言一样,我们可以给自定义的函数加上注释,便于调用者阅读
python
def add(num1,num2):
"""
用于计算两数之和
:param num1: 数字1
:param num2: 数字2
:return: 两数之和
"""
return num1+num2
add(1,2)

6.函数嵌套

python
# 函数嵌套
#定义函数a:
def funa():
print("funa")
# 其中调用函数b;
funb()
# 定义函数b;
def funb():
print("funb")
# 调用函数a
funa()
7.变量作用域
变量的作用域: 变量的作用范围-变量在何处可用
主要分为局部变量 .全局变量
局部变量:
定义在函数体内部的变量,即只在函数体内部生效
作用:在函数体的内部,临时保存数据,在函数执行完毕后,会自动销毁
python
def testA():
num = 100
print(num)
testA()#调用testA()函数
print(num) #此处调用会报编码错误,外部无法访问到内部定义的变量

全局变量:
在函数体内外都可以生效的变量
若一个数据:在函数A,函数B中都要使用:如何定义?
可以将数据存入到全局变量
python
# 定义全局变量
num = 100
def testA():
print(num)
def testB():
print(num)
testA()
testB()
global 可在函数内部修改全局变量
若在testB函数中需要将修改变量的值时,如何修改
若直接修改时,发现只是改变了内部值,无法
python
data = 100
def testA():
print(data)
def testB():
global data
data = 200
print(data)
testA()
test2B()
8.函数案例练习

python
# 金额
money = 5000000
# 用户名
name = None
name = input("请输入用户名:")
# 查询余额;
def query(flag):
if flag == True:
print("---查询余额:---")
print(f"{name}的余额为{money}")
print("返回菜单")
main()
#存款;
def save(num):
print("---存款操作:---")
global money
money += num
print(f"{name}存入{num}成功")
query(False)
print("返回菜单")
main()
#取款
def draw(num):
global money
print("---取款操作:---")
if num > money :
print("余额不足")
else :
money -= num
print("返回菜单")
query(False)
main()
#菜单:
def menu():
print("---主菜单:---")
print("1.查询余额")
print("2.存款")
print("3.取款")
# 主方法;
def main():
menu()
return input("请输入操作编号:")
while True:
choice = main()
if choice == "1":
query(True)
elif choice == "2":
num = int(input("请输入存款金额:"))
save(num)
elif choice == "3":
num = int(input("请输入取款金额:"))
draw(num)
else:
print("输入错误")
break
