2017-08-27 2 views
-2

目的:このプロジェクトでは、最初のプロジェクトと同様に、Pythonでランダムモジュールを使用します。プログラムは、最初にランダムにユーザーに知られていない番号を生成します。ユーザーは、その番号が何であるかを推測する必要があります。 (換言すれば、ユーザは情報を入力することができなければならない)。ユーザの推測が間違っている場合、プログラムは間違っているかどうかの何らかの表示を返さなければならない(例えば、数値が高すぎるか低すぎる)。ユーザーが正しく推測する場合は、肯定的な表示が表示されます。ユーザー入力が実際の数値であるかどうかをチェックしたり、入力された数値とランダムに生成された数値との差異を確認したり、数値を比較する機能が必要になります。TypeError:unorderable types:int()> str() - Pythonでのゲームの推定

そして、これは私がやったことですが、私はそれを修正する方法を知らない:のpython3で

enter image description here

+5

あなたのコードをSOにコピー&ペーストするときに、スクリーンショットを撮ってファイルをディスクに保存してアップロードしようとしましたが、約0.5秒かかりますか? ( –

+0

あなたのコードには論理的な問題がいくつかありますが、ユーザーが推測するたびに新しい乱数が生成されます。これは、「推測4、高すぎる、推測3、低すぎる」につながる可能性があります。 、笑Whut ?? " –

+0

ok thx私はそれを調べます – lcrimsonl

答えて

1

、文字列を返しますinput。この文字列を関数に直接渡し、random.choiceから得られた整数と比較します。これは何が起こるかです:

In [535]: '1' > 2 
--------------------------------------------------------------------------- 
TypeError         Traceback (most recent call last) 
<ipython-input-535-6857a5c3feea> in <module>() 
----> 1 '1' > 2 

TypeError: unorderable types: str() > int() 

結論:int sおよびstrイングスは比較することはできません。入力をint関数を呼び出して変換する必要があります。

your_guess = int(input(...)) 

そして、それが動作するはずです:

In [536]: 1 > 2 
Out[536]: False 

しかし、これは、唯一の問題を解決します。関数を呼び出すたびに、numberは毎回新しい値で再初期化されるので、数値に対して推測して関数を再度呼び出すと、次に違う乱数を推測することになります。 numbersの外に設定し、に設定し、推測値と乱数を引数として渡したいとします。