입력값 검증
Coddy GDScript 여정의 논리와 흐름 섹션에 포함된 레슨. 78개 중 67번째.
입력은 텍스트로 들어오며, int()는 불평 없이 어떤 텍스트든 변환합니다. 텍스트가 정수가 아닐 때는 오류 대신 잘못된 값을 얻게 됩니다:
print(int("abc")) # 0
print(int("12abc")) # 12
print(int("3.14")) # 3변환하기 전에 텍스트를 확인하세요. is_valid_int()는 전체 텍스트가 정수일 때 true를 반환합니다:
print("42".is_valid_int()) # 참
print("-15".is_valid_int()) # 참
print("3.14".is_valid_int()) # 거짓
print("abc".is_valid_int()) # 거짓
print("".is_valid_int()) # 거짓is_valid_float()는 소수에 대해 같은 일을 합니다. 정수도 유효한 float이므로 정수도 허용합니다:
print("3.14".is_valid_float()) # true
print("5".is_valid_float()) # true
print("five".is_valid_float()) # false공백도 문자로 계산됩니다: " 99 ".is_valid_int()는 false입니다. 입력값의 앞뒤에 공백이 있을 수 있다면 먼저 strip_edges()를 호출하세요.
유효한 숫자라도 잘못된 값일 수 있습니다. 변환한 후 프로그램에서 허용하는 범위에 있는지 확인하세요.
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)챌린지
쉬움프로그램은 입력 한 줄을 읽습니다. 변환하기 전에 확인하세요:
- 정수이면
You entered:뒤에 숫자를 출력합니다 - 그렇지 않으면
Invalid input! Please enter a valid number.을 출력합니다
입력값이 42이면 출력은 다음과 같습니다:
You entered: 42입력값이 abc와 3.14이면 출력은 다음과 같습니다:
Invalid input! Please enter a valid number.텍스트가 아니라 변환된 숫자를 출력하세요. 입력값이 007이면 출력은 You entered: 7입니다.
직접 해보기
extends Node
func _ready():
var user_input := OS.read_string_from_stdin()
# 입력을 확인한 다음 숫자 또는 오류 메시지를 출력합니다
pass
이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.
논리와 흐름의 모든 레슨
직접 연습해 보세요: 온라인 GDScript 컴파일러