老师好 发表于 2021-8-4 23:06:02

python新手求助

while True:
    x = int(input('请输入一年的盈利(单位:万):'))
    if 0 <= x <= 10:
      y = x * 0.1
    elif 10 < x <= 20:
      y = 1 + (x - 10) * 0.075
    elif 20 < x <= 40:
      y = 1.75 + (x - 20) * 0.05
    elif 40 < x <= 60:
      y = 2.75 + (x - 40) * 0.03
    elif 60 < x <= 100:
      y = 3.35 + (x - 60) * 0.015
    elif 100 < x:
      y = 3.95 + (x - 100) * 0.01
    else:
      print('请输入正确数值')
      continue
    print(int(y * 10000))

请问这个怎么让输入的不是数字的时候,print('请输入正确数值'),而不是报错,感谢大佬

深谙流年 发表于 2021-8-4 23:16:27

用try

深谙流年 发表于 2021-8-4 23:20:24

while True:
    try:
      x = int(input('请输入一年的盈利(单位:万):'))
    except:
      print('输入数字')
      continue
    if 0 <= x <= 10:
      y = x * 0.1
    elif 10 < x <= 20:
      y = 1 + (x - 10) * 0.075
    elif 20 < x <= 40:
      y = 1.75 + (x - 20) * 0.05
    elif 40 < x <= 60:
      y = 2.75 + (x - 40) * 0.03
    elif 60 < x <= 100:
      y = 3.35 + (x - 60) * 0.015
    elif 100 < x:
      y = 3.95 + (x - 100) * 0.01
    else:
      print('请输入正确数值')
      continue
    print(int(y * 10000))

深谙流年 发表于 2021-8-4 23:21:12

深谙流年 发表于 2021-8-4 23:20


下面的那个else可以删掉,或者可以判断是不是小于0

柿子饼同学 发表于 2021-8-5 08:19:11

while True:
    x =input('请输入一年的盈利(单位:万):')
    while not x.isdigit():
      x = input('请输入正确数值:')
    x = int(x)
    if 0 <= x <= 10:
      y = x * 0.1
    elif 10 < x <= 20:
      y = 1 + (x - 10) * 0.075
    elif 20 < x <= 40:
      y = 1.75 + (x - 20) * 0.05
    elif 40 < x <= 60:
      y = 2.75 + (x - 40) * 0.03
    elif 60 < x <= 100:
      y = 3.35 + (x - 60) * 0.015
    elif 100 < x:
      y = 3.95 + (x - 100) * 0.01
    else:
      print('请输入正确数值')
      continue
    print(int(y * 10000))


用字符串的isdigit判断 , 如果全是数字才能计算

柿子饼同学 发表于 2021-8-5 13:12:59

其实楼上的大佬写的也是可以的 , 建议也去试一试
页: [1]
查看完整版本: python新手求助