023、if 和 while 练习

 

1、if   和  while 练习

"""
题目一:
一家商场在降价促销,所有原价都是整数(不需要考虑浮点情况),如果购买金额50-100元(包含50元和100元)之间,会给10%的折扣;
如果购买金额大于100元会给20%折扣。编写一程序,询问购买价格,再显示出折扣和最终价格。
输入:
price = xxx
输出:
购买折扣:8 折
优惠价格:xxx 元


题目二:闰年判断
输入一个有效的年份(如:2019),判断是否为闰年(不需要考虑非数字的情况)
如果是闰年,则打印“2019年是闰年”;否则打印“2019年不是闰年”。
什么是闰年,需要自己了解(需求文档没有解释)


题目三:求三个整数中的最大值


题目四:编写如下程序:
a.用户输入1-7七个数字,分别代表周一到周日;
b.如果输入1~5,打印对应的“周一”~“周五”,如果输入的数字是6或7,打印输出“周末”
c.如果输入0,退出循环
d.输入其他内容,提示:“输入有误,请重新输入!”
提示:本题可以使用if和while循环,同时需要校验用户的输入是否正确。不用考虑浮点数等情况。



题目五:编写程序实现,
在程序中预设一个0~9之间的整数,让用户通过键盘输入所猜的数,如果大于预设的数,显示“遗憾,太大了”,小于预设的数,显示“遗憾,太小了”,
如此循环,直至猜中该数,显示“预测N次,你猜中了!”,其中N是用户输入数字的次数。
提示:使用while无限循环,当猜中时break

"""


print('\n=================  题目一  ====================')
"""
题目一:
一家商场在降价促销,所有原价都是整数(不需要考虑浮点情况),如果购买金额50-100元(包含50元和100元)之间,会给10%的折扣;
如果购买金额大于100元会给20%折扣。编写一程序,询问购买价格,再显示出折扣和最终价格。
输入:
price = xxx
输出:
购买折扣:8 折
优惠价格:xxx 元
"""

price = int(input('购买价格:'))
discount = 0
str_discount = '无折扣'

if price > 100:
    discount = 0.2
    str_discount = '2折'
elif price >= 50:
    str_discount = '1折'
    discount = 0.1

result = price * (1 - discount)
print('购买折扣:{0},优惠后的价格:{1}'.format(str_discount , result))


print('\n=================  题目二  ====================')
"""
题目二:闰年判断
输入一个有效的年份(如:2019),判断是否为闰年(不需要考虑非数字的情况)
如果是闰年,则打印“2019年是闰年”;否则打印“2019年不是闰年”。
什么是闰年,需要自己了解(需求文档没有解释)
公历闰年计算方法:
1、普通年能被4整除且不能被100整除的为闰年。(如2004年就是闰年,1900年不是闰年)
2、世纪年能被400整除的是闰年。(如2000年是闰年,1900年不是闰年)
"""

year = int(input('请输入有效年份:'))
if year % 4 == 0:
    if year % 100 == 0:
        if year % 400 == 0:
            print('{0}是世纪润年'.format(year))
        else:
            print('{0}不是润年'.format(year))
    else:
        print('{0}是普通润年'.format(year))
else:
    print('{0}不是润年'.format(year))


print('\n=================  题目三  ====================')
# 题目三:求三个整数中的最大值

# 方法一:
a = 3
b = 4
c = 5
if a >= b:
    if b >= c:
        print('三个整数中的最大值为a={0}'.format(a))
    elif c >= a:
        print('三个整数中的最大值为c={0}'.format(c))
elif b >= c:
    print('三个整数中的最大值为b={0}'.format(b))
else:
    print('三个整数中的最大值为c={0}'.format(c))

# 方法二:
a1 = 3
b1 = 7
c1 = 5
max_num = max(a1, b1, c1)
print('三个整数中的最大值为{0}'.format(max_num))


print('\n=================  题目四  ====================')
"""
题目四:编写如下程序:
a.用户输入1-7七个数字,分别代表周一到周日;
b.如果输入1~5,打印对应的“周一”~“周五”,如果输入的数字是6或7,打印输出“周末”
c.如果输入0,退出循环
d.输入其他内容,提示:“输入有误,请重新输入!”
提示:本题可以使用if和while循环,同时需要校验用户的输入是否正确。不用考虑浮点数等情况。
"""

all_days = ['星期一', '星期二', '星期三', '星期四', '星期五', '星期六', '星期日']
while True:
    num = int(input('请输入1—7的数字:'))
    if num == 0:
        print('输入0,退出循环')
        break
    elif 1 <= num <= 5:
        print(all_days[num - 1])
    elif 6 <= num <= 7:
        print('周末')
    else:
        print('输入有误,请重新输入!')


print('\n=================  题目五  ====================')
"""
题目五:编写程序实现,
在程序中预设一个0~9之间的整数,让用户通过键盘输入所猜的数,如果大于预设的数,显示“遗憾,太大了”,小于预设的数,显示“遗憾,太小了”,
如此循环,直至猜中该数,显示“预测N次,你猜中了!”,其中N是用户输入数字的次数。
提示:使用while无限循环,当猜中时break
"""

my_num = 5
count = 0
while True:
    num = int(input('请输入你猜的数字:'))
    count += 1
    if num > my_num:
        print('遗憾,太大了')
    elif num < my_num:
        print('遗憾,太小了')
    else:
        print('预测{0}次,你猜中了!'.format(count))
        break

 

posted @ 2021-08-03 23:39  空-山-新-雨  阅读(217)  评论(0编辑  收藏  举报