79 votes

Conversion de String en Int en utilisant try/except en Python

Je suis donc assez perplexe sur la façon de convertir une chaîne en un int en utilisant la fonction try/except. Est-ce que quelqu'un connaît une fonction simple sur la façon de faire cela? J'ai l'impression d'être encore un peu floue sur les cordes et les ints. Je suis assez confiant que les ints sont liés aux nombres. Les cordes... pas tellement.

122voto

Nathan Jones Points 626

Il est important d'être précis sur l'exception que vous essayez d'attraper lorsque vous utilisez un bloc try/except.

 string = "abcd"
try:
    string_int = int(string)
    print(string_int)
except ValueError:
    # Handle the exception
    print('Please enter an integer')

Try/Excepts est puissant car si quelque chose peut échouer de différentes manières, vous pouvez spécifier comment vous voulez que le programme réagisse dans chaque cas d'échec.

25voto

gecco Points 4063

C'est ici:

 s = "123"
try:
  i = int(s)
except ValueError as verr:
  pass # do job to handle: s does not contain anything convertible to int
except Exception as ex:
  pass # do job to handle: Exception occurred while converting to int

3voto

arsho Points 2995

Dans de nombreux cas, nous voulons obtenir une valeur entière de l'utilisateur. Les utilisateurs peuvent insérer des valeurs non entières qui doivent être averties et ils doivent être invités à réessayer. L'extrait suivant peut être utilisé pour obtenir une valeur entière de l'utilisateur et continuer à inviter l'utilisateur à insérer un entier jusqu'à ce qu'il en place un valide.

 def get_integer_value():
  user_value = input("Enter an integer: ")
  try:
    return int(user_value)
  except ValueError:
    print(f"{user_value} is not a valid integer. Please try again.")
    return get_integer_value()


if __name__ == "__main__":
  print(f"You have inserted: {get_integer_value()}")
    

Sortir:

 Enter an integer: asd
asd is not a valid integer. Please try again.
Enter an integer: 32
You have inserted: 32

1voto

soufiane yes Points 49

Tu peux faire :

 try : 
   string_integer = int(string)
except ValueError  :
   print("This string doesn't contain an integer")

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X