在if语句中使用input()是一种错误的做法吗?

2024-04-26 21:23:52 发布

您现在位置:Python中文网/ 问答频道 /正文

我只是好奇这样做是否是一种坏习惯:

if input("Continue? Enter yes or no: ").lower() == "yes":
    # Continue code
else:
    # Else code

我有点喜欢这个,因为你不需要创建一个全新的变量,但是这是因为什么原因而不被接受吗?如果在这个例子中它不是坏的,是否还有其他情况下它是坏的?我还没见过这样的例子,所以我不确定。在


Tags: ornoinputif情况code原因lower
3条回答

好吧,问题是,如果创建一个新名称可以使事情变得更清晰和易于维护,那么为什么要创建一个新名称会有问题呢?如果将来需要进行更复杂的验证呢?如果你需要在用户输入上做更多的工作而不仅仅是降低它呢?在

当然,你的代码没有什么问题,但是只要用户输入yes或no就可以了。但是,如果用户输入了一些无效的数据,会发生什么呢?然后需要一些名称来绑定到用户输入:

while True:
    user_input = input("Type yes or no: ").lower()
    if user_input == 'yes':
        # Do something
    elif user_input == 'no':
        # Don't do something
    else:
        continue

否则,在elif语句中,哪一个与“no”比较呢?在你的例子中,如果用户输入“地狱是的,我想用鸡蛋和垃圾邮件垃圾邮件垃圾邮件!!!”他吃不到丰盛的早餐。在

你的问题可能会引起很多问题,这些都是我的。但是请检查这里还会出现什么,因为,这肯定会帮助您用Python编写更好的代码。在

我认为这样的代码不是一个好主意,因为如果你想添加一些关于用户输入的其他内容,比如:

if input("Continue? Enter yes or no: ").lower().strip().replace("[","").replace("]","") == "yes":

你的代码太长,不容易阅读。在

是的,这是一种不好的做法。保存变量并不能为您保存任何东西。变量是帮助你完成工作的工具。不要回避那些让你的工作更轻松的事情。在

使用变量的最大好处之一是使用调试器更容易,因为可以在input语句和条件语句之间设置断点。它还使代码更易于测试,因为您可以临时用其他语句替换input语句,而不会在逻辑中引入错误。在

相关问题 更多 >