Menu
CoddyTech

Convalida dell'input

Fa parte della sezione Logica e flusso del percorso GDScript di Coddy. Lezione 67 di 78.

L’input arriva come testo e int() converte qualsiasi testo senza lamentarsi. Quando il testo non è un numero intero, ottieni un valore errato invece di un errore:

print(int("abc")) # 0
print(int("12abc")) # 12
print(int("3.14")) # 3

Quindi controlla il testo prima di convertirlo. is_valid_int() restituisce true quando l'intero testo è un numero intero:

print("42".is_valid_int()) # true
print("-15".is_valid_int()) # true
print("3.14".is_valid_int()) # false
print("abc".is_valid_int()) # false
print("".is_valid_int()) # false

is_valid_float() fa lo stesso per i numeri decimali. Accetta anche i numeri interi, perché 5 è un float valido:

print("3.14".is_valid_float()) # true
print("5".is_valid_float()) # true
print("five".is_valid_float()) # false

Gli spazi contano come caratteri: " 99 ".is_valid_int() è false. Chiama prima strip_edges() quando l'input può avere spazi intorno.

Un numero valido può comunque essere un valore errato. Dopo la conversione, verifica che rientri nell'intervallo consentito dal tuo programma:

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

Sfida

Facile

Il programma legge una riga di input. Controllala prima di convertirla:

  • Se è un numero intero, stampa You entered: seguito dal numero
  • Altrimenti, stampa Invalid input! Please enter a valid number.

Per l'input 42, l'output è:

You entered: 42

Per gli input abc e 3.14, l'output è:

Invalid input! Please enter a valid number.

Stampa il numero convertito, non il testo: per l'input 007, l'output è You entered: 7.

Provalo tu

extends Node

func _ready():
	var user_input := OS.read_string_from_stdin()

	# Controlla l'input, poi stampa il numero o il messaggio di errore
	pass
quiz iconMettiti alla prova

Questa lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.

Tutte le lezioni di Logica e flusso

Esercitati da solo: Compilatore GDScript online