-2

だから私は基本的にこれを3回ループさせたいm. では、なぜこれが範囲外なのですか?

Python の正確なエラー リターン:

choices[r]=p.nextInt()
IndexError: list assignment index out of range

p.next独自のモジュールがあるため、uni でこのように記述する必要があるため、無視してください。

これが私のコードです

cities=["Coventry", "Birmingham", "Wolverhampton", "Leicester"]
distances=[
    [0,25,33,24],
    [25,0,17,42],
    [33,17,0,54],
    [24,42,54,0]]

def distancesthree():
    choices=[0,1,2] 
    for m in range(3): #This will loop three times!
        for r in range(len(cities)):
            p.write ("%d : %s\n" %(r, cities[r]))
        p.write("\nEnter city number %d: \n"%(m+1))
        choices[r]=p.nextInt()
4

3 に答える 3

2

間違った変数を使用した可能性はありますか?mの代わりに書きたかったのrでしょうか?

choices[m]=p.nextInt()
于 2013-08-06T10:21:58.517 に答える
1

それは、どこでも一文字の名前を使用するとどうなるかです...
r最後の行でm

ただし、コードを編集して、どのように記述すべきかを示しました。

cities = ("Coventry", "Birmingham", "Wolverhampton", "Leicester")
distances = [
    [0, 25, 33, 24],
    [25, 0, 17, 42],
    [33, 17, 0, 54],
    [24, 42, 54, 0],
]

def chooseDistances():
    choices = [0, 1, 2] 
    for choiceIndex in range(3):
        for cityIndex, cityName in enumerate(cities):
            p.write("%d : %s\n"%(cityIndex, cityName))
        p.write("\nEnter city number %d: \n"%(step+1))
        choices[choiceIndex] = p.nextInt()

次に、選択肢にcityIndexを使用したり、都市にchoiceIndexを使用したりしません...

于 2013-08-06T10:33:14.633 に答える