2017-10-04 4 views
-1

Die Funktion dieses Programms besteht darin, nach dem Zufallsprinzip Zahlen von 1-10 für die Variablen right, left, up, down zu generieren, die in einem 40x40-Graphen verwendet werden. um eine Liste mit 2 Zahlen für die x- und y-Variablen zu haben, habe ich eine anderen Zufallszahlengenerator, dieZufälliges Generieren von Ganzzahlen für die Verwendung in einem Graphen

import random 
choice_x = random.randint(0, 1) 
choice_y = random.randint(0, 1) 
right = random.randint(10, 20) 
left = random.randint(0, 10) 
up = left = random.randint(0, 10) 
down = left = random.randint(10, 20) 
directions = [right, left, up, down] 

if choice_x == 0: 
    del directions[right] 
elif choice_x == 1: 
    del directions[left] 

if choice_y == 0: 
    del directions[up] 
elif choice_y == 1: 
del directions[down] 
print (directions) 

gewählt werden nimmt, wenn ich versuche, diesen Code auszuführen, halte ich eine Nachricht bekommen Angabe " IndexError: Listenzuweisungsindex außerhalb des Bereichs "

+0

Was sind Sie mit 'del Richtungen zu tun versuchen [rechts]'? –

+0

Sie verwenden die Indizes falsch. "hoch, runter, links, rechts" sind Werte mit Werten größer als "len (Richtungen)". Zum Beispiel bedeutet 'down = randint (10, 20)', dass 'down' len (directions) 'seit' len (directions) '4 ist und 'down> = 10'. –

Antwort

1

Sieht so aus, als ob Ihr Fehler in den if-Anweisungen enthalten ist. Sie indexieren die directions Liste nicht - Sie versuchen, eine Variable zu indizieren (right, left, up, down), daher der Fehler.

Versuchen Sie folgendes:

if choice_x == 0: del directions[0] 
elif choice_x == 1: del directions[1] 

if choice_y == 0: del directions[2] 
elif choice_y == 1: del directions[3] 
Verwandte Themen