如何获取python以将几个总数加在一起并打印总体

时间:2019-06-07 08:55:02

标签: python python-3.x

我正在为我的模拟考试编写一些代码,我被困在必须将所有分数加在一起然后打印总计的部分。该代码的目的是让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分的总和。实际的输出只是最后的分数

3 个答案:

答案 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代码,添加跟踪打印以控制发生的事情并运行。您应该能够自己修复所有问题。

作为应该修复或改进的内容的提示:

  • 2个不同的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)