Q
入力として取得
Quit = int(input('Press Q to Quit')
Q
入力としてを求めていますが、 int
. そのため、次のint
部分を取り外します。
Quit = input('Press Q to Quit')
ユーザーQuit
が入力したものになるので、代わりに「Q」をチェックしましょうTrue
:
if Quit == "Q":
の代わりに、関数内にいる場合は、またはでsys.exit(0)
while look を終了できます。break
return
また、ユーザー入力を格納するだけの変数に "Quit" という名前を付けることはお勧めしません。混乱を招くからです。
また、Python ではインデントが重要であるため、次のようにする必要があることに注意してください。
if run == False:
choice = input('Press Q to Quit')
if choice == "Q":
# break or return or..
import sys
sys.exit(0)
ただし、それは単なるコピー/貼り付けエラーである可能性があります。
インデントと構文
インデントを修正し、余分なコードを削除して (外側のループといくつかの print ステートメントを複製したため)、次のようにしました。
print('How old do you thing Fred the Chicken is?')
number = 17
run = True
while run:
guess = int(input('Enter What You Think His Age Is....t'))
if guess == number:
print('Yes :D That is his age...')
run = False
elif guess < number:
print('No, Guess a little higher...')
elif guess > number:
print('No, Guess a little lower....')
if run == False:
print('Game Over')
choice = input('Press Q to Quit')
if choice == 'q'
break
これにより、構文エラーが発生しました。
blong@ubuntu:~$ python3 Chicken.py
File "chicken.py", line 23
if choice == 'q'
^
SyntaxError: 無効な構文
if
したがって、Python はステートメントの後に何か問題があると言っています。他のステートメントを見ると、このステートメントが末尾にないことにif
気付くので、次のように変更します。:
if choice == 'q':
その変更により、プログラムが実行され、希望どおりに動作するように見えます。
いくつかの提案
あなたの指示は「Press Q to Quit」と言いますが、実際には「Q」のみを受け入れて終了します。両方を受け入れたいと思うかもしれません。Python には という演算子がor
あり、これは 2 つの真理値 (True
または) を取り、どちらかが真である場合False
に返します(実際には、と以外の値でこれ以上のことを行います。興味がある場合はドキュメントを参照してください)。True
True
True
False
例:
>> True or True
True
>>> True or False
True
>>> False or True
True
>>> False or False
False
したがって、 Q または q を で求めることができますif choice == "Q" or choice == "q":
。
別のオプションは、文字列を小文字に変換しq
、 を使用してのみをチェックすることif choice.lower() == "q":
です。Q の場合choice
、最初に q に変換し ( を使用.lower()
)、次に比較を行います。
あなたの数字は常に 17 です。Pythonには、乱数を与えるrandom.randint()という関数があり、ゲームがより楽しくなるかもしれません。たとえば、これはニワトリの年齢を 5 ~ 20 歳 (両端を含む) にします。
number = random.randint(5, 20)