欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

荐 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()

打印结果:
样例:
荐
                                                        Python 之if-elif-else实际案例
荐
                                                        Python 之if-elif-else实际案例


这四个案例运用了 if-elif-else 条件选择结构,仅仅是为了记录一下。

本文地址:https://blog.csdn.net/qq_45856289/article/details/107281364