5 svar
227 visningar
lund 529
Postad: 22 nov 2020 18:59 Redigerad: 22 nov 2020 19:14

Avbryta en loop med "exit"

Hej, jag har programmerat en kod som fungerar precis som den ska bortsett från att jag får ValueError när jag skriver in "exit". Det den egentligen ska göra då är att avbryta loopen, här är koden där jag programmerat in "exit":

Vad är det jag gör för fel?

Edit jag antar att det är för att jag frågar om två element row och col i samma mening. Då detta fungerade när jag delade upp row i en definition och col i en annan.

Laguna Online 30493
Postad: 22 nov 2020 19:20

Koden försöker göra int("exit") och det går inte.

lund 529
Postad: 22 nov 2020 19:24 Redigerad: 22 nov 2020 19:24
Laguna skrev:

Koden försöker göra int("exit") och det går inte.

Tack, hur kan man korrigera detta? Jag testade att ta bort int i den översta raden men gör jag detta fungerar inte funktionen.

Aerius 504 – Fd. Medlem
Postad: 22 nov 2020 19:33

Du kan fånga felmeddelandet som skapas när du skriver "exit". Problemet är programmet förväntar sig input int därför kan det inte ta string just där. Du kan skriva om funktionen så du testar först om användaren skrev "exit" eller två tal. Om det var två int fortsätter du med

row, col = [...]

Tigster 271
Postad: 22 nov 2020 19:38

Enklaste vore väl att titta om användaren matar in antingen negativ rad eller kolumn. :)

jek7 35 – Fd. Medlem
Postad: 22 nov 2020 19:43

Något som ibland kan var användbart är:

myint = int(mystr.isdigit() and mystr)

Då blir myint==0 ifall mystr är något annat än ett tal, istället för att det blir en exception.
Det förutsätter ju dock dels att man normalt bara arbetar med positiva tal, och så får man skriva någon hantering av när myint blir 0.

En anna lösning kan vara att ha en try-except runt första raden, där man hanterar både exit och andra felinmatningar.

Svara
Close