1. 函数的声明和调用
python中利用关键字def来专门定义函数
主要应用如下:
格式:
def 函数名称():
函数的执行过程
return 执行的结果
def case():
print("这是一个案例“)
return
2. 不同类型函数和他们的作用
从上面的的格式可以看出一个函数的定义其实就是表示的一个行为,一种功能
函数的核心就是运算数据
所有函数需要处理运算数据,也就可能需要提供数据,可能需要提供返回值
由此可以得出,四种函数
2.1既不需要提供数据也不需要提供返回值
# 需求:开窗通风
def open_window():
'''开窗口通风的函数'''
print("中午下课时")
print("打开两个大窗户,打开门")
print("通风一个小时,不容易生病")
2.2不需要提供数据但需要提供返回值
# 需求:收快递
def receive_thing():
'''收取快递的行为'''
# 函数中的执行过程
print("帮我收一个快递")
print("门口快递架")
print("手机壳")
# 返回结果
return "手机壳"
# 调用执行
# thing = receive_thing()
# print("收到的快递:", thing
2.3需要提供数据但不需要提供返回值
# 需求:购买年会表演服
def buy_clothe(format, money):
'''购买年会衣服函数'''
print("购买的衣服款式:", format)
print("购买衣服的资金:", money)
print("购买完成,等待年会开始.....")
# 调用执行函数 提供执行函数需要的数据
# buy_clothe("燕尾服", 1888)
2.4既需要提供数据也需要提供返回值
# 需求(需要的功能,要求的限制):购物的行为
def buy_smoke(name, money):
if 10 < money < 13:
print("可以购买日用品")
res = "日用品"
elif money < 10:
print("消耗品.....")
res = "消耗品"
else:
print("可以购买零食....")
res = "零食"
print("你需要购买的是:", name)
return res
3. 函数的参数
变量的语法
全局变量:被所有代码都能访问的变量
声明在函数的外部
局部变量:只能被当前所属函数能访问的变量
声明在函数的内部
# 全局变量,能被当前文件中的所有python代码访问【先声明赋值,后使用变量】
users = "admin"
# 普通代码中使用
print("普通代码中使用", users)
# if结构中使用
if 1:
print("if结构中使用", users)
# 循环结构中使用
while 1:
print("循环结构中使用", users)
break
# 函数中使用
def test_a():
# 声明一个test_a()函数中的局部变量
phone = 'HUWEI META20'
print("test_a中访问test_a局部变量:", phone)
print("test_a访问全局变量:", users)
def test_b():
# print("test_b中访问test_a局部变量:", phone) # ERROR
print("test_b访问全局变量:", users)
# print("普通代码中访问test_a局部变量:", phone) # ERROR
test_a()
test_b()
# print("普通代码中访问test_a局部变量:", phone) # ERROR
'''
python中数据类型
不可变类型:数据一旦赋值~该数据是固定的不能变化的
如:字符串 name = "tom"
重新赋值:name = "jerry" 修改~创建了一个新字符串,替代了旧字符串
可变类型:复杂数据一旦赋值给变量~复杂数据中包含的具体数据可以修改
如:列表 l = list() -> l = []
l.append('world') -> l = ['world']
'''
'''
正常情况下,变量数据的访问
函数中如果出现了和全局变量重名的变量
1. 函数外部访问:
优先访问 全局变量
然后访问 局部变量【X】
2. 函数内部访问:
就近原则:谁离访问代码近~优先访问谁
'''
4. 函数的返回值
函数体中 return 语句有指定返回值时返回的就是其值
函数体中没有 return 语句时,函数运行结束会隐含返回一个 None 作为返回值,类型是 NoneType,与 return 、return None 等效,都是返回 None。