Python 3.6: "Guess the Number Game" TypeError: '<' は 'str' と 'int' のインスタンスの間でサポートされていません。
今日、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)
関連
-
[解決済み】Pytorch AssertionError: CUDAを有効にした状態でTorchがコンパイルされていない
-
ImportError: 必要な依存関係 ['numpy'] がない 解決方法
-
Pythonの生産性を向上させる5つのJupyter notebookプラグイン
-
[解決済み] Python 3 では、'map' 型のオブジェクトは len() を持ちません。
-
[解決済み] Asyncioです。タスクの例外が取得されないという奇妙な事態が発生
-
[解決済み] Python TypeError: フォーマット文字列の引数が足りない
-
[解決済み] TypeError: unsupported operand type(s) for +: 'NoneType' and 'str'」を修正するにはどうしたらいいですか?
-
[解決済み] pipでScipyをインストールできない
-
spyderについて ImportError: matplotib.pyplotという名前のモジュールはありません。
-
[python][scrapy] 型 'bytes' のオブジェクトは JSON シリアライズ可能ではない
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
Pythonショートビデオクローラーチュートリアル
-
[解決済み】ValueError: pickleプロトコルがサポートされていません。3、python2 pickleはpython3 pickleでダンプしたファイルを読み込むことができない?
-
[解決済み】npm - "Pythonの実行ファイル「python」が見つかりません。" env変数PYTHONを設定すればOKです。
-
モバイル・コンピュータゲーム向けPythonスクリプティング
-
[解決済み] ビューは HttpResponse オブジェクトを返しませんでした。代わりに None を返しました。
-
[解決済み] stdoutの値が正しくありません。
-
[解決済み] for'ループでi = i + 1とi += 1の違いは何ですか?[重複しています]。
-
[解決済み] Pythonの規約である**kwargs vs **kwds vs **kwとは何ですか?
-
[解決済み] NameError: 名前 'request' が定義されていません。
-
[解決済み] NameError: 名前 'get_ipython' が定義されていません。