我的程序根据输入滚动 n ,但是一次只能打开。试图让它回到d20()与if中的另一个,但似乎没有做任何事情。
import random
min = 1;
print "1. d20 \n2. d12 \n3. d10 \n4. d8 \n5. d6 \n6. d \n7. d100"
command = raw_input("Function: ")
def d20(n):
done = 0
if n>done:
print random.randint(min, 20)
done = done + 1
elif n==done :
print 'finished'
if command == "d20" or command == "1":
die = raw_input("How many die? ")
int(die)
d20(die)
else:
print 'else'
答案 0 :(得分:0)
在我看来,您所问的是如何重新运行d20
n
次,其中n
是您选择的骰子数量。
这不是if
语句的工作,而是for
循环的工作。
import random
min_value = 1
print "1. d20 \n2. d12 \n3. d10 \n4. d8 \n5. d6 \n6. d \n7. d100"
command = raw_input("Function: ")
def d20(n):
for i in range(n):
print random.randint(min_value, 20)
if command == "d20" or command == "1":
die = raw_input("How many dice? ")
n = int(die)
d20(n)
else:
print 'else'
输出:
Function: 1
How many dice? 3
5
17
13
我还将名称从min
更改为min_value
,因为min
是一个python内置函数,它返回最小的iterable,你不应该重新分配它。你也不需要;
。
另请注意n = int(die)
NOT 是一个安全的命令,没有什么可以保证你在那里写一个整数。如果你编写一个不能转换为整数的字符串(即" a"),python将引发异常。
快乐的dnding。