Timisic 2021-10-31 21:34 采纳率: 100%
浏览 43
已结题

和数字有关的try except break问题

a=0
b=0
while True:
    try:
        astr=input('enter hours')
        bstr=input('enter_rate')
    except:
        print('wrong,please enter numeric input')
    a=float(astr)
    b=float(bstr)
    if astr=='done' or bstr=='done':
        break
    if  a<=40:
        pay=a*b
        print(pay)
    elif a>40:
        pay=40*b+(a-40)*1.5*b
        print(pay)

```python
问题在于,如果我输入的是非数字,那么tryexcept就无法使用,如果我改成比如说a=float(input(''))这样的话,那么下面的break就无法使用,python初学者希望各位能够解答,谢谢。

  • 写回答

1条回答 默认 最新

  • joel_1993 2021-10-31 22:11
    关注

    你好同学,可以这样做,供参考:

    a=0
    b=0
    while True:
        try:
            astr=input('enter hours')
            bstr=input('enter_rate')
            a=float(astr)#把转换放在这里
            b=float(bstr)
        except:
            if astr=='done' or bstr=='done':#把比较放在except里面
                break
            else:
                print('wrong,please enter numeric input')
        if  a<=40:
            pay=a*b
            print(pay)
        elif a>40:
            pay=40*b+(a-40)*1.5*b
            print(pay)
    

    有帮助望采纳哟

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 11月8日
  • 已采纳回答 10月31日
  • 创建了问题 10月31日