2017-10-04 18 views
0

私はかなりPythonを使い始めていますし、乱数の平均を計算しようとしているロードブロッキングを実行しています。プログラムの一般的な概要は、ユーザーに一定量の辺を入力させ、プログラムが蛇の目を出力するまでロールバックします。また、ダブルロールの量と蛇の目を取得するためにかかった時間を記録します。その後、プログラムを通じて各ダイのために転がった数の平均を作成します。これは私が失われたところです。複数の乱数の平均を計算するPython

編集:私は私の元のコードを削除し、Vasilisの答えで働いていた:彼はそれが最後の番号むしろ、すべてのロールを通して記録されている番号のすべてを取ることはありません指摘のようにしかし

import random 

while True: 
    #prompts user for valid number 
    user_s = int (input ("How many sides on your dice? ")) 
    if user_s < 3: 
     print("That is not a valid size value, please enter a positive number") 
    if user_s >= 3: 
     break 

print() 
print("Thanks! Here we go...") 
print() 
double_count = 0 
roll_count = 0 

sum1 = 0 # Used to calculate sum of die_1 
sum2 = 0 # Used to calculate sum of die_2 

while True: 
    roll_count += 1 
    die_1 = random.randint(1,user_s) 
    die_2 = random.randint (1,user_s) 




    print(roll_count,".", " Die number 1 is ", die_1 , " and die number 2 is ", die_2, ".", sep ="") 
    if die_1 == die_2: 
     double_count += 1 
    if die_1 == 1 and die_2 == 1: 
     break 

    # Making sum 
    sum1 = sum1 + die_1 
    sum2 = sum2 + die_2 

print("You finally got snake eyes on try number", roll_count) 
print("Along the way you rolled a double", double_count,"times") 

print(die_1) 
print(die_2) 

# Integer divisions 

avg_roll1 = sum1 // roll_count 
avg_roll2 = sum2 // roll_count 


print("The average roll for die 1 was", format(avg_roll1,".2f")) 
print("The average roll for die 2 was", avg_roll2) 

を。 それを達成するための助けをいただければ幸いです。

ありがとうございます!

+0

「リスト」は決して整数にはなりません。 'die_1 = [random.randint(1、user_s)]'はリストに追加されていません。古い値(正しいことを分かっている)を*保持するには、リストに追加する必要があります。置き換えないでください。最後に、 'die_1'はすでにリストになっているので、' [die_1] 'はリスト*のリストです。したがって、' sum'は実際には動作しません。 –

答えて

0

はそれを自分自身を手に入れました。

アキュムレータ変数=をダイスロールに設定します。この場合、sum1とsum2が変数です。

# make all of the functions in the "random" module available to this program 
import random 

while True: 
    #prompts user for valid number 
    user_s = int (input ("How many sides on your dice? ")) 
    if user_s < 3: 
     print("That is not a valid size value, please enter a positive number") 
    if user_s >= 3: 
     break 

print() 
print("Thanks! Here we go...") 
print() 
double_count = 0 
roll_count = 0 

sum1 = 0 # Used to calculate sum of die_1 
sum2 = 0 # Used to calculate sum of die_2 

#while statement for die rolls 
while True: 
    roll_count += 1 
    die_1 = random.randint(1,user_s) 
    sum1 += die_1 

    die_2 = random.randint (1,user_s) 
    sum2 += die_2 




    print(roll_count,".", " Die number 1 is ", die_1 , " and die number 2 is ", die_2, ".", sep ="") 
    if die_1 == die_2: 
     double_count += 1 
    if die_1 == 1 and die_2 == 1: 
     break 



print("You finally got snake eyes on try number", roll_count) 
print("Along the way you rolled a double", double_count,"times") 


# Integer divisions 

avg_roll1 = sum1/roll_count 

avg_roll2 = sum2/roll_count 


print("The average roll for die 1 was", format(avg_roll1,".2f")) 
print("The average roll for die 2 was", format(avg_roll2,".2f")) 
0

あなたが見たい場合は、コードを少し変更しました。私はあなたがそれを変更することはできますが、平均値を整数として計算したいと思っていました。あなたはdie_1die_2ような単純な整数変数を使用するので、彼らはrandom.randint(1,user_s)によって生成された唯一の最後の値を保持する:

import random 

    '''Skipped input part''' 

    print() 
    print("Thanks! Here we go...") 
    print() 
    double_count = 0 
    roll_count = 0 

    sum1 = 0 # Used to calculate sum of die_1 
    sum2 = 0 # Used to calculate sum of die_2 

    while True: 
     roll_count += 1 
     die_1 = random.randint(1,user_s) 
     die_2 = random.randint (1,user_s) 

     print("DIE_1: ", die_1) 
     print("DIE_2: ", die_2) 


     print(roll_count,".", " Die number 1 is ", die_1 , " and die number 2 is ", die_2, ".", sep ="") 
     if die_1 == die_2: 
      double_count += 1 
     if die_1 == 1 and die_2 == 1: 
      break 

     # Making sum 
     sum1 = sum1 + die_1 
     sum2 = sum2 + die_2 

    print("You finally got snake eyes on try number", roll_count) 
    print("Along the way you rolled a double", double_count,"times") 

    print(die_1) 
    print(die_2) 

    # Integer divisions 

    avg_roll1 = sum1 // roll_count 
    avg_roll2 = sum2 // roll_count 


    print("The average roll for die 1 was", avg_roll1) 
    print("The average roll for die 2 was", avg_roll2) 
関連する問題