6 svar
134 visningar
Qetsiyah är nöjd med hjälpen
Qetsiyah 6503 – Livehjälpare
Postad: 5 apr 2022 18:29

Gör att ett program slutar köra när den får en fel input

Jag vill göra något liknande:

if type(newelement) != type("sträng"):
	print("Kan bara hantera strängar, du gav en", type(newelement))
	break
Laguna Online 28615
Postad: 5 apr 2022 21:00

Tjaha, var kommer newelement ifrån och vilken typ har den?

Om du har läst in den med 'input' så är den alltid en sträng.

Qetsiyah 6503 – Livehjälpare
Postad: 5 apr 2022 23:50

Det har jag inte tänkt på men min fråga var hur man får programmet att stanna?

Laguna Online 28615
Postad: 6 apr 2022 09:27 Redigerad: 6 apr 2022 09:28

Du kan använda exit(0), så avslutas programmet direkt.

Annars avslutas programmet om det når slutet på koden, så om du gör break ut ur alla loopar och låter anropade funktioner returnera så avslutas det.

Om du vill meddela till användaren att ett fel har uppstått, så är en annan statuskod än 0 bra, t.ex.exit(1).

 

Qetsiyah 6503 – Livehjälpare
Postad: 6 apr 2022 11:10 Redigerad: 6 apr 2022 11:18

Okej!

Jag kom på nåt annat, skulle lösningen assert 1==2 anses vara bad practice/osmart lösning?

Laguna Online 28615
Postad: 6 apr 2022 16:05

Ja, verkligen.

Om du någonstans i programmet t.ex. har en variabel som borde ha en viss typ eller en lista som inte borde vara tom, men vill ta hand om fallet att det finns ett fel någon annanstans i programmet och sluta exekvera innan det blir allt konstigare konsekvenser, så kan du använda assert där. 

Qetsiyah 6503 – Livehjälpare
Postad: 6 apr 2022 23:34

Hmm... ja ok!

Svara Avbryt
Close