Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/296.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 在if语句中使用input()是一种错误的做法吗?_Python_If Statement_Python 3.x_Input - Fatal编程技术网

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

Python 在if语句中使用input()是一种错误的做法吗?,python,if-statement,python-3.x,input,Python,If Statement,Python 3.x,Input,我只是好奇这样做是否是一种坏习惯: if input("Continue? Enter yes or no: ").lower() == "yes": # Continue code else: # Else code 我有点喜欢这样,因为你不需要创建一个全新的变量,但这是不赞成的任何原因?如果在这个例子中它不是坏的,那么还有其他情况会是坏的吗?我还没有看到任何这样的例子,所以我不确定。是的,这是一种不好的做法。保存变量实际上并不能保存任何东西。变量是帮助您完成工作的工具。不要

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

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

我有点喜欢这样,因为你不需要创建一个全新的变量,但这是不赞成的任何原因?如果在这个例子中它不是坏的,那么还有其他情况会是坏的吗?我还没有看到任何这样的例子,所以我不确定。

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


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

问题是,如果创建一个新名称可以使事情更清楚、更易于维护,为什么会出现问题?如果将来需要进行更复杂的验证,该怎么办?如果您需要在用户输入上做更多的工作,而不仅仅是降低输入,该怎么办

当然,您的代码没有问题,但是如果用户键入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语句中的“否”与哪个进行比较?在您的示例中,如果用户键入“是的,我想用鸡蛋和垃圾食品来做垃圾食品!!!”他将吃不到美味的早餐


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

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

if input("Continue? Enter yes or no: ").lower() == "yes":
    # Continue code
else:
    # Else code
如果输入(“继续?输入是或否:”).lower().strip().replace(“[”,”).replace(“[”,”)=“是”:


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

这个问题有点主观,但您的代码没有“错误”。