raw_input应该只接受单个字符

MBa*_*jee 2 python

可能重复:
Python从用户读取单个字符

我使用下面的代码.但不是接受单个字符,而是允许用户放置多个字符.

我该如何解决这个问题?

guess = raw_input(':')
guessInLower = guess.lower()
Run Code Online (Sandbox Code Playgroud)

Mat*_*att 9

以下将连续提示用户输入,直到他们输入一个字符.

userInput = ''
while len(userInput) != 1:
    userInput = raw_input(':')
guessInLower = userInput.lower()
Run Code Online (Sandbox Code Playgroud)

这样做也是如此,但在再次提示输入之前,还会通知他们一个字符限制

while True:
    userInput = raw_input(':')
    if len(userInput) == 1:
        break
    print 'Please enter only one character'
guessInLower = userInput.lower()
Run Code Online (Sandbox Code Playgroud)

看起来你只期待信件.如果是这种情况,您可以进一步扩展,以要求:

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()
Run Code Online (Sandbox Code Playgroud)