Python 2と3は機能が異なるinput()
です。
- Python 2では、
input()
はeval(raw_input())
に相当します。
- Python 3では、
raw_input()
はありませんが、input()
はPython 2のraw_input()
のように動作します。あなたのケースでは
:Pythonの2、input()
で
- はあなたのタイプ
int
と4
を与えるので、あなたのプログラムが動作します。
- Python 3では、
input()
は'4'
タイプのstr
です。プログラムがバグです。
Python 3では、これを修正する1つの方法はeval(input())
を使用することです。しかし、信頼されていない文字列にeval
を使用することは非常に危険です(Python 2ではプログラムが危険に働いています)。入力を最初に検証する必要があります。これは、整数に、すべての入力値を変換します
z = 0
while z != "gg you win, noob":
try:
x = int(input("Insert a numer: "))
while x != 4:
print("incorrect")
x =int(input("Insert another number: "))
if x == 4:
z = "gg you win, noob"
print(z)
except:
print('Only input numbers')
:
Python 2またはPython 3? –
これは2で動作しているので、彼は3について話しています。 – brianpck
@brianpckそれは正当な仮定ですが、私はそれを正確には言っていません_2で "働いています"。どちらの方法でもコードは間違っています。 – zvone