gpt4 book ai didi

python - 从一个输入解包值以进行整数处理?

转载 作者:行者123 更新时间:2023-12-03 08:47:34 25 4
gpt4 key购买 nike

第一。我知道现在这看起来很乱,但是将py2.7转换为py 3.5代码时遇到了一个大问题,我还没有清理。继续。我试图将所有值打包成一行。这段代码可以运行,但是效果不如我所愿。我可以输入1-9中任何其他数字的值,这将起作用,但是例如,如果我想掷1d20怎么办?还是10d4?我似乎无法将整数分开。在py2.7和py 3.5中,因为我现在都有一个工作代码,如果我(.split())或(.join(“”))变量我仍然无法获取它来提取整数一起作为“r3d4”行中的单独条目。一旦我输入两位数的数字,它就会因错误“解开太多值”而停顿,或者出现“int base 10”错误。有任何想法吗?我不想将其分为“您想掷多少个骰子?”等。我想要一个干净的单行条目。下面的代码在这里工作:https://www.onlinegdb.com/online_python_interpreter但我不确定它是2.7还是3.5

import random
print("Dice Roller testing")
roll, amount, dice, sides = str(input("Input the format. example: r3d4. rolls 3d4 "))
amount = int(amount)
sides = int(sides)
i = 1
while i <= amount and roll == "r" and sides == 4:
x = random.randint(1, 4)
print(x)
i = (i+1)
while i <= amount and roll == "r" and sides == 6:
x = random.randint(1, 6)
print(x)
i = (i+1)
while i <= amount and roll == "r" and sides == 8:
x = random.randint(1, 8)
print(x)
i = (i+1)
else:
print("We are finished or the input is not valid.")

NVM。得到它了。

得到它了。这是我的代码。 (Python 3.6.4)
import random
while True:
user_input = str(input('test: '))
i = 1
roll, sides = user_input.split("d")
sides = int(sides)
x, amount = roll.split("r")
amount = int(amount)
while i <= amount:
n = random.randint(1,sides)
print(n)
i = i+1

最佳答案

用roll作为输入

import re
exp = re.compile('r?(\d{1,2})d(\d{1,2})')
try:
amount, faces = exp.fullmatch(roll).group(1,2)
except AttributeError:
print('bad format')

如果您使用100张面孔或数量,请根据位数更改 \d{1,2}(即 \d{1,3})

关于python - 从一个输入解包值以进行整数处理?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50452234/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com