使用 python,我试图找到一种更快的方法来根据输入多次运行 randint,而不必写出每个输入的可能性。这是用于桌面游戏的骰子滚轮。代码如下
import random
from random import randint
i1=input("what type of die?: ")
i2=input("how many times?:")
roll_again = "yes"
while roll_again == "yes" or roll_again == "y":
if i1=="d6":
if i2=="1":
value1=randint(1,6)
print(value1)
roll_again = input("roll again?")
if i2=="2":
value1=randint(1,6)
value2=randint(1,6)
print(value1,value2)
roll_again = input("roll again?")
if i2=="3":
value1=randint(1,6)
value2=randint(1,6)
value3=randint(1,6)
print(value1,value2,value3)
roll_again = input("roll again?")
if i2=="4":
value1=randint(1,6)
value2=randint(1,6)
value3=randint(1,6)
value4=randint(1,6)
print(value1,value2,value3,value4)
roll_again = input("roll again?")
elif i1=="d4":
if i2=="1":
value1=randint(1,4)
print(value1)
roll_again = input("roll again?")
if i2=="2":
value1=randint(1,4)
value2=randint(1,4)
print(value1,value2)
roll_again = input("roll again?")
if i2=="3":
value1=randint(1,4)
value2=randint(1,4)
value3=randint(1,4)
print(value1,value2,value3)
roll_again = input("roll again?")
if i2=="4":
value1=randint(1,4)
value2=randint(1,4)
value3=randint(1,4)
value4=randint(1,4)
print(value1,value2,value3,value4)
roll_again = input("roll again?")
我正在继续添加其他骰子类型。基本上我希望能够输入 100 作为输入,它给我 100 randint ,而不必手动编码直到 if i2=="100" 但仍然保持不同的“ifs”。我还想打印滚动值的总和
对于第二部分,我尝试 print(sum(value1,value2)) 但由于 value1 和 value2 不是整数,我收到错误
正确答案
如果我理解正确的话,你想简化算法的操作。
我的代码工作原理如下。
用户输入骰子的类型(例如“d6”、“d10”)和投掷次数。 程序检查输入的骰子类型是否正确(以“d”开头且骰子面数为正)。
如果数据正确,程序将使用给定的骰子生成给定的投掷次数,将结果保存到值列表中并打印它们。
程序计算获得的结果的总和并打印出来。
程序询问用户是否希望继续进行另一次抛出。
如果用户决定再掷一次,程序将重复生成和打印结果的过程。
如果用户输入不正确的数据(例如,骰子格式错误或投掷次数小于 1),程序将打印一条错误消息。
我假设您会修改此代码以满足您的需求
from random import randint
i1 = input("Enter the type of dice (e.g., d6, d4): ")
i2 = int(input("Enter the number of dice rolls: "))
if i1.startswith("d") and i2 > 0:
dice_type = int(i1[1:])
values = []
for _ in range(i2):
values.append(randint(1, dice_type))
print(*values)
print("Sum:", sum(values))
roll_again = input("Roll again? (yes/no): ").lower()
while roll_again == "yes":
values = []
for _ in range(i2):
values.append(randint(1, dice_type))
print(*values)
print("Sum:", sum(values))
roll_again = input("Roll again? (yes/no): ").lower()
else:
print("Invalid input. Please enter a valid dice type and number of rolls.")
以上就是如何根据输入多次运行一行代码?的详细内容,更多请关注编程网其它相关文章!
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
软考中级精品资料免费领
- 历年真题答案解析
- 备考技巧名师总结
- 高频考点精准押题
- 资料下载
- 历年真题
193.9 KB下载数265
191.63 KB下载数245
143.91 KB下载数1148
183.71 KB下载数642
644.84 KB下载数2756