السلام عليكم ورحمة الله وبركاته عندي عادل علمنا المثد isdigit وهي تحقق من أن الرقم رقم صحيح طيب مين فيكم يقدر يعمل وظيفة تتحقق من الرقم العشري؟؟؟
وعليكم السلام ورحمة الله وبركاته!
يمكنك إنشاء دالة للتحقق من ما إذا كانت السلسلة النصية (string
) تمثل رقمًا عشريًا (عددًا يحتوي على جزء صحيح وجزء عشري) باستخدام الطريقة التالية:
إنشاء دالة للتحقق من الرقم العشري
def is_decimal(number_str):
# محاولة تحويل السلسلة النصية إلى عدد عشري (float)
try:
float(number_str)
except ValueError:
# إذا حدث خطأ في التحويل فهذا يعني أن الرقم غير عشري
return False
# التحقق مما إذا كانت السلسلة النصية تحتوي على نقطة عشرية
return '.' in number_str
# أمثلة لاختبار الدالة
print(is_decimal("123.456")) # True
print(is_decimal("789")) # False
print(is_decimal("abc.123")) # False
print(is_decimal("12.34.56")) # False
شرح الدالة:
-
تحويل السلسلة النصية: الدالة تحاول تحويل السلسلة النصية إلى عدد عشري باستخدام
float()
:- إذا نجح التحويل بدون أخطاء، نستمر للتحقق من وجود النقطة العشرية.
- إذا حدث خطأ (مثلًا عند إدخال نص غير رقمي)، فإن
ValueError
سيتم رفعه وتقوم الدالة بإرجاعFalse
.
-
التحقق من وجود نقطة عشرية: حتى بعد نجاح التحويل إلى
float
، نتحقق مما إذا كانت السلسلة النصية تحتوي على نقطة عشرية (.
). إذا كان الجواب نعم، فالسلسلة تعتبر رقمًا عشريًا. -
أمثلة اختبار:
"123.456"
: يعتبر رقمًا عشريًا صحيحًا."789"
: ليس رقمًا عشريًا لأن لا يحتوي على نقطة عشرية."abc.123"
و"12.34.56"
: لا تعتبر أرقامًا عشرية بسبب وجود حروف أو نقاط عشرية متعددة.
ملاحظات:
- هذه الدالة تتعامل فقط مع الأرقام العشرية الصحيحة، فإذا كان هناك نص أو تنسيق غير صحيح سيتم إرجاع
False
.
إذا كان لديك أي تعديلات أو تساؤلات إضافية، فأنا هنا للمساعدة!
زادك الله علما إخي أنا عندي طريقة ثانية للتحدي هذا بس في البرمجة دائما في مائة طريقة أنا سمعت
try من قبل بس ما أستخدمتها فلو توضحها أكون لك شاكر
بارك الله فيك وزادك علمًا كذلك!
صحيح تمامًا، في البرمجة دائمًا توجد طرق متعددة لحل نفس المشكلة. من الأدوات المفيدة جدًا في بايثون هي استخدام الكلمة المحجوزة try
، والتي تُستخدم لمعالجة الأخطاء بطريقة مخصصة. دعني أوضح لك كيف تعمل try
وكيف يمكنك استخدامها في حالات مختلفة.
ما هي try
و except
؟
في بايثون، try
و except
تُستخدمان للتعامل مع الأخطاء أو الاستثناءات (exceptions) التي قد تحدث أثناء تشغيل الكود. الفكرة الأساسية هي محاولة تنفيذ جزء من الكود باستخدام try
، وإذا حدث خطأ (استثناء)، يتم التقاطه ومعالجته داخل جزء except
.
مثال بسيط
إليك مثالًا بسيطًا يوضح كيف تعمل try
و except
:
try:
# محاولة تنفيذ هذا الكود
number = int(input("أدخل رقمًا: "))
result = 100 / number
print(f"النتيجة هي: {result}")
except ZeroDivisionError:
# سيتم تنفيذ هذا الجزء إذا حدث خطأ قسمة على صفر
print("لا يمكن القسمة على الصفر!")
except ValueError:
# سيتم تنفيذ هذا الجزء إذا لم يكن المدخل رقمًا صحيحًا
print("من فضلك أدخل رقمًا صحيحًا!")
# سيستمر الكود في العمل بعد معالجة الخطأ
print("البرنامج مستمر في العمل.")
شرح الكود:
-
جزء
try
: في هذا الجزء نحاول تنفيذ الكود الذي قد ينتج عنه خطأ.- نقوم بمحاولة قراءة رقم من المستخدم باستخدام
input
، وتحويله إلى عدد صحيح باستخدامint()
. - ثم نحاول تقسيم الرقم 100 على الرقم المدخل.
- نقوم بمحاولة قراءة رقم من المستخدم باستخدام
-
جزء
except
: إذا حدث أي استثناء أثناء تنفيذ الكود في جزءtry
:- إذا حدث خطأ
ZeroDivisionError
(عند محاولة القسمة على صفر)، يتم تنفيذ الكود داخلexcept ZeroDivisionError
. - إذا حدث خطأ
ValueError
(عندما يقوم المستخدم بإدخال شيء غير رقمي)، يتم تنفيذ الكود داخلexcept ValueError
.
- إذا حدث خطأ
-
الاستمرار بعد
except
: بعد معالجة الخطأ، سيستمر الكود في العمل ولن يتوقف البرنامج بشكل مفاجئ.
متى تستخدم try
و except
؟
تُستخدم try
و except
عندما تتوقع أن يحدث خطأ معين أثناء تشغيل الكود وتريد معالجته بطريقة معينة بدلاً من توقف البرنامج. هذا مفيد بشكل خاص في التعامل مع إدخال المستخدم، أو التعامل مع الملفات، أو تنفيذ عمليات قد تكون غير مستقرة.
خلاصة
try
و except
توفر لك المرونة في كتابة كود أكثر استقرارًا وتساعدك على معالجة الأخطاء بشكل مناسب، مما يحسن من تجربة المستخدم ويمنع توقف البرنامج بشكل مفاجئ. إذا كنت تخشى أن يتسبب جزء من الكود في خطأ، ففكر في استخدام try
و except
لحمايته.
واذا لم تفهم من الشرح السابق لا تقلق طبيعي جدا وانا سأقوم بنشر شرح أكثر سهولة وممتع وستجده في هذا المنشور روابط لمراجعة دروس python بشكل سهل وممتع ولتعميق الفهم البرمجي داخل المنتدى