3

重複の可能性:
Pythonはユーザーから1文字を読み取ります

私は以下のコードを使用していますが、単一の文字を受け入れる代わりに、ユーザーが複数の文字を入力できるようにします。

どうすれば修正できますか?

guess = raw_input(':')
guessInLower = guess.lower()
4

3 に答える 3

10

次の例では、ユーザーが正確に 1 文字を入力するまで入力を求め続けます。

userInput = ''
while len(userInput) != 1:
    userInput = raw_input(':')
guessInLower = userInput.lower()

これは同じことを行いますが、入力を再度求める前に 1 文字の制限を通知します。

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()
于 2012-10-18T13:17:10.787 に答える
4

デフォルトでは、Python は行バッファ入力を使用しますraw_input()。つまり、ユーザーが Enter キーを押すまで、呼び出しは返されません。行のバッファリングをオフにしたい場合は、OS 固有の機能を確認する必要がある場合があります。これを示すレシピはこちらにあります

于 2012-10-18T13:16:35.340 に答える
2

Python 2.7.x の場合、

guess = raw_input(': ')[0].lower()

Python 3.x の場合

guess = input (': ')[0].lower()

どちらの場合も、端末の生の入力文字列 ( を使用する必要はありません'') の最初の文字が下げられ、変数 に渡されますguess

于 2012-10-18T13:54:03.567 に答える