我正在为我的模拟考试编写一些代码,我被困在必须将所有分数加在一起然后打印总计的部分。该代码的目的是让2个玩家掷2个骰子,如果数字相同,则他们掷3个骰子。然后代码将骰子加在一起,并根据总数是否可以除以2来打印总数。 重复此5次后,代码应将所有总计加在一起并显示总计。 但它只会打印最后的总计,而不会将所有5个总计加在一起。如果有人可以帮助我,将不胜感激,对于菜鸟问题,我也感到抱歉。我是新来的。
import random
score = 0
for i in range(5):
print ("\n")
dice1 = random.randint(1,6)
dice2 = random.randint(1,6)
dice3 = random.randint(1,6)
print ("player 1: roll 1 = ",dice1)
print ("player 1: roll 2 = ",dice2)
if dice1 == dice2:
print ("player 1: roll 3 = ",dice3)
score = dice1+dice2
if dice1 == dice2:
score = dice1+dice2+dice3
if score % 2 == 0:
score = score+10
if score % 2 == 1:
score = score-5
print ("player 1: score = ", score)
print ("\n")
overalltotal = score
print ("total for player 1:", overalltotal)
我希望输出结果是所有5分的总和。实际的输出只是最后的分数
答案 0 :(得分:1)
我认为您需要在for循环的末尾包含totaltotal + =分数,而不是在for循环后设置totaltotal =分数。因此您的代码应为:
import random
score = 0
overalltotal = 0 # <-- initialize here
for i in range(5):
print ("\n")
dice1 = random.randint(1,6)
dice2 = random.randint(1,6)
dice3 = random.randint(1,6)
print ("player 1: roll 1 = ",dice1)
print ("player 1: roll 2 = ",dice2)
if dice1 == dice2:
print ("player 1: roll 3 = ",dice3)
score = dice1+dice2
if dice1 == dice2:
score = dice1+dice2+dice3
if score % 2 == 0:
score = score+10
if score % 2 == 1:
score = score-5
print ("player 1: score = ", score)
overalltotal += score # <-- add value of each round here
print ("\n")
print ("total for player 1:", overalltotal)
答案 1 :(得分:0)
您的问题不是Python,而是程序逻辑。首先用纸和铅笔描述,然后逐步进行测试,循环和块化。然后在不同的用例中遵循本文中的过程。当您认为它应该工作时,请将其翻译为Python代码,添加跟踪打印以控制发生的事情并运行。您应该能够自己修复所有问题。
作为应该修复或改进的内容的提示:
if dice1 == dice2:
一个接一个地测试。最好将常见问题(score = dice1 + dice2
之外的内容归为一组,而不是针对特定问题(score += dice3
进行一次测试print ("player 1: score = ", score)
位于if块内。如果score % 2 != 1
,则不会打印任何内容。这真的可取吗?overalltotal
,并在循环内用score
递增dice3
。为什么不仅在if dice1 == dice2:
块内计算它?答案 2 :(得分:0)
如果您要更改所提到的分数,则必须更改声明
score = dice1+dice2 --> score += dice1+dice2 (do this for dice things)
score = score+10 --> score += 10 (for score things)
score = score-5 --> score -= 5 (for score things)