J'essaie de faire sortir mon code en appuyant sur le bouton Entrée et je rencontre un ValueError: invalid literal pour int () avec base 10: ``, mais cela me dit que mon erreur est sur la ligne ...

1
Mr. Oddicus 17 mars 2021 à 01:39

4 réponses

Meilleure réponse

Vous devez raise SystemExit(), ou simplement utiliser sys.exit() (qui fait la même chose).

2
SuperStormer 16 mars 2021 à 22:42

Pour adresser votre code:

Tout d'abord, vous devez ajouter le mot-clé "rise" en face de SystemExit pour qu'il fonctionne correctement. Deuxièmement, pour créer une situation dans laquelle vous devez appuyer sur Entrée pour que le programme se termine, vous pouvez utiliser input ().

Version corrigée:

simulations = input("How many times would you like to run the simulation? ")

# Invalid answer, system exit
if (not simulations) or int(simulations) <= 0:
    print("That is not a valid number of simulations.")
    print("Shutting down.")
    input("Press Enter to exit...")
    raise SystemExit("Exiting... Reason: invalid input!")

simulations_num = int(simulations)
# the rest of my code comes here
0
NameKhan72 16 mars 2021 à 23:00

input() renvoie une chaîne. Si vous appuyez sur Entrée, il renvoie une chaîne vide (''). Vous ne pouvez pas convertir une chaîne vide en entier, d'où l'erreur.

Edit: Vous pourriez envisager try ... except ici:

simulations = input("How many times would you like to run the simulation? ")

try: 
   simulations_num = int(simulations)
except: 
   print("That is not a valid number of simulations.")
   print("Shutting down.")
   raise SystemExit()
0
DJK 16 mars 2021 à 22:55

Vous devez générer une erreur, ou au moins utiliser sys.exit(0). Le principe de fonctionnement est le suivant:

import sys
if not input(': ').lower() in ['yes','y','1']:
    sys.exit(0)

Appliqué à votre exemple serait ceci

simulations = input("How many times would you like to run the simulation? ")

import sys

# Invalid answer, system exit
if (not simulations) or int(simulations) <=0:    
   print("That is not a valid number of simulations.")
   print("Shutting down.")
   sys.exit(0)

simulations_num = int(simulations)
#the rest of my code comes here

raise RuntimeError() serait également bien

0
Giuppox 16 mars 2021 à 22:52