0

したがって、私のコードは基本的に、野球選手 (ジョー・ディマジオ) の各試合での打席をシミュレートしています。これが今までのコードです

import random
i = random.randint(1, 100)
j = random.randint(1, 100)
k = random.randint(1, 100)
l = random.randint(1, 100)
while True:
    if i <= 32:
        i = 1
    else:
        i = 0
    if k <= 32:
        k = 1
    else:
        k = 0
    if j <= 32:
        j = 1
    else:
        j = 0
    if l <= 32:
        l = 1
    else:
        l = 0
    m = i+j+k+l
    print("He went", m, "-4")

さまざまな IF および ELSE ステートメントのすべてで機能するかどうか疑問に思っています。同様に、これを実行しようとすると、print ステートメントの m が強調表示され、次のエラーが表示されます: 無効な構文。

これを修正する方法について何か助けはありますか?編集: 構文エラーは修正されましたが、現在は初めて追加されるだけで、残りのプリントはすべて 4-4 です。

4

2 に答える 2

3

print ステートメントを修正する必要があります。

print("He went", m, "-4")

または文字列連結を使用します。

print("He went" + str(m) + "-4")

または文字列の書式設定:

print("He went {} -4".format(m))

ランダムな値は毎回再計算されないmため、コードは同じ値を何度も再計算する無限ループに入ります。、、およびstaticであり、関数呼び出しを参照せず、それぞれへの1 つの呼び出しの戻り値を参照します。ijklrandom.randint()

毎回新しいランダム値に基づいて再計算するループを使用て、コードを簡素化できます。m

m = sum(1 for i in range(4) if random.random() < 0.32)
于 2013-07-07T14:28:37.067 に答える
1

連結演算子を使用する必要があります。

print("He went " + str(m) + "-4")

したがって、出力を印刷する前に、出力を単一の文字列として連結しています

于 2013-07-07T14:30:20.043 に答える