Python如何查找用户输入中的字符数

时间:2011-05-07 07:57:54

标签: python variables

我在python上创建一种测验游戏,其中一个问题是'输入一个包含5个字母的单词'。

所以基本上我想要的是让用户键入任何包含5个字母或字符的内容。然后python检查它是否有5个字母,如果它是正确的,它会将它们发送到下一个问题。

3 个答案:

答案 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成为函数)。