为了账号安全,请及时绑定邮箱和手机立即绑定

计算加班费时,哪一项比较好?

计算加班费时,哪一项比较好?

MMTTMM 2023-07-11 17:31:23
我希望有人解释一下这两者在解决这个问题方面有什么区别,以及哪一个更好。使用 try 和 except 重写您的支付程序,以便您的程序通过打印消息并退出程序来优雅地处理非数字输入。下图展示了程序的两次执行:Enter Hours: 20Enter Rate : nineError, please enter numeric inputEnter Hours: fortyError, please enter numeric inputinput_hours = input('Enter Hours: ')try:    hours = float(input_hours)              except ValueError:    print('Error, please enter numeric input')    quit()input_rate = input('Enter Rate: ')try:    rate = float(input_rate)                except ValueError:    print('Error, please enter numeric input')    quit()if hours < 40:    pay = rate * hours                      else:    overtime = hours - 40                       pay = (rate * 40.0) + (1.5 * rate * overtime)print(pay)或者try:    hrs = input('Enter Hours: ')    hr = float(hrs)    rate = input('Enter Rate: ')    rt = float(rate)    if float(hr) <= 40:        print(hr * rt)    else:        hrr = hr - 40        rr = hrr * 1.5 * rt        print(40 * rt + rr)except:    print('Error, please enter numeric input')
查看完整描述

3 回答

?
叮当猫咪

TA贡献1776条经验 获得超12个赞

我们分别将它们称为 way1 和 way2。

  1. 在方式 1 中,您在每次输入后检查值错误,但在方式 2 中,您在代码片段之后检查任何错误(在这种情况下,它很可能是值错误)。

  2. Way1 在每次输入后检查错误,way2 整体检查错误。在Python中,如果出现任何错误,编译器将停止并抛出错误。

假设由于人为错误,您将收到属性错误,way2 将打印:

“错误,请输入数字”

但是,way1 会给你一个错误,并且代码停止工作,你必须重新运行它。

  1. 现在我们来谈谈空间和时间复杂度,两者的代码具有相同的复杂度

  2. 如果其他人想理解您的代码,在无法联系到您的情况下,他/她将很容易理解 way2 代码片段,因为它更干净且易于阅读。


查看完整回答
反对 回复 2023-07-11
?
米脂

TA贡献1836条经验 获得超3个赞

第一个 Try 语句中有重复的代码。有两个 Try 和 except 处理每个用户输入的错误,而在第二个代码块中只有一个。不要重复自己(DRY)原则指出,逻辑中的重复应该通过抽象来消除。向代码库添加额外的、不必要的代码会增加将来扩展和维护软件所需的工作量。第二个 Try 语句看起来更干净、更易于阅读,并且是首选的逻辑方法。



查看完整回答
反对 回复 2023-07-11
?
大话西游666

TA贡献1817条经验 获得超14个赞

这些方法之间的主要区别在于,您是否在所有代码周围都有一个 try-catch 块,或者只是在错误检查周围有一个 try-catch 块。首先,第一个将错误检查拆分为多个 try-except 块,而第二个将整个代码块放入单个 try- except 块中。其次,第一个使用 quit() 函数跳过代码的计算部分,而第二个则通过将其放在 try 块内来跳过它。

我想说第二种方法更干净、更容易阅读。首先,您只有一个 try- except 块,这减少了冗余代码的数量。其次,通过将所有代码都放在 try- except 块中而不是让程序退出来跳过代码,可以更容易地看到发生了什么。最后,第二段代码更短、更简洁,对我来说更像是标准实践。


查看完整回答
反对 回复 2023-07-11
  • 3 回答
  • 0 关注
  • 79 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信