السلام عليكم ورحمة الله وبركاته اليك هذا المشروع الصغير وهو عبارة عن مؤقت يطلب من المستخدم ان يدخل عدد الدقائق التي سيبدا منها العد التنازلي بحيث لا تتجاوز الارقام 60 ليكون مؤقت دقائق وليس ساعات ثم يبدا المؤقت بالعد التنازلي الى ان ينتهي ثم يكتب رسالة بان الوقت انتهى
اليك الكود لتجربته
الكود الذي قمت بمشاركته هو مثال جيد على كيفية إنشاء مؤقت عد تنازلي باستخدام لغة بايثون. الكود سهل الفهم ويستخدم الدوال الأساسية في مكتبة time لإجراء العد التنازلي. دعني أوضح الكود وأقدم بعض الاقتراحات البسيطة لتحسينه.
شرح الكود:
استيراد المكتبات:
time: تستخدم لإجراء توقف زمني بين كل ثانية أثناء العد التنازلي.
os: تستخدم لتحديد أمر مسح الشاشة بناءً على نظام التشغيل (إما cls لنظام Windows أو clear للأنظمة الأخرى).
دالة clear():
هذه الدالة تستخدم لمسح الشاشة في كل مرة يتم فيها تحديث المؤقت. هذا يساعد على إبقاء العد التنازلي نظيفًا ويظهر كأن المؤقت متحرك.
طلب إدخال المستخدم:
البرنامج يطلب من المستخدم إدخال عدد الدقائق التي يريدها للعد التنازلي (من 1 إلى 60 دقيقة).
يتحقق البرنامج من صحة الإدخال للتأكد من أنه رقم بين 1 و 60. إذا كان الإدخال غير صالح، يطلب من المستخدم المحاولة مرة أخرى.
العد التنازلي:
يتم العد التنازلي من عدد الدقائق المدخل وثانية واحدة، ويتم عرض المؤقت بشكل منظم، مثل 05:09.
عند انتهاء العد، يظهر رسالة تفيد بانتهاء الوقت.
تحسينات ممكنة:
التحقق من الإدخال بطريقة أكثر أمانًا:
يمكن تحسين التحقق من الإدخال باستخدام try و except للتأكد من عدم حدوث أي خطأ عند تحويل الإدخال إلى رقم.
إضافة وظيفة إعادة تشغيل المؤقت:
بعد انتهاء العد التنازلي، يمكن إضافة خيار للمستخدم لإعادة تشغيل المؤقت أو الخروج.
تحسين تجربة المستخدم:
يمكن تحسين الرسائل والواجهة ليكون أكثر جاذبية للمستخدم، مثل إضافة صوت عند انتهاء المؤقت.
الكود مع التحسينات:
import time
import os
def clear():
os.system("cls" if os.name == "nt" else "clear")
def timer(minutes):
minutes -= 1
seconds = 59
while True:
clear()
if seconds < 10:
print(f"Timer minutes:\n {minutes}:0{seconds}")
else:
print(f"Timer minutes:\n {minutes}:{seconds}")
time.sleep(1)
seconds -= 1
if seconds < 0 and minutes == 0:
break
elif seconds < 0:
minutes -= 1
seconds = 59
print("The timer has ended!")
while True:
clear()
minutes = input("Enter timer minutes from 1 to 60: ")
if minutes.isdigit() and 1 <= int(minutes) <= 60:
minutes = int(minutes)
timer(minutes)
break
else:
print("Invalid input! Please enter a number between 1 and 60.")
time.sleep(2)
ملخص:
الكود يعمل بشكل جيد ومباشر لإنشاء مؤقت عد تنازلي باستخدام لغة بايثون. مع بعض التحسينات البسيطة، يمكنك جعل التجربة أكثر متعة وأمانًا للمستخدمين.
إذا كانت لديك أي أسئلة إضافية أو ترغب في اقتراحات أخرى، فلا تتردد في طرحها. نحن هنا لدعمك!
ماشاء الله علي الفائدة والمعلومات المفيدة بارك الله فيك
ماذا يقصد بهذا السطر
يمكن تحسين التحقق من الإدخال باستخدام try و except للتأكد من عدم حدوث أي خطأ عند تحويل الإدخال إلى رقم
اولا اشكرك عندي اقتراح ممكن بدل متعطيني طريقة حل الكود تعطينى فقط إلا راح يطلع في console هكذا يمكننا أيضا المحاولة في حل تحاظي يعني مثل مابيعل استاذ ابراهيم وشكرا
في البرمجة، عندما تطلب من المستخدم إدخال معلومات، قد تكون هذه المعلومات غير صحيحة أو غير متوقعة. على سبيل المثال، إذا طلبت من المستخدم إدخال رقم ولكن المستخدم أدخل نصًا غير رقمي، فسيحدث خطأ عندما تحاول تحويل هذا النص إلى رقم.
لحل هذه المشكلة وضمان عدم توقف البرنامج بسبب الأخطاء، يمكنك استخدام مفهوم “المحاولة والقبض” (try and except) في لغات برمجة مثل بايثون.
إليك كيف يعمل ذلك بشكل مبسط:
الـ try: في هذا القسم، تضع الكود الذي قد يحدث فيه خطأ. هذا هو المكان الذي تحاول فيه تحويل الإدخال إلى رقم.
الـ except: في هذا القسم، تضع الكود الذي يجب أن ينفذ إذا حدث خطأ في الجزء السابق. هذا هو المكان الذي تتعامل فيه مع الخطأ وتقدم رسالة مناسبة للمستخدم.
مثال بسيط في بايثون:
try:
number = int(input("أدخل رقمًا: ")) # نحاول تحويل الإدخال إلى رقم
print("الرقم الذي أدخلته هو:", number)
except ValueError: # إذا حدث خطأ في التحويل
print("الرجاء إدخال قيمة عددية صحيحة.")
في هذا المثال:
إذا أدخل المستخدم قيمة يمكن تحويلها إلى رقم صحيح، سيتم طباعة الرقم.
إذا أدخل المستخدم شيئًا لا يمكن تحويله إلى رقم، سيحدث خطأ من نوع ValueError، وسيتولى الكود في قسم except التعامل مع هذا الخطأ ويظهر رسالة مناسبة.
باستخدام try و except، يمكنك تحسين استقرار البرنامج والتأكد من أنه يتعامل بشكل جيد مع الأخطاء المحتملة.
بالطبع! سأوضح الفرق بين استخدام try و except من جهة وif و else من جهة أخرى في البرمجة، خاصة في بايثون.
try و except
ما هو؟
try و except هي طرق لمعالجة الأخطاء في البرمجة.
تستخدم try لتحديد الكود الذي قد يتسبب في حدوث خطأ.
تستخدم except لمعالجة الأخطاء التي تحدث في الكود الذي تحت try.
كيف تعمل؟
try: تضع فيه الكود الذي قد يحدث فيه خطأ، مثل محاولة تحويل نص إلى عدد صحيح.
except: تضع فيه الكود الذي يجب تنفيذه إذا حدث خطأ في الكود داخل try.
مثال:
try:
number = int(input("Enter a number: ")) # نحاول تحويل الإدخال إلى عدد صحيح
print("The number is", number)
except ValueError:
print("Invalid input! Please enter a valid number.")
في هذا المثال:
إذا أدخل المستخدم قيمة غير عددية، يحدث خطأ من نوع ValueError، ويتم التعامل معه داخل قسم except.
if و else
ما هو؟
if و else هي طرق للتحكم في تدفق البرنامج بناءً على شروط معينة.
if: تنفذ الكود داخلها إذا كانت الشرط صحيحًا.
else: تنفذ الكود داخلها إذا كان الشرط في if غير صحيح.
كيف تعمل؟
if: تتحقق مما إذا كانت شرط معين صحيحًا، وإذا كان كذلك، تنفذ الكود الذي يتبعها.
else: تنفذ الكود في حال عدم تحقق شرط if.
مثال:
number = input("Enter a number: ")
if number.isdigit(): # نتحقق مما إذا كان الإدخال رقمًا
number = int(number)
print("The number is", number)
else:
print("Invalid input! Please enter a valid number.")
في هذا المثال:
نتحقق مما إذا كان الإدخال رقميًا باستخدام isdigit().
إذا كان الإدخال رقميًا، نحوله إلى عدد صحيح ونطبعه.
إذا لم يكن الإدخال رقميًا، نعرض رسالة خطأ.
الفرق بين try و except و if و else:
نوع الأخطاء:
try و except: تتعامل مع الأخطاء البرمجية التي تحدث أثناء تنفيذ الكود، مثل محاولة تحويل نص غير رقمي إلى عدد.
if و else: تتحقق من شروط محددة وتنفذ كودًا بناءً على هذه الشروط، ولكنها لا تعالج الأخطاء الفعلية التي قد تحدث في الكود.
التحقق من الأخطاء:
try و except: أكثر فاعلية عند التعامل مع أخطاء قد تحدث بسبب مشاكل غير متوقعة أو إدخال غير صحيح، لأنك لا تعرف دائمًا متى يحدث الخطأ.
if و else: تستخدم للتحقق من شروط محددة مسبقًا ويمكن أن تكون محدودة في معالجة الأخطاء التي يمكن توقعها.
استخدامهما معًا:
يمكن استخدام if و else للتحقق من شروط معينة قبل محاولة تنفيذ الكود الذي قد يسبب خطأ.
يمكن استخدام try و except للتعامل مع الأخطاء التي قد تحدث حتى بعد التحقق من الشروط.
متى تستخدم كل منهما؟
استخدم try و except عندما تتعامل مع كود يمكن أن يسبب أخطاء غير متوقعة أو غير مؤكدة.
استخدم if و else للتحقق من الشروط المعروفة مسبقًا واتخاذ القرارات بناءً على هذه الشروط.
إذا كنت تحتاج إلى معالجة الأخطاء التي لا يمكنك التنبؤ بها، فإن try و except هو الخيار الأفضل. أما إذا كنت تحتاج إلى التحقق من قيم أو شروط معروفة، فإن if و else يكون كافيًا.
أرجو أن يكون هذا واضحًا! إذا كان لديك أي استفسارات أخرى، لا تتردد في طرحها.