0

わかりました、ここで助けが必要です。内部でサイコロを振るプログラム (randrange) を作成しようとしています。このプログラムは、結果を画面に出力するリストを参照します。

例: ユーザーが「1」を入力し、サイコロを振る。プログラムは 2 をロールし、リストをチェックして 2 の意味を確認します。2 は Medium を意味するため、「Medium」と出力されます。

ただし、これに関するチュートリアルをどこで探すべきかわかりません (何を検索すればよいかさえわからないため)。そこで、貼り付けた一連のコードをお届けします。見やすくするためのペーストビンは次のとおりです: 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:行は新しいブロックの一部ではないため、インデントしないでください。

  • =テストを行うときは、符号を2倍にする必要があります。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 に答える