1

というわけで、Python 2.7 でテキストベースの RPG ゲームの開発に懸命に取り組んでいますが、キャラクター メニューで問題が発生しました。外観は次のとおりです。

def raceselect(n):
            if n==0:
                   print "(name) the Human."
            if n==1:
                   print "(name) the Dwarf."
            if n==2:
                   print "(name) the Elf."
            if n==3:
                   print "(name) the Halfling."
n = raw_input
raceselect(n)

0、1、2、および 3 はすべて、オプションでプロンプトが表示されたときに、前の画面で raw_input の回答として使用されます。ただし、スクリプトを実行すると、オプションが表示され、入力ボックスが表示されますが、数字が回答されると、スクリプトは単に終了します。スクリプトの前半で (name) と raw_input を使用したという事実でない限り、これを引き起こしている原因を突き止めることはできません。助けてください!

--Crux_Haloine

4

3 に答える 3

0

最初の問題はこれです:

n = raw_input

実際に関数を呼び出すことはありません。raw_input代わりに、 toの参照を割り当てていますn(つまり、n は関数の結果ではなく、関数になります)。

また、関数を呼び出したらraw_input、文字列を返すため、整数にキャストする必要があります。

したがって、次のことが必要です。

n = int(raw_input()).

于 2013-07-10T03:36:19.510 に答える
0

n = raw_inputここでは何ももたらさないでしょう。必要に応じて使用n = int(raw_input())する必要があります。そして、複数ではなく、dictまたはを使用する方が良いと思います:listif

def raceselect(n):
    races = {0: 'Human', 1: 'Dwarf', 2: 'Elf', 3: 'Halfing'}
    if n in races:
        print '(name) the %s' % races[n]
    else:
        print 'wrong input'
于 2013-07-10T02:32:01.573 に答える