当前位置: 移动技术网 > IT编程>脚本编程>Python > 荐 Python 之if-elif-else实际案例

荐 Python 之if-elif-else实际案例

2020年07月12日  | 移动技术网IT编程  | 我要评论

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

如对本文有疑问, 点击进行留言回复!!

相关文章:

验证码:
移动技术网