0

このようなばかげた単純な質問をしなければならないことを非常に残念に思いますが、しばらくの間答えを探していました。私はばかのように感じますが、これを機能させることができないようです.

それぞれがユーザーによって定義された 10 個の変数を含む配列を作成し、それらをすべて一緒に追加するオプションを使用したいだけです。ただし、最初の部分を正しく取得することさえできません。これまでの私のコードは次のとおりです。

def makeArray():
    a = [0,1,2,3,4,5,6,7,8,9]
    a[0] = input("Please input 1st number: \n")
    a[1] = input("Please input 2nd number: \n")
    a[2] = input("Please input 3rd number: \n")
    a[3] = input("Please input 4th number: \n")
    a[4] = input("Please input 5th number: \n")
    a[5] = input("Please input 6th number: \n")
    a[6] = input("Please input 7th number: \n")
    a[7] = input("Please input 8th number: \n")
    a[8] = input("Please input 9th number: \n")
    a[9] = input("Please input 10th number: \n")
def main():
    makeArray()
    print(a[2])
main()

10 個の値を入力した後に実行すると、「グローバル名 'a' が定義されていません」というメッセージが表示されます。誰でも私を助けてもらえますか?

4

3 に答える 3

2

次のように、配列を返す必要があります。

def makeArray():
    a = []
    for x in xrange(10):
        a.append(input("Please input the %d number: " % x))
    return a

def main():
    my_array = makeArray()
    print(my_array[2])
main()
于 2013-10-13T22:37:39.330 に答える
1

これは、同じエラーを含むコードの小さいバージョンです。

def makeList():
    a=[0,1,2]

def main():
    makeList()
    print a[1]

main() 

次のように修正できます。

def makeList():
    a=[0,1,2]
    return a

def main():
    a=makeList()
    print a[1]

main() 

ところで -- 特に配列モジュールまたは numpy を使用して配列を作成しない限り、「配列」は Python では「リスト」と呼ばれます...

于 2013-10-13T22:37:07.850 に答える
1

あなたは2つのaを持っています。スコープの 1 つは makeArray にあり、もう 1 つはメインにあります。

主に:

a = list ()
makeArray (a)

物事がうまく機能するはずです。(makeArray で初期化を削除します。) プログラム内の配列の要素はすべて文字列になることに注意してください。

于 2013-10-13T21:59:51.610 に答える