Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 3.x Python 3:如何将掷骰子程序循环回起点_Python 3.x_Restart - Fatal编程技术网

Python 3.x Python 3:如何将掷骰子程序循环回起点

Python 3.x Python 3:如何将掷骰子程序循环回起点,python-3.x,restart,Python 3.x,Restart,在没有老师或小组帮助的情况下编写我的第一个solo程序,这是一个简单的代码,可以作为D&D骰子滚轮,用于用户需要的任何类型或数量的骰子 我已经做了大约四个小时了,最后一件事我想做的就是把它循环回到开始,而不是在用户没有重新掷已经选择的骰子时结束,我希望它能从顶部重新开始,这样玩家就可以输入新的骰子值和生成的骰子数,而无需关闭程序并重新运行 import random try: min = 1 max = int(input("Enter the highest val

在没有老师或小组帮助的情况下编写我的第一个solo程序,这是一个简单的代码,可以作为D&D骰子滚轮,用于用户需要的任何类型或数量的骰子

我已经做了大约四个小时了,最后一件事我想做的就是把它循环回到开始,而不是在用户没有重新掷已经选择的骰子时结束,我希望它能从顶部重新开始,这样玩家就可以输入新的骰子值和生成的骰子数,而无需关闭程序并重新运行

import random

try:
    min = 1
    max = int(input("Enter the highest value of dice to be rolled: "))
except:
    print("Your input was invalid, program rolled a d20 by default")
    min = 1
    max = 20

again = True
number_of_dice = int(input("Enter number of dice to roll: "))

for i in range(number_of_dice - 1):
    print(random.randint(min, max))

while again:
    print(random.randint(min, max))

    reroll = input("Roll again? (y/n): ")

    if reroll.lower() == "y" or reroll.lower() == "yes":
        for i in range(number_of_dice - 1):
            print(random.randint(min, max))
    else:
        print("Thank you")
        break

您可以尝试以下方法:

import random
    
while True:

    try:
        min = 1
        max = int(input("Enter the highest value of dice to be rolled or 0 to exit: "))
    except:
        print("Your input was invalid, program rolled a d20 by default")
        min = 1
        max = 20

    if max == 0:
        break
    if max < 0:
        continue
    
    again = True
    number_of_dice = int(input("Enter number of dice to roll: "))
    
    

    for i in range(number_of_dice - 1):
        print(random.randint(min, max))
    
    while again:
        print(random.randint(min, max))
    
        reroll = input("Roll again? (y/n): ")
    
        if reroll.lower() == "y" or reroll.lower() == "yes":
            for i in range(number_of_dice - 1):
                print(random.randint(min, max))
        else:
            print("Thank you")
            break
随机导入
尽管如此:
尝试:
最小值=1
max=int(输入(“输入要掷骰子的最高值或0退出:”)
除:
打印(“您的输入无效,程序默认为d20”)
最小值=1
最大值=20
如果max==0:
打破
如果最大值小于0:
持续
再次=正确
骰子数量=整数(输入(“输入要掷骰子的数量:”)
对于范围内的i(骰子数量-1):
打印(随机随机随机数(最小值、最大值))
同时:
打印(随机随机随机数(最小值、最大值))
重新滚动=输入(“再次滚动?(y/n):”)
如果reroll.lower()=“是”或reroll.lower()=“是”:
对于范围内的i(骰子数量-1):
打印(随机随机随机数(最小值、最大值))
其他:
打印(“谢谢”)
打破

此外,我建议重命名“min”和“max”,因为它们是保留关键字

查找函数。。。您还需要另一个
while
循环,使用不同的用户输入来表示是否结束程序。您可以将整个过程放入while(1)循环,该循环将在endlessley循环中,并在其中放入合适的中断条件。谢谢,我没有想到将整个程序放入while True循环中。这比我试图在脑海中想出的解决方案要优雅得多。祝你有美好的一天!