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

和数字有关的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日

悬赏问题

  • ¥15 划分vlan后不通了
  • ¥15 GDI处理通道视频时总是带有白色锯齿
  • ¥20 用雷电模拟器安装百达屋apk一直闪退
  • ¥15 算能科技20240506咨询(拒绝大模型回答)
  • ¥15 自适应 AR 模型 参数估计Matlab程序
  • ¥100 角动量包络面如何用MATLAB绘制
  • ¥15 merge函数占用内存过大
  • ¥15 Revit2020下载问题
  • ¥15 使用EMD去噪处理RML2016数据集时候的原理
  • ¥15 神经网络预测均方误差很小 但是图像上看着差别太大