1. ホーム
  2. python

Python 3.6: "Guess the Number Game" TypeError: '<' は 'str' と 'int' のインスタンスの間でサポートされていません。

2022-02-18 02:32:12
<パス

今日、Pythonの学習中にちょっとした"数字当て"プログラムを書いたので、皆さんとの共有と自分用の記録として投稿しておきますね。
1. 数字当てゲーム("guess the number")の簡易版で、0~9のランダムな整数を生成し、ユーザーが入力した数字が正しいかどうかを判断する。
初期コードです。

#coding:utf-8
import random
s=random.randint(0,9)#generate a random integer from 0-9
n=input("Please enter your guessed number>>")# input a guessed integer 0-9
if n < 10 and n >= 0:
    if n == s:
        print("Congratulations on your correct guess, the answer is ",s)
    else:
        print("Guess wrong, the answer is ",s)
else:
    print("Please enter an integer from 0-9>>")

実行後、1を入力すると、エラーが報告されます。(以下のように)

エラーの原因は、input()が返すデータ型がstrであり、整数と直接比較できないため、まず整数に変換する必要があるためです。

修正したコード

#coding:utf-8
import random
s=random.randint(0,9)
n=int(input("Please enter the number you guessed >>"))
if n < 10 and n >= 0:
    if n==s:
        print("Congratulations on your correct guess, the answer is ",s)
    else:
        print("Guess wrong, the answer is ",s)
else:
    print("Please enter an integer from 0-9>>")

または

#coding:utf-8
import random
s=random.randint(0,9) #generate a random integer from 0-9
n=input("Please enter the number you guessed>>")#Enter a number
l=int(n)
if l <10 and l >=0:
    if l == s:
        print("Congratulations on your correct guess! ")
    else:
        print("Unfortunately, the correct answer is ", s)
else:
    print("Please enter an integer from 0-9>>")

実行し、さらに整数1をエラーなく入力すると、次のようになります。

2. 数字当てゲーム"Guess the Number"の改良版で、システムが0-9のランダムな整数を生成し、ユーザーはそれを正しく当てるまで数字を入力します! ソースコードです。

#coding:utf-8
import random
s=random.randint(0,9)
n=int(input("Please enter the number you guessed>>"))
while True:
    if n < 10 and n >= 0:
        if n == s:
            print("Congratulations on your correct guess, the answer is ", s)
            break
        else:
            if n > s:
                n = int(input("Guess big, guess again >>"))
            else:
                n = int(input("Guess small, guess again>>"))
    else:
        n = int(input("Please enter an integer from 0-9>>"))

<イグ

3. ゲーム、システムはランダムに整数の0から9を生成し、ユーザーが勝つために正しい回数を推測の制限内で、4回を推測することができ、4回以上が正しく推測されていない、ゲームオーバーになります!;番号を推測し、ゲームの最適化されたバージョンは、ユーザーが勝つために正しい回数を推測の制限内で、4回を推測することができ、ゲームオーバーになります。(ユーザーが入力した数字が0~9の整数の範囲にない場合は、間違っていると判断し、推測回数にカウントされません)
ソースプログラムです。

#coding:utf-8
import random
s=random.randint(0,9)
a=0
n=int(input("Please enter the number you guessed>>"))
while True:
    if n < 10 and n >= 0:
        if n == s:
            print("Congratulations on your correct guess, the answer is ", s)
            break
        else:
            if n > s:
                n = int(input("Guess big, guess again >>"))
            else:
                n = int(input("Guess small, guess again>>"))
    else:
        n = int(input("Error: Please enter an integer from 0-9, you have guessed %a times, there are %s chances>>" %(a,4-a)))
        continue
    if a == 3:
        print("Game over, you failed!!! The answer is ", s)
        break
    else:
        pass
    a += 1

<イグ

4. システムが0〜9のランダムな整数を生成し、ユーザーは基本的に勝てないという、"guess the number"ゲームの楽しいバージョンです。

#coding:utf-8
import random
while True:
    s=random.randint(0,9)
    n=int(input("Please enter an integer from 0-9>>"))
    if n==s:
        while True:
            s=random.randint(0,9)
            if n==s:
                pass
            else:
                break
    print("Unfortunately, you guessed wrong! The correct answer is ",s)