Menu
CoddyTech

입력값 검증

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

챌린지

쉬움

프로그램은 입력 한 줄을 읽습니다. 변환하기 전에 확인하세요:

  • 정수이면 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
quiz icon실력 점검

이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.

논리와 흐름의 모든 레슨

직접 연습해 보세요: 온라인 GDScript 컴파일러