【问题标题】:Why doesn't the result of input() match what I expect to get? [closed]为什么 input() 的结果与我期望得到的不匹配? [关闭]
【发布时间】:2012-05-15 23:10:45
【问题描述】:

代码运行。但由于某种原因,当我被提示输入 Sam 时,我得到了回复“你的名字不是 Sam。”

name = ["Sam"]
print ("What is your name?")
name_choice = input("Type Here: ")

if name == "Sam":
   print ("Your name is Sam")
else:
   print ("Your name isn't Sam")

我正在使用 Python 3.2。任何帮助,将不胜感激。谢谢!

【问题讨论】:

    标签: python python-3.x


    【解决方案1】:

    用户输入在变量name_choice 中,但您将name 与“Sam”进行比较(因此用户输入从不使用)。

    您还将字符串与列表进行比较,这将始终是False

    In [32]: name = ['Sam']
    
    In [33]: 'Sam' == name
    Out[33]: False
    

    导致程序始终显示“你的名字不是 Sam”,无论用户输入什么。

    if name_choice == 'Sam':
       print ("Your name is Sam")
    else:
       print ("Your name isn't Sam")
    

    可能是你想做的事

    【讨论】:

      【解决方案2】:

      好的,我会咬一口,这是一个稍微好一点的问题。这里有两个主要问题。

      • 为什么要为 name 分配一个只包含 "Sam" 的列表?这是为了达到什么目的?
      • 然后您将用户输入分配给变量name_choice,该变量永远不会被使用。

      我不太确定你的思维过程是什么——我认为这表明你缺乏语言的基本知识,我建议阅读a tutorial

      另外值得注意的是,打印用户提示有点没有意义,然后使用"Type Here:"的实际提示。

      【讨论】:

      • 有什么理由让我对此投反对票?
      【解决方案3】:

      这是因为name == ["Sam"](您将其设置为与第一行中的相同)和"Sam" != ["Sam"]。您正在尝试将列表与字符串进行比较。

      另外,你可能想做if name_choice == "Sam"

      【讨论】:

        【解决方案4】:

        我认为你应该在这里使用name_choice 而不是name

        if name == "Sam":
            print ("Your name is Sam")
        

        name 变量到底是什么意思?

        当发生这种情况时,一个很好的提示是在 if 之前打印您正在比较的内容

        例如

        print ("name ==", name)
        if name == "Sam":
            print ("Your name is Sam")
        

        这表明您正在将列表与字符串进行比较

        【讨论】:

          【解决方案5】:

          首先,不确定这是否是故意的),name = ["Sam"] 创建一个包含一个字符串元素"Sam" 的列表,这与字符串"Sam" 不同

          然后你将此列表与单个字符串进行比较,而不是将输入的值与字符串(或者可能是列表的元素)进行比较

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 2018-02-25
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2023-03-11
            • 1970-01-01
            相关资源
            最近更新 更多