a448983623 发表于 2021-10-21 12:48

找一起学习python的小伙伴询问两个小问题

# 用if.......elif..... else 来写一个成绩区间判断语句 :
# print('请输入你的成绩数值:')
while True:
    print('请输入你的成绩数值:')
    num = input()
    if num.isdigit() and (0 < int(num) <100):
      break
    else:
      print('你输入的成绩的数值分数不符合规定请重新输入')
num = int(num)
if 90<=num<=100:                  
    print('你的成绩是A')
elif 80 <= num < 90:
    print('你的成绩是B')
elif num>=70 and num<80:
    print('你的成绩是C')
elif num>=60 and num<70:
    print('你的成绩是D')
elif num>=0 and num<60:
    print('你的成绩不合格')

   # 代码有bug 输入float数值提示要重新输入 没明白怎么弄 3

第二个问题是:ifelse 语句嵌套结构使用,一般来说这个结构可以用来判断两种情况,在if下是可以再嵌套的
# 超市买东西折扣规则是:有会员 and 消费>200    打九折消费<200   打9.5折
#                  无会员 and 消费>200    打九折消费<200   无折扣
print('欢迎光临')

answer=int(input('会员请输入:1\n无会员请输入:0'))

money=int(input('请输入消费金额:'))

if answer == 1:
    if money >= 200:
      money = money*0.9
      print('你的消费金额是:', money)
    elif money < 200:
      print('你消费金额是:',money*0.95)
else:
    # print('请输入消费金额:')
    # money = int(input())
    if money>= 200:
      print('你的消费金额是:',money*0.95)
    else:
      print('你的消费金额是:' ,money)


输入金额是200的时候一直运行的是会员行代码 为啥?
单独写没有问题贴图如下:a = int(input())
b = int(input())
if a == 1:
    if b>=100:
      print(b*0.8)
    else:
      print(b*0.5)
   
else:
    if b>= 100:
      print(b*0.9)
    else:
      print(b)

cwl 发表于 2021-10-21 15:32

第一个isdigit方法是用来判断是否为纯数字的,浮点数含有小数,所以不是纯数字,第二个问题没搞懂,什么叫会员行代码

cwl 发表于 2021-10-21 15:33

还是先学学怎么debug吧,打个断点,自己调试一下,比只写学的快多了

a448983623 发表于 2021-10-27 13:15

cwl 发表于 2021-10-21 15:32
第一个isdigit方法是用来判断是否为纯数字的,浮点数含有小数,所以不是纯数字,第二个问题没搞懂,什么叫 ...

if answer == 1:
   if money >= 200:
         money = money*0.9
         print('你的消费金额是:', money)
只要花费超过200 不判断是不是等于1 直接运行*0.9按理来说应该是先要判断if的

cwl 发表于 2021-10-28 13:42

问题出在 num.isdigit()这里,这个结果是false
页: [1]
查看完整版本: 找一起学习python的小伙伴询问两个小问题