我在python上创建一种测验游戏,其中一个问题是'输入一个包含5个字母的单词'。
所以基本上我想要的是让用户键入任何包含5个字母或字符的内容。然后python检查它是否有5个字母,如果它是正确的,它会将它们发送到下一个问题。
答案 0 :(得分:3)
对于你的游戏,我假设你有一些while循环可以让事情继续发展。
这样做:
word = input("Give me a 5 letter word: ")
上面的行将询问用户5个字母的单词,他们的输入将存储在变量单词中。然后检查
if len(word) != 5:
print "that's not 5 letters..."
答案 1 :(得分:1)
你可以试试这个。
if len(word) is 5
修改强>
显然这很糟糕。发帖的时候我不知道。
无论如何,对于那些不知不觉和古玩的人来说,这是一个小实验
>>> a = "hello"
>>> len(a) is 5
True
>>> len(a) is 4
False
>>> len(a) is 5.0
False
>>> len(a) == 5
True
>>> len(a) == 4
False
>>> len(a) == 5.0
True
再次编辑 根据interjay的评论,我进一步做了一个实验。
>>> for i in range(1000):
... a = 'x'*i
... if len(a) is not i:
... print(i)
... break
...
257
如果有人可以解释为什么它可以达到256,我很乐意在这里添加
再次编辑
这可能解释了这种行为。我引用了评论中的interjay。
这是CPython的优化: 范围内整数的对象 预分配-1到256,每次都是其中一个值 遇到了,它给出了相同的 宾语。对于其他整数,一个新的 每次都创建对象。的 当然,这是一个实现 细节,可以在Python之间切换 版本
答案 2 :(得分:1)
answer = raw_input("What is a five letter word? ")
if len(answer) == 5:
print "Correct!"
else:
print "Wrong, that has", len(answer), "letters!"
如果您使用的是Python 3,则需要将raw_input
替换为input
并在打印表达式周围添加括号(因为print成为函数)。