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

问题描述 投票:0回答:4

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

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

python variables
4个回答
3
投票

对于你的游戏,我假设你有一些 while 循环来让事情继续进行。

这样做:

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

上面的行将询问用户 5 个字母的单词,他们的输入将存储在变量单词中。然后检查

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

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 表达式两边加上括号(因为 print 变成了一个函数)。


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之间可以改变 版本。


0
投票

我的版本是:

question_one = input("Type a 5 letter word.")   if not len(question_one) == 5:   print("Thats not a 5 letter word!") else:  print(your_next_question) 

© www.soinside.com 2019 - 2024. All rights reserved.