Python定义参数问题

时间:2015-03-08 23:23:52

标签: python random dice function

我的程序根据输入滚动 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'

1 个答案:

答案 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。