Python 计算加班费时,以下哪一项更好?
我想有人解释一下这两种方法在解决这个问题上有什么不同,哪一种更好 使用try和except重写您的支付程序,以便 该程序通过打印一条消息和 退出程序。以下显示了程序的两次执行:Python 计算加班费时,以下哪一项更好?,python,python-3.x,Python,Python 3.x,我想有人解释一下这两种方法在解决这个问题上有什么不同,哪一种更好 使用try和except重写您的支付程序,以便 该程序通过打印一条消息和 退出程序。以下显示了程序的两次执行: Enter Hours: 20 Enter Rate : nine Error, please enter numeric input Enter Hours: forty Error, please enter numeric input 或 这些方法之间的主要区别在于,是在所有代码周围都有一个try-catch块
Enter Hours: 20
Enter Rate : nine
Error, please enter numeric input
Enter Hours: forty
Error, please enter numeric input
或
这些方法之间的主要区别在于,是在所有代码周围都有一个try-catch块,还是在错误检查周围只有一个try-catch块。 首先,第一种方法将错误检查拆分为多个try-except块,而第二种方法将整个代码块拆分为一个try-except块。其次,第一个使用quit函数跳过代码的计算部分,而第二个使用try块中的函数跳过代码的计算部分 我要说的是,第二种方法更干净,更容易阅读。首先,除了块,您只有一次尝试,这减少了冗余代码的数量。 其次,当您跳过代码时,将代码全部放在try-except块中,而不是让程序退出,这样更容易看到发生了什么。
最后,第二段代码比较短,不那么凌乱,对我来说更像是标准实践。让我们分别称它们为way1和way2 在方式1中,您在每次输入后检查值错误,但在方式2中,您在检查任何错误。在这种情况下,它很可能是代码片段后的值错误 Way1在每次输入后检查错误,way2整体检查错误。在python中,如果出现任何错误,编译器将停止并抛出错误 假设由于人为错误,您将得到一个属性错误,way2将打印: 错误,请输入数字 但是,way1将给您一个错误,并且代码停止工作,您必须重新运行它 现在让我们讨论一下空间和时间的复杂性,这两个代码都具有相同的复杂性 如果其他人想理解您的代码,在您无法联系的情况下,他/她会很容易理解way2代码片段,因为它更清晰、更易于阅读
在first Try语句中有重复的代码。有两个Try-and-except处理每个用户输入的错误,而在第二个代码块中只有一个。“不要重复自己”这个枯燥的原则指出,逻辑中的重复应该通过抽象来消除。向代码库添加额外的、不必要的代码会增加将来扩展和维护软件所需的工作量。
第二个Try语句看起来更清晰、更容易阅读,是首选的逻辑方法。这个问题可能更适合于。
input_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')