荐 Python 之if-elif-else实际案例
程序员文章站
2022-08-12 11:30:40
if-elif-else实际案例一、判断闰年和每月天数需求:1、输入一个年份判断该年是闰年还是平年2、输入一个月份判断该月有几天。代码:#判断输入的年份是平年还是闰年#判断输入的月份有几天year = eval(input("请输入年份:"))month = eval(input("请输入月份:"))daynum = 0 #该月的天数#判断闰年if (year%4==0 and year%100!=0) or year%400==0: print("{}年是闰年!".fo...
if-elif-else实际案例
一、判断闰年和每月天数
需求:
1、输入一个年份判断该年是闰年还是平年
2、输入一个月份判断该月有几天。
代码:
#判断输入的年份是平年还是闰年
#判断输入的月份有几天
year = eval(input("请输入年份:"))
month = eval(input("请输入月份:"))
daynum = 0 #该月的天数
#判断闰年
if (year%4==0 and year%100!=0) or year%400==0:
print("{}年是闰年!".format(year))
#判断1、3、5、7、8、10、12
if month==1 or month == 3 or month == 5 or month == 7 or month == 8 or month == 10 or month == 12:
daynum=31
#判断2
elif month==2:
daynum=28
#判断4,6,9,11
else:
daynum=30
#判断平年
else:
print("{}年是平年!".format(year))
#判断1、3、5、7、8、10、12
if month==1 or month == 3 or month == 5 or month == 7 or month == 8 or month == 10 or month == 12:
daynum=31
#判断2
elif month==2:
daynum=27
#判断4,6,9,11
else:
daynum=30
print("{}年{}月有{}天。".format(year,month,daynum))
二、双十一打折
需求:
1、输入三个购买商品的单价和数量
2、计算总金额
3、判断打折的梯度(大于50000打7折、大于4000小于50000打8折、小于4000打9折)
4、判断是否这一天是双十一折上折(活动期间打7.5折)
代码:
#输入三个购买商品的单价和数量
#计算总金额
#判断打折的梯度(大于50000打7折、大于4000小于50000打8折、小于4000打9折)
#判断是否这一天是双十一折上折(活动期间打7.5折)
import time
money1 = eval(input("请输入第一个商品单价:"))
num1 = eval(input("请输入第一个商品数量:"))
money2 = eval(input("请输入第二个商品单价:"))
num2 = eval(input("请输入第二个商品数量:"))
money3 = eval(input("请输入第三个商品单价:"))
num3 = eval(input("请输入第三个商品数量:"))
total = money1*num1+money2*num2+money3*num3
#作用是格式化时间戳为本地的时间
#返回的是一个时间结构体
#int tm_sec; /* 秒 – 取值区间为[0,59] */
#int tm_min; /* 分 - 取值区间为[0,59] */
#int tm_hour; /* 时 - 取值区间为[0,23] */
#int tm_mday; /* 一个月中的日期 - 取值区间为[1,31] */
#int tm_mon; /* 月份(从一月开始,0代表一月) - 取值区间为[0,11] */
#int tm_year; /* 年份,其值等于实际年份减去1900 */
#int tm_wday; /* 星期 – 取值区间为[0,6],其中0代表星期一,1代表星期二,以此类推 */
#int tm_yday; /* 从每年的1月1日开始的天数 – 取值区间为[0,365],其中0代表1月1日,1代表1月2日,以此类推 */
#int tm_isdst; /* 夏令时标识符,实行夏令时的时候,tm_isdst为正。不实行夏令时的时候,tm_isdst为0;不了解情况时,tm_isdst()为负。
new = time.localtime()
#此时的月份
month = new.tm_mon
#此时的天数
day = new.tm_mday
#双十一从11月1日-11月11日打折
if month==11 and day<=1 and day>=11:
print("双十一期间享受折上折")
total*=0.75
if total>=50000:
total*=0.7
elif total<50000 and total>4000:
total*=0.8
else:
total*=0.9
else:
print("今天是{}月{}日,今天不是双十一,不在打折期".format(month,day))
if total>=50000:
total*=0.7
elif total<50000 and total>4000:
total*=0.8
else:
total*=0.9
print("应付金额为:{:.2f}".format(total))
三、自主投胎系统
需求:
1、选择出生的性别
2、选择出生的环境困难程度
import sys
import random
#初始金钱数
total_money=0
print("\t欢迎进入XXX自助投胎系统")
print("\t\t1、开始")
print("\t\t2、结束")
choice=eval(input("\t请输入1-2之间的数字:"))
if choice !=1:
print("您选择的是:《2、结束》,应用程序已退出!")
sys.exit(0)
sex=eval(input("\t请选择性别【1男-(免费),2女-(1000金) 】:"))
sex_str="男"
if sex==1:
print("\t您选择的是男性,继续下一步。。。。。")
else:
if total_money<1000:
print("\t您选择的是女性,但是金币不够,是否充值(y/n):")
choice=input()
print("由于充值系统暂未开通,系统默认您选择的是男性!")
sex=1
else:
total_money-=1000
sex=2;
sex_str="女"
print("\t您选择的是【女性】,扣除1000金,当前余额:",total_money)
print("""
请选择生存难度:
1、简单:10000金
2、中等:5000 金
3、困难:1000 金
4、炼狱 【 免费 】
5、试试手气(猜一个个位的随机数字)
""")
hard_level=eval(input("\t请输入1-5之间的数字:"))
if hard_level==1:
if total_level-10000<0:
print("\t充值系统暂未开通,系统默认炼狱难度!")
else:
total_money-=1000;
hard_level_str="简单"
print("您支付了10000金,当前难度为:【简单】,账户余额为:",total_money)
elif hard_level==2:
if total_level-5000<0:
print("\t充值系统暂未开通,系统默认炼狱难度!")
else:
total_money-=5000;
hard_level_str="中等"
print("您支付了5000金,当前难度为:【中等】,账户余额为:",total_money)
elif hard_level==3:
if total_level-1000<0:
print("\t充值系统暂未开通,系统默认炼狱难度!")
else:
total_money-=1000;
hard_level_str="困难"
print("您支付了10000金,当前难度为:【困难】,账户余额为:",total_money)
elif hard_level==4:
hard_level_str="炼狱"
print("\t成功选择了【炼狱】难度!")
else:
user_num=int(input("请输入一个整型数字作为幸运数字:"))
#如果中奖自动升级为1号套餐
lucky_num=random.randint(0,9)
if lucky_num==user_num:
print("恭喜您中了大奖,自动升级成1号套餐")
hard_level=1;
hard_level_str="简单"
else:
print("您没有中奖,您成功选择了【炼狱】难度")
hard_level_str="炼狱"
#打印:性别、等级、金钱数
print("\t当前选择的最终结果为:【{}】【{}】,余额:{}".format(sex_str,hard_level_str,total_money))
四、判断两点间的距离
需求:
1、判断某个坐标点是否在指定圆内。
2、用户输入指定圆心坐标、圆半径、点坐标。
3、根据判断点是在圆内还是圆上还是圆外。
代码:
#判断一个点与圆的关系
#点在圆上、点在圆内、点在圆外
import math
import turtle
r = 50
x0=0
y0=0
#用户输入要判断点的坐标
x = eval(input("请输入要判断点的横坐标:"))
y = eval(input("请输入要判断点的纵坐标:"))
#判断圆心点坐标到点的坐标的距离与半径的关系
d = math.sqrt(math.pow(x - x0,2) + math.pow(y - y0,2))
print("您输入的坐标点与圆心相距:{}".format(d))
read=""
if d==50:
read="您输入的点在圆上。"
elif d>50:
read="您输入的点在圆外。"
else:
read="您输入的点在圆内。"
print(read)
#绘制
pen = turtle.Pen() #获得画笔对象
pen.up() #起笔
pen.goto(x0,y0) #到达圆心点
pen.down() #落笔
pen.dot(5,"black") #绘制一个黑点
#绘制圆
pen.up()
pen.goto(x0, y0 - r)
pen.down()
pen.circle(r)
#绘制用户定义的点
pen.up()
pen.goto(x,y)
pen.down()
pen.dot(5,"red")
#打印判断结果
pen.up()
pen.goto(x,y-50) #y轴-50打印在点下面
pen.write(read)
#关闭turtle
turtle.done()
打印结果:
样例:
这四个案例运用了 if-elif-else 条件选择结构,仅仅是为了记录一下。
本文地址:https://blog.csdn.net/qq_45856289/article/details/107281364
上一篇: 电线被盗
下一篇: 不努力的男人只有一种结果