【问题标题】:If statements with names and an input带有名称和输入的 if 语句
【发布时间】:2020-01-19 05:09:53
【问题描述】:

这是python 3 我只是用数字做了这个程序,但我不能让它和名字一起工作。 我是这样写的

x=input("write a actor from a famous movie:")
if (x==Matt Damon):
    print ("Jason Bourne")
else:    
    print ("type another actor") 

据我了解,这是错误的 == 部分,但我不知道为什么。我的另一个想法是写类似: MattDamon=Jason Bourne

但这也不起作用,我觉得我错过了一些小事来完成它。

如果有人能帮助我,我会非常高兴,谢谢!!

【问题讨论】:

  • if x == "Matt Damon" ?引用字符串文字
  • 欢迎来到 SO。您应该已经发布了错误消息和回溯(cf minimal reproducible example) - 在这种特定情况下并不重要(问题很明显)但大多数时候这些是必需的信息 - “不起作用”是一个完全无用的描述一个问题;-)
  • 非常感谢您的时间和回答

标签: python if-statement input


【解决方案1】:

if 条件中的名称缺少引号 -(x=="Matt Damon")

x=input("write a actor from a famous movie:")
if (x=="Matt Damon"):
    print ("Jason Bourne")
else:    
    print ("type another actor") 

【讨论】:

  • 请注意答案中的正确代码格式(已修复)。
  • 非常感谢,我是这个网站的新手,所以我接受所有反馈并努力改进。再次感谢您
【解决方案2】:

我觉得我错过了一些小事

它实际上远非“次要”——不是在“如何使它工作”中,而是因为它表明你没有掌握基本的语法规则,你应该首先学习这些规则(我们都学过通过这一点,当你第一次接触编程语言时,它确实不是那么明显)。

这里:

if (x==Matt Damon):

According to Python's syntaxMattDamonidentifiers(变量或函数名称),而不是字符串,这会引发SyntaxError,因为以这种方式并置两个标识符没有意义,因此确实是无效的语法。

如果您尝试使用一个术语,即:

if (x==Matt):

那么语法将是有效的,Python 将尝试将变量 x 与名为 Matt 的变量进行比较。如果您之前没有定义名为Matt 的变量,则结果可能是NameError,或者,如果您定义了它,则根据Matt 的定义方式,测试会产生什么结果。

As documented,如果你想要一个文字字符串,你必须在字符串周围使用引号,即:

if (x=="Matt Damon"):

我强烈建议您使用the full official tutorial,然后浏览文档以获取更多详细信息。这通常比随机尝试并在绝望中发帖更好(并且更快);-)

【讨论】:

  • 感谢您的时间和想法,我会这样做的:D
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-11-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多