我正在使用下面的代码。但不是接受单个字符,而是允许用户放置多个字符。
我该如何解决?
guess = raw_input(':')
guessInLower = guess.lower()
答案 0 :(得分:9)
以下内容会不断提示用户输入,直到他们只输入一个字符。
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()
答案 1 :(得分:4)
默认情况下,python使用行缓冲输入,这意味着在用户点击输入之前,raw_input()
调用不会返回。如果要关闭行缓冲,可能需要查看可以执行的特定于操作系统的操作。 You can find a recipe demonstrating this here
答案 2 :(得分:2)
对于Python 2.7.x,
guess = raw_input(': ')[0].lower()
对于Python 3.x
guess = input (': ')[0].lower()
在这两种情况下,终端原始输入字符串中的第一个字符(不需要使用''
)将被降低并传递给变量guess
。