如何让用户选择要打印的arg

时间:2016-02-14 23:26:42

标签: python arguments

作为一种学习python的方法,我正在构建Yahtzee.py。

第一次滚动后,我希望用户决定要保留什么或重新注册什么(最多3次)。

为了避免为每个场景编写代码,我如何允许用户选择要重新注册的骰子。即(保持死1或保持骰子2,3,5)

这是我到目前为止的代码:

    import random

rollCount=1
roll1 = random.randint(1,6)
roll2 = random.randint(1,6)
roll3 = random.randint(1,6)
roll4 = random.randint(1,6)
roll5 = random.randint(1,6)

def rollAll():
    roll1
    roll2
    roll3
    roll4
    roll5



def printAll():
    print("roll 1:",roll1,"\nroll 2:",roll2,"\nroll 3:",roll3,"\nroll 4:",roll4,"\nroll 5:",roll5)

def printRoll():

print("press any key to roll dice")
input()
str(printAll())
print("Would you like to roll again?\nroll all, roll 1, roll 2 , roll 3, roll 4 , roll 5")
rollAgain = input()
if rollAgain== "roll all":
    rollCount=2
    rollAll()
    str(printAll())

1 个答案:

答案 0 :(得分:2)

欢迎使用Python! :)

由于您的帖子表明这是一项学习练习,我会针对您应尝试达到的目标提供建议,而不是为您编写和粘贴代码。

你的程序需要记住每个模具的滚动。其中一个机制可能是:

outcomes = []
for i in range(0,5):
    outcomes.append(random.randint(1,6))

鉴于上述情况,您现在拥有每个结果的程序化记忆。 random.randint()结果中的每一个现在都保存在一个列表中,您可以稍后在程序中按元素访问,具体取决于用户选择保留或重新滚动的内容。请记住,由于索引的编号方式,用户对“死一”的感知实际上是列表中的元素零。

有十多种方法可以接近你的程序的其余部分,但这对你来说应该是一个好的开端。您甚至可以探索列表推导,以改进我上面提供的示例。