重複の可能性:
Pythonはユーザーから1文字を読み取ります
私は以下のコードを使用していますが、単一の文字を受け入れる代わりに、ユーザーが複数の文字を入力できるようにします。
どうすれば修正できますか?
guess = raw_input(':')
guessInLower = guess.lower()
重複の可能性:
Pythonはユーザーから1文字を読み取ります
私は以下のコードを使用していますが、単一の文字を受け入れる代わりに、ユーザーが複数の文字を入力できるようにします。
どうすれば修正できますか?
guess = raw_input(':')
guessInLower = guess.lower()
次の例では、ユーザーが正確に 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()
デフォルトでは、Python は行バッファ入力を使用しますraw_input()
。つまり、ユーザーが Enter キーを押すまで、呼び出しは返されません。行のバッファリングをオフにしたい場合は、OS 固有の機能を確認する必要がある場合があります。これを示すレシピはこちらにあります。
Python 2.7.x の場合、
guess = raw_input(': ')[0].lower()
Python 3.x の場合
guess = input (': ')[0].lower()
どちらの場合も、端末の生の入力文字列 ( を使用する必要はありません''
) の最初の文字が下げられ、変数 に渡されますguess
。