Menu
CoddyTech
flag Ar iconالعربيةdown icon

التحقق من صحة المدخلات

جزء من قسم المنطق وتدفّق التنفيذ في رحلة GDScript على Coddy. الدرس 67 من 78.

يصل الإدخال على هيئة نص، وتحول 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() بالأمر نفسه للأعداد العشرية. وهي تقبل أيضًا الأعداد الصحيحة، لأن 5 قيمة صالحة من النوع 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 عبر الإنترنت