【问题标题】:I'm trying to write a program that asks the user for a string and tests whether it is a keyword. [duplicate]我正在尝试编写一个程序,询问用户一个字符串并测试它是否是一个关键字。 [复制]
【发布时间】:2025-11-22 11:30:01
【问题描述】:
import keyword
keywords = (keyword.kwlist)

user_String = input("enter a string: ")

answer = (user_String == keywords)

print ("it is " + str(answer) + " that the string '" + user_String + "' is a 
keyword.")

我正在尝试编写一个程序,询问用户一个字符串并测试它是否是一个关键字。但是我遇到的麻烦是即使我输入了一个有效的关键字它仍然会打印 False

【问题讨论】:

  • user_String in keywords
  • 您能否详细说明您的答案?
  • @AngelValenzuela keywords 是一个列表,user_String 只是列表中的一个元素,所以== 总是计算为Falsein 改为检查列表的成员资格。
  • 有一个方便的检查方法:keyword.iskeyword(your_word)
  • 感谢最先发现问题的熊先生。

标签: python python-3.x


【解决方案1】:

问题在于您将字符串与集合(关键字)进行比较。

相反,请尝试使用以下内容:

if user_String in keywords:
    print("That is a keyword")
else: 
    print("That is not a keyword")

【讨论】:

  • Python 需要对块进行适当的缩进,并且分号不是必需的(它们是允许的,但除非你在做代码高尔夫球并将所有内容都挤进一行)。
  • @Blckknght 谢谢你。我会坚持使用我完全理解的语言,以防止误导初学者。
【解决方案2】:

您应该使用“包含”功能而不是检查相等性。 此外,您还有一个名为 isKeyWord(string) 的函数可以检查这个确切的内容。

【讨论】:

    最近更新 更多