我正在尝试编写一个程序,询问用户一个字符串并测试它是不是是一个关键字。 [复制]

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 只是列表中的一个元素,所以== 总是计算为Falsein 改为检查列表的成员资格。 有一个方便的检查方法: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) 的函数可以检查这个确切的内容。

【讨论】:

以上是关于我正在尝试编写一个程序,询问用户一个字符串并测试它是不是是一个关键字。 [复制]的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 FBTestSession

遍历字典值?

使用帧缓冲的两个应用程序

从 LaunchIntent 向用户询问输入

如何限制字符输入“cin”只得到一个字符串

制作演绎程序