Menu
CoddyTech

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")) # 3

Vé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()) # faux

is_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()) # faux

Les 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)
challenge icon

Défi

Facile

Le 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: 42

Pour 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
quiz iconTestez-vous

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

Entraînez-vous par vous-même : Compilateur GDScript en ligne