我正在尝试编写一个程序,询问用户一个字符串并测试它是不是是一个关键字。 [复制]
Posted
技术标签:
【中文标题】我正在尝试编写一个程序,询问用户一个字符串并测试它是不是是一个关键字。 [复制]【英文标题】:I'm trying to write a program that asks the user for a string and tests whether it is a keyword. [duplicate]我正在尝试编写一个程序,询问用户一个字符串并测试它是否是一个关键字。 [复制] 【发布时间】:2018-11-19 18:20:39 【问题描述】: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
只是列表中的一个元素,所以==
总是计算为False
。 in
改为检查列表的成员资格。
有一个方便的检查方法:keyword.iskeyword(your_word)
。
感谢最先发现问题的熊先生。
【参考方案1】:
问题在于您将字符串与集合(关键字)进行比较。
相反,请尝试使用以下内容:
if user_String in keywords:
print("That is a keyword")
else:
print("That is not a keyword")
【讨论】:
Python 需要对块进行适当的缩进,并且分号不是必需的(它们是允许的,但除非你在做代码高尔夫球并将所有内容都挤进一行)。 @Blckknght 谢谢你。我会坚持使用我完全理解的语言,以防止误导初学者。【参考方案2】:您应该使用“包含”功能而不是检查相等性。 此外,您还有一个名为 isKeyWord(string) 的函数可以检查这个确切的内容。
【讨论】:
以上是关于我正在尝试编写一个程序,询问用户一个字符串并测试它是不是是一个关键字。 [复制]的主要内容,如果未能解决你的问题,请参考以下文章