函数
简单理解:函数就是可以完成某项工作的代码块。
函数的创建和调用
def functionname([parameterlist]): #参数
[’’‘comments’’’] #注释
[functionbody] #函数体
#定义一个函数,功能为过滤指定字符(如颜色字符)
def f1(string):
'''功能:过滤到颜色的字符(如红色、蓝色),并将过滤后的结果输出 #注意缩进,函数体所有内容缩进四个空格
参数string:要过滤的字符串
没有返回值
'''
import re
pattern = r'(红色)|(蓝色)|(黄色)|(紫色)|(白色)' #模式字符
sub = re.sub(pattern,"@@____@@",string) #模式匹配
print(sub)
#定义一个空函数
def empty():
pass
#调用函数
#语法为:functionname([parametersvalue]) 将参数定义好
str1 = "今天我们到公园游玩,里面有红色的玫瑰花,白色的栀子花,加上蓝色的天空,太美啦!"
f1(str1)
今天我们到公园游玩,里面有@@____@@的玫瑰花,@@____@@的栀子花,加上@@____@@的天空,太美啦!
str2 = "小红穿着紫色的连衣裙,面对蓝色的海洋,非常惬意的样子!"
f1(str2)
小红穿着@@____@@的连衣裙,面对@@____@@的海洋,非常惬意的样子!
#例 输出当日的一条信息
def f2():
'''功能:每天输出一条信息
'''
import datetime
#定义一个列表
list1 = ["星期一:\n天天有个好心情!",
"星期二:\n人生何处不相逢!",
"星期三:\n面向大海,春暖花开!",
"星期四:\n你是我的小苹果!",
"星期五:\n黑色星期五!",
"星期六:\n问君能有几多愁?",
"星期日:\n经典歌曲很好听!"]
day = datetime.datetime.now().weekday() #获取当前日期
print(list1[day]) #输出当日信息
f2() #调用函数
星期二:
人生何处不相逢!
参数传递
一、实际参数和形式参数
#定义函数小括号里面的一般为形式参数,调用函数小括号里面的一般为实际参数
#值传递和引言传递
def f3(obj):
print("原值:",obj)
obj += obj
print("="*10,"值传递","="*10)
str3 = "只有被逼到走投无路的时候,才能发挥出最大的潜力!" #不可变对象
print("函数调用前:",str3)
f3(str3)
print("函数调用后:",str3)
========== 值传递 ==========
函数调用前: 只有被逼到走投无路的时候,才能发挥出最大的潜力!
原值: 只有被逼到走投无路的时候,才能发挥出最大的潜力!
函数调用后: 只有被逼到走投无路的时候,才能发挥出最大的潜力!
print("="*10,"引言传递","="*10)
str4 = ["张三","李四","王五","赵六"] #可变对象
print("函数调用前:",str4)
f3(str4)
print("函数调用后:",str4)
========== 引言传递 ==========
函数调用前: ['张三', '李四', '王五', '赵六']
原值: ['张三', '李四', '王五', '赵六']
函数调用后: ['张三', '李四', '王五', '赵六', '张三', '李四', '王五', '赵六']
#例 对多人的发育情况进行判断
def f4(name,hight,weight):
'''name:姓名
hight:身高
weight:体重
'''
print(name + "的身高:"+ str(hight)+ "米 \t 体重:"+ str(weight) + "公斤")
bmi = weight/(hight*hight) #计算发育指数
print("您的发育指数为:",str(bmi)) #输出指数
if bmi < 18:
print("您体重太轻,注意饮食和营养@——@")
if bmi >= 18 and bmi < 24.9:
print("您的体重正常,恭喜您,继续保持!")
if bmi >= 24.9:
print("您的体重太重,请减肥!")
#调用函数
f4("甲",1.90,80) #计算甲的发育指数
甲的身高:1.9米 体重:80公斤
您的发育指数为: 22.1606648199446
您的体重正常,恭喜您,继续保持!
f4("乙",1.60,80) #计算乙的发育指数
乙的身高:1.6米 体重:80公斤
您的发育指数为: 31.249999999999993
您的体重太重,请减肥!
f4("丙",1.90,60) #计算甲的发育指数
丙的身高:1.9米 体重:60公斤
您的发育指数为: 16.62049861495845
您体重太轻,注意饮食和营养@——@
二、位置参数
#按照函数内参数顺序对应设置实际参数,如上例中顺序姓名,身高,体重
#如果少设置一个参数或者多设置一个参数,则会报错 如 f4("甲",1.90) 或 f4("甲",1.90,80,78) 均会报错
#如果没有多设置和少设置实际参数,位置顺序也需要对应,否则可能计算错误 如 f4("甲",80,1.90) 则会认为身高80米,体重1.9公斤
三、关键字参数
#通过函数参数中的关键字设置,则可不强调顺序
f4(name="甲",hight=1.90,weight=80) #计算甲的发育指数
甲的身高:1.9米 体重:80公斤
您的发育指数为: 22.1606648199446
您的体重正常,恭喜您,继续保持!
#调换顺序也可以获得正确结果
f4(hight=1.90,name="甲",weight=80) #计算甲的发育指数
甲的身高:1.9米 体重:80公斤
您的发育指数为: 22.1606648199446
您的体重正常,恭喜您,继续保持!