私は Python をいじっていて、小さな惑星シミュレーターを作っていました。値を受け取り、その値に基づいて 2 番目の値を返すセクションが 1 つあります。これのトラブルシューティングに数時間を費やしましたが、完全に困惑しています。値を追跡するのに役立ついくつかの印刷メッセージを追加しましたが、機能しているように見えますが、機能していません。私はそれが明らかなものであるとほぼ確信しています。私は何を間違っていますか?
問題のコードは次のとおりです。
def assignTerrain(pType):
print("Assigning terrain values to planet type: ", planetType[pType], pType)
if pType == 0:
print("Value 0 assigned", pType)
return 0
if pType == 1 or 2:
temp = random.randint(1, 11)
print("Value %d assigned" % temp, pType)
return temp
if pType == 3 or 4:
print("Value 12 assigned", pType)
return 12
print("There was an error with pType: ", pType)
サンプルとして、ここに私が得ている出力の例を示します:
Assigning terrain values to planet type: Asteroid Belt 4
Value 3 assigned 4
Assigning terrain values to planet type: Asteroid Belt 4
Value 5 assigned 4
Assigning terrain values to planet type: Asteroid Belt 4
Value 4 assigned 4
Assigning terrain values to planet type: Asteroid Belt 4
Value 7 assigned 4
Assigning terrain values to planet type: Asteroid Belt 4
Value 8 assigned 4
Assigning terrain values to planet type: Asteroid Belt 4
Value 2 assigned 4
Assigning terrain values to planet type: Asteroid Belt 4
Value 4 assigned 4
Assigning terrain values to planet type: Asteroid Belt 4
Value 1 assigned 4
Assigning terrain values to planet type: Asteroid Belt 4
Value 9 assigned 4
Assigning terrain values to planet type: Asteroid Belt 4
Value 8 assigned 4
pType 4 は最初の 2 つの IF ステートメントをスキップし、3 番目のステートメントから値を受け取る必要があるように思えますが、1 または 2 に引っかかっているようです。何か考えはありますか?