0

好的,我需要一些帮助。我正在尝试编写一个在内部滚动骰子的程序(randrange),该程序引用一个列表,然后将结果打印到屏幕上

示例:用户输入“1”,激活掷骰子。该程序滚动一个 2 并检查一个列表以查看 2 的含义。2 表示中等,因此它会打印“中等”

但是,我不知道在哪里可以找到这方面的教程(因为我什至不知道要搜索什么),而且我问的每个人都对这个问题感到困惑。所以我带着一组粘贴的代码来找你。这是一个用于更好查看的 pastebin:http: //pastebin.com/PGEmNqTm

import random

def Main() :

    print TESTING
    print
    print
    print "1 1d4"

    sum = raw_input("> ")

    if sum == '1':
        numberr = random.randrange(1, 5)
            if numberr = 1
                print "Small"
            elif numberr = 2
                print "Medium"
            elif numberr = 3
                print "Large"
            elif numberr = 4
                print "Huge"

while 1:
    input = raw_input("Press Enter to continue or q to quit").upper()
    if input == 'Q': break
    elif input == '' : Main()
4

3 回答 3

2

也许你可以从这个例子中利用:

import random

def roll(num):
    return  {
        1: "Small",
        2: "Medium",
        3: "Large",
        4: "Huge",
        5: "Huge+",
        6: "Huge++"
    }[num]

print roll(random.randrange(1, 7))
于 2011-09-12T05:07:53.517 回答
1

除了一些小细节之外,您的代码看起来还不错。

那些是:

  • 你的if numberr == x:行不应该缩进,因为它们不是新块的一部分。

  • 进行测试时需要将=符号加倍:if number == 1:

  • 你需要一个冒号if(你知道,但它在某些行上丢失了)。

  • raw_input不是raw_imput

  • 围绕“测试”的名言

这是带有这些修复的代码:

import random

def Main() :

    print "TESTING"
    print
    print
    print "1 1d4"

    sum = raw_input("> ")

    if sum == '1':
        numberr = random.randrange(1, 5)
        if numberr == 1:
            print "Small"
        elif numberr == 2:
            print "Medium"
        elif numberr == 3:
            print "Large"
        elif numberr == 4:
            print "Huge"

while 1:
    input = raw_input("Press Enter to continue or q to quit").upper()
    if input == 'Q': break
    elif input == '' : Main()

所以我会说你似乎已经做对了。

(Vishal 的建议也很好)

于 2011-09-12T05:09:41.393 回答
1

尝试这样的事情:

import random

myNum = ({1:'Small', 2:'Medium', 3:'Large', 4:'Huge'})

def main():
    mysum = raw_input("> ")
    if mysum == '1':
        numberr = random.randrange(1,5)
        print(myNum[numberr])

while 1:
    myinput = raw_input("Press Enter to continue or q to quit")
    if myinput == 'Q':
        break
    elif myinput == '' :
        main()

命名变量名时要小心保留关键字!

于 2011-09-12T05:18:04.477 回答