可能重复:
Python 从用户读取单个字符
我正在使用下面的代码。但是它允许用户放置多个字符,而不是接受单个字符。
我该如何解决?
guess = raw_input(':')
guessInLower = guess.lower()
可能重复:
Python 从用户读取单个字符
我正在使用下面的代码。但是它允许用户放置多个字符,而不是接受单个字符。
我该如何解决?
guess = raw_input(':')
guessInLower = guess.lower()
以下将不断提示用户输入,直到他们恰好输入一个字符。
userInput = ''
while len(userInput) != 1:
userInput = raw_input(':')
guessInLower = userInput.lower()
这样做是一样的,但也会在再次提示输入之前通知他们一个字符的限制
while True:
userInput = raw_input(':')
if len(userInput) == 1:
break
print 'Please enter only one character'
guessInLower = userInput.lower()
看起来你只期待字母。如果是这种情况,您可以进一步扩展以要求:
import string
while True:
userInput = raw_input(':')
if len(userInput) == 1:
if userInput in string.letters:
break
print 'Please enter only letters'
else:
print 'Please enter only one character'
guessInLower = userInput.lower()
默认情况下,python 使用行缓冲输入,这意味着raw_input()
在用户点击回车之前调用不会返回。如果您想关闭线路缓冲,您可能需要查看您可以执行的特定于操作系统的操作。你可以在这里找到一个演示这个的食谱。
对于 Python 2.7.x,
guess = raw_input(': ')[0].lower()
对于 Python 3.x
guess = input (': ')[0].lower()
在这两种情况下,来自终端原始输入字符串的第一个字符(不需要使用''
)将被降低并传递给变量guess
。