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.
Réponses
Trop de publicités?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.
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