Valider les entrées
Fait partie de la section Logique et flux d’exécution du Journey GDScript de Coddy. Leçon 67 sur 78.
L’entrée arrive sous forme de texte, et int() convertit n’importe quel texte sans se plaindre. Lorsque le texte n’est pas un nombre entier, tu obtiens une valeur incorrecte au lieu d’une erreur :
print(int("abc")) # 0
print(int("12abc")) # 12
print(int("3.14")) # 3Vérifie donc le texte avant de le convertir. is_valid_int() renvoie true lorsque le texte entier est un nombre entier :
print("42".is_valid_int()) # vrai
print("-15".is_valid_int()) # vrai
print("3.14".is_valid_int()) # faux
print("abc".is_valid_int()) # faux
print("".is_valid_int()) # fauxis_valid_float() fait la même chose pour les nombres décimaux. Il accepte également les nombres entiers, car 5 est un float valide :
print("3.14".is_valid_float()) # vrai
print("5".is_valid_float()) # vrai
print("five".is_valid_float()) # fauxLes espaces comptent comme des caractères : " 99 ".is_valid_int() est false. Appelez strip_edges() d’abord si l’entrée peut contenir des espaces autour.
Un nombre valide peut quand même être une valeur incorrecte. Après la conversion, vérifie qu’il se trouve dans la plage autorisée par ton programme :
var text := OS.read_string_from_stdin()
if not text.is_valid_int():
print("Please enter a whole number")
else:
var age := int(text)
if age < 0 or age > 120:
print("Age must be between 0 and 120")
else:
print("Age: ", age)Défi
FacileLe programme lit une ligne d’entrée. Vérifie-la avant de la convertir :
- S’il s’agit d’un nombre entier, affiche
You entered:suivi du nombre - Sinon, affiche
Invalid input! Please enter a valid number.
Pour l’entrée 42, la sortie est :
You entered: 42Pour les entrées abc et 3.14, la sortie est :
Invalid input! Please enter a valid number.Affiche le nombre converti, pas le texte : pour l’entrée 007, la sortie est You entered: 7.
Essayez vous-même
extends Node
func _ready():
var user_input := OS.read_string_from_stdin()
# Vérifiez la saisie, puis affichez le nombre ou le message d'erreur
pass
Cette leçon comprend un petit quiz. Commencez la leçon pour y répondre et suivre votre progression.
Toutes les leçons de Logique et flux d’exécution
1Les chaînes de caractères en profondeur
Méthodes des chaînesRechercher dans les chaînesRemplacer et supprimer les espacesDécouper et joindreRécapitulatif - Vérifier un nom d’utilisateur4Dictionnaires, partie 2
Dictionnaires imbriquésTableaux de dictionnairesFusionner des dictionnairesCopier des dictionnairesRécapitulatif - Compteur de fréquence7Énumérations
Qu’est-ce qu’une énumération ?Définir une énumérationValeurs d’une énumérationÉnumérations avec matchRécapitulatif - Feu de circulation10Fonctions avancées
Renvoyer plusieurs valeursFonctions lambda, partie 1Fonctions lambda, partie 2Récapitulatif - Tri avec lambdaFonctions récursives, partie 1Fonctions récursives, partie 2Récapitulatif - Somme d’un tableau imbriqué13Système de gestion des stocks
Présentation du projetAjouter un article2Prise de décision avancée
Correspondance avec des variablesGardes de correspondanceMotifs de tableauMotifs de dictionnaireVérifications d’appartenanceRécapitulatif – Analyseur de commandes5Application de carnet d’adresses
Afficher le menuAjouter un contact8Gestionnaire des dossiers étudiants
Aperçu du projetAjouter un étudiant3Tableaux multidimensionnels
Bases des tableaux 2DAccéder aux éléments d’un tableau 2DBoucles imbriquées avec des tableaux 2DRécapitulatif - Tableaux 2DTableaux irréguliersMotifs courants des tableaux 2DRécapitulatif - Plateau de jeu6Les ensembles avec les dictionnaires
Qu’est-ce qu’un ensemble ?Un dictionnaire comme ensembleAjouter et supprimerUnion et intersectionDifférence d’ensemblesRécapitulatif – Supprimer les doublons9Agrégation avancée de données
Additionner des valeursTrouver le minimum et le maximumTri personnaliséRécapitulatif - Trieur de dictionnaires12Gestion de base des erreurs
Qu’est-ce que la gestion des erreurs ?Valider les entréesClauses de gardeRenvoyer des codes d’erreurRécapitulatif : division sécuriséeEntraînez-vous par vous-même : Compilateur GDScript en ligne