如何计算用户输入的字符数量

1 投票
3 回答
11077 浏览
提问于 2025-04-16 17:10

我正在用Python制作一个问答游戏,其中有一个问题是“输入一个包含5个字母的单词”。

简单来说,我想让用户输入任何包含5个字母或字符的内容,然后Python会检查这个输入是否正好有5个字母。如果是正确的,就会把他们带到下一个问题。

3 个回答

0

你可以试试这个。

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版本之间有所变化。

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,而且在打印的内容周围加上括号(因为在Python 3中,打印变成了一个函数)。

3

对于你的游戏,我猜你有一个循环在不停地运行。

你可以这样做:

word = input("Give me a 5 letter word: ")

上面的代码会让用户输入一个五个字母的单词,然后把他们输入的内容存储在一个叫做word的变量里。接下来,你需要检查一下:

if len(word) != 5:
    print "that's not 5 letters..."

撰写回答