尝试将使用中的变量更改为用户输入的内容

时间:2017-11-17 21:52:34

标签: python variables input

我没有找到满足我需求的答案,或者对我来说很简单,因为我对python来说相对较新!

我有一个标记为难度的变量,要求用户输入一个字符串来说明他们是否想要简单的中等或硬模式。不幸的是我无法成功地让python检查所用单词的输入并给它们我想要的东西,我最终得到了#34;容易没有定义"或"媒介未定义"或者"很难定义。"有没有办法让我解决这个问题?以下是我的代码的一小部分,其中包含以下问题:

difficulty=input("What difficulty do you wish to choose, easy,medium or hard?")
   if difficulty==easy:
        print("You have chosen the easy mode, your test will now begin")
        print("")

    elif difficulty==medium:
        print("You have chosen the medium mode, your test will now begin")

    else:
        print("You have chosen the hard mode or tried to be funny, your test 
        will now begin")

2 个答案:

答案 0 :(得分:1)

您正在尝试从用户处获取字符串(input将返回一个字符串),然后将其与此案例'easy''medium'中的另一个字符串进行比较。 Here is a link to谷歌开发文章,谈论你可以对python中的字符串做的一些基本的事情。

difficulty = input("What difficulty do you wish to choose, easy,medium or hard?")
if difficulty == 'easy':
    print("You have chosen the easy mode, your test will now begin")
    print("")

elif difficulty == 'medium':
    print("You have chosen the medium mode, your test will now begin")

else:
    print("You have chosen the hard mode or tried to be funny, your test will now begin")

当您在代码中放置easymedium时,您告诉python它们是变量(link to python variable tutorial)而不是字符串。在这种情况下,您还没有定义easy变量,即:easy = 'some data'。因为你没有定义它python不知道如何处理easy它会抛出一个错误。

答案 1 :(得分:0)

首先,修复你的缩进(如果它只是在你的例子中不是问题)。其次,您需要将简单,中等和难度放在单'或双"引号中:

difficulty=input("What difficulty do you wish to choose, easy,medium or hard?")
if difficulty=="easy":
    print("You have chosen the easy mode, your test will now begin")
    print("")

elif difficulty=="medium":
    print("You have chosen the medium mode, your test will now begin")

else:
    print("You have chosen the hard mode or tried to be funny, your test 
    will now begin")

如果你没有把它们放在引号中,那么你不是要将difficulty与easy这个词进行比较,而是将其与easy变量进行比较。这当然会导致错误,因为不存在这样的变量。然而,引号告诉python将easy解释为字符串。