python第七章
实例1:输出每日一贴
def function_tips():
'''功能:每天输出一条励志文字
'''
import datetime # 导入日期时间类
# 定义一个列表
mot = ["坚持下去不是因为我很坚强,而是因为我别无选择",
"含泪播种的人一定能笑着收获",
"做对的事情比把事情做对重要",
"命运给予我们的不是失望之酒,而是机会之杯",
"不要等到明天,明天太遥远,今天就行动",
"求知若饥,虚心若愚",
"成功将属于那些从不说“不可能”的人"]
day=datetime.datetime.now().weekday() # 获取当前星期
print(mot[day]) # 输出每日一帖
function_tips() # 调用函数
实例2:根据身高体重算BMI
def fun_bmi(person,height,weight):
'''功能:根据身高和体重计算BMI指数
person:姓名
height:身高,单位:米
weight:体重,单位:千克
'''
print(person + "的身高:" + str(height) + "米 \t 体重:" + str(weight) + "千克")
bmi=weight/(height*height) # 用于计算BMI指数,公式为“体重/身高的平方”
print(person + "的BMI指数为:"+str(bmi)) # 输出BMI指数
# 判断身材是否合理
if bmi<18.5:
print("您的体重过轻 ~@_@~\n")
if bmi>=18.5 and bmi<24.9:
print("正常范围,注意保持 (-_-)\n")
if bmi>=24.9 and bmi<29.9:
print("您的体重过重 ~@_@~\n")
if bmi>=29.9:
print("肥胖 ^@_@^\n")
fun_bmi("路人甲",1.83,60) # 计算路人甲的BMI指数
fun_bmi("路人乙",1.60,50) # 计算路人乙的BMI指数
实例3:升级版BMI
def fun_bmi_upgrade(*person):
'''功能:根据身高和体重计算BMI指数(升级版)
*person:可变参数该参数中需要传递带3个元素的列表,
分别为姓名、身高(单位:米)和体重(单位:千克)
'''
for list_person in person:
for item in list_person:
person = item[0] # 姓名
height = item[1] # 身高(单位:米)
weight = item[2] #体重(单位:千克)
print("\n" + "="*13,person,"="*13)
print("身高:" + str(height) + "米 \t 体重:" + str(weight) + "千克")
bmi=weight/(height*height) # 用于计算BMI指数,公式为“体重/身高的平方”
print("BMI指数:"+str(bmi)) # 输出BMI指数
# 判断身材是否合理
if bmi<18.5:
print("您的体重过轻 ~@_@~")
if bmi>=18.5 and bmi<24.9:
print("正常范围,注意保持 (-_-)")
if bmi>=24.9 and bmi<29.9:
print("您的体重过重 ~@_@~")
if bmi>=29.9:
print("肥胖 ^@_@^")
list_w = [('绮梦',1.70,65),('零语',1.77,50),('黛兰',1.72,66)]
list_m = [('梓轩',1.80,75),('冷伊一',1.75,70)]
fun_bmi_upgrade(list_w ,list_m) # 调用函数指定可变参数
实例4:模拟结账
def fun_checkout(money):
'''功能:计算商品合计金额并进行折扣处理
money:保存商品金额的列表
返回商品的合计金额和折扣后的金额
'''
money_old = sum(money) # 计算合计金额
money_new = money_old
if 500 <= money_old < 1000: # 满500可享受9折优惠
money_new = '{:.2f}'.format(money_old * 0.9)
elif 1000 <= money_old <= 2000: # 满1000可享受8折优惠
money_new = '{:.2f}'.format(money_old * 0.8)
elif 2000 <= money_old <= 3000: # 满2000可享受7折优惠
money_new = '{:.2f}'.format(money_old*0.7)
elif money_old >=3000 : # 满3000可享受6折优惠
money_new = '{:.2f}'.format(money_old*0.6)
return money_old,money_new # 返回总金额和折扣后的金额
print("\n开始结算……\n")
list_money = [] # 定义保存商品金额的列表
while True:
# 请不要输入非法的金额,否则将抛出异常
inmoney = float(input("输入商品金额(输入0表示输入完毕):"))
if int(inmoney)==0:
break # 退出循环
else:
list_money.append(inmoney) # 将金额添加到金额列表中
money = fun_checkout(list_money) # 调用函数
print("合计金额:",money[0],"应付金额:",money[1]) # 显示应付金额
实例5:一颗松树的梦
pinetree = '我是一棵松树' # 定义一个全局变量(松树)
def fun_christmastree(): # 定义函数
'''功能:一个梦
无返回值
'''
pinetree = '挂上彩灯、礼物……我变成一棵圣诞树 @^.^@ \n' # 定义局部变量赋值
print(pinetree) # 输出局部变量的值
print('\n下雪了……\n')
print('=============== 开始做梦…… =============\n')
fun_christmastree() # 调用函数
print('=============== 梦醒了…… ===============\n')
pinetree = '我身上落满雪花,'+pinetree + ' -_- ' # 为全局变量赋值
print(pinetree) # 输出全局变量的值
实例6:lambda爬取商品信息排序
bookinfo = [('不一样的卡梅拉(全套)',22.50,120),('零基础学Android',65.10,89.80),
('摆渡人',23.40,36.00),('福尔摩斯探案全集8册',22.50,128)]
print('爬取到的商品信息:\n',bookinfo,'\n')
bookinfo.sort(key=lambda x:(x[1],x[1]/x[2])) # 按指定规则进行排序
print('排序后的商品信息:\n',bookinfo)
实战1:剧本主角
def Scrip(lead):
print(lead +'开始参演这个剧本')
# 获取控制台输入的 演员姓名
ZHUJUE=input('导演选定的主角是:')
# 调用 打印 演员出演方法
Scrip(ZHUJUE)
实战2:模拟美团外卖
def Package_pice(Package1,Package2,Package3):
print(Package1+'13元')
print(Package2 + '9.9元')
print(Package3 + '20元')
Package1='考神套餐'
Package2='单人套餐'
Package3='情侣套餐'
print('米线店套餐如下:1.'+Package1+' 2.'+Package2 +" 3."+Package3)
Package_pice(Package1,Package2,Package3)
实战3:判断新作
#计算星座
def Zodiac(month, day):
n = ('摩羯座','水瓶座','双鱼座','白羊座','金牛座','双子座','巨蟹座','狮子座','处女座','天秤座','天蝎座','射手座','摩羯座')
d = (20,19,21,20,21,22,23,23,23,24,23,22)
if day < d[month-1]:
return n[month-1]
else:
return n[month]
month=input('请输入月份(例如:5):')
day=input('请输入日期(例如:17):')
# 输出星座
print(str(month)+'月'+str(day)+'日'+'星座为:'+Zodiac(int(month),int(day)))
实战4:美元你转人民币
def money_dollar(rmb_str_value):
# 常量 汇率
USD_VS_RMB = 6.28
# 汇率计算
usd = rmb_str_value * USD_VS_RMB
return usd
#美元输入,将字符串转换为数字
rmb_str_value = int(input('请输入要转换的美元金额:'))
#输出结果 转换后人民币金额
print('转换后人民币金额是:',money_dollar(rmb_str_value))