005、py43-day5-sky-20210803

 

 

题目一:
一家商场在降价促销,所有原价都是整数(不需要考虑浮点情况),如果购买金额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))
View Code

执行结果如下:

购买价格:15
购买折扣:无折扣,优惠后的价格:15

Process finished with exit code 0
View Code

 

扩展知识:

a、一般的,不在input函数上转换类型的原因:
  字符串类型在处理操作上是极为通用的,你在需要的时候把字符串得内容转换成需要的类型,

  这样在使用上就会非常方便,就不会出现,你统一转换了后面如果想用这个类型在此转换得情况 。

 

 

题目二:闰年判断
输入一个有效的年份(如: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))
View Code

执行结果如下:

请输入有效年份:1900
1900不是润年

Process finished with exit code 0
View Code

 

 

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

代码如下:

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

# 方法一:
a = 3
b = 4
c = 5

max_num = a
if b >= a:
    max_num = b
if c >= b:
    max_num = c

print('三个整数中的最大值为{0}'.format(max_num))


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

执行结果如下:

三个整数中的最大值为5
三个整数中的最大值为7

Process finished with exit code 0
View Code

 

 

题目四:编写如下程序:
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('输入有误,请重新输入!')
View Code

执行结果如下:

请输入1—7的数字:1
星期一
请输入1—7的数字:2
星期二
请输入1—7的数字:3
星期三
请输入1—7的数字:4
星期四
请输入1—7的数字:5
星期五
请输入1—7的数字:6
周末
请输入1—7的数字:7
周末
请输入1—7的数字:0
输入0,退出循环

Process finished with exit code 0
View Code

 

 

题目五:编写程序实现,
在程序中预设一个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
View Code

执行结果如下:

请输入你猜的数字:3
遗憾,太小了
请输入你猜的数字:7
遗憾,太大了
请输入你猜的数字:4
遗憾,太小了
请输入你猜的数字:6
遗憾,太大了
请输入你猜的数字:5
预测5次,你猜中了!

Process finished with exit code 0
View Code

 

posted @ 2021-08-11 01:10  空-山-新-雨  阅读(132)  评论(0编辑  收藏  举报