أكواد بايثون - python codes
817 subscribers
61 photos
4 files
5 links
Download Telegram
اتخاذ القرارات - الجمل الشرطية (If Statements)
في تطوير الـ Back-end، ستواجه دائماً مواقف تحتاج فيها لاتخاذ قرار؛ مثل: (إذا كان رمز المرور صحيحاً، اسمح للمستخدم بالدخول، وإلا اظهر له رسالة خطأ).

في بايثون، نستخدم الكلمات المفتاحية التالية لتوجيه البرنامج:

if (إذا): لفحص شرط معين، إذا كان صحيحاً ينفذ الكود التابع له.

elif (أو إذا): اختصار لـ (Else If)، نستخدمها إذا لم يتحقق الشرط الأول وأردنا فحص شرط آخر بديل.

else (والإلا): الخيار الأخير الذي ينفذ إذا فشلت جميع الشروط السابقة.
قاعدة ذهبية في بايثون: المسافات البادئة (Indentation)
بايثون لا تستخدم الأقواس { } لتحديد الكود التابع للشرط مثل بقية اللغات، بل تعتمد كلياً على المسافة البادئة (عادةً 4 مسافات أو ضغطة زر Tab).

عندما تكتب : وتضغط Enter في PyCharm، سيقوم البرنامج بترك مسافة تلقائياً. أي سطر مزاح إلى الداخل يعني أنه جزء من الشرط ولا ينفذ إلا بتحققه.

تطبيق عملي: إضافة نظام خصومات ذكي لشركتك
لنطور كود الفاتورة السابق. نريد من البرنامج أن يفحص إجمالي الفاتورة:
إذا كان الإجمالي أكبر من أو يساوي 5000 دولار، يحصل العميل على خصم 10%.
إذا كان الإجمالي أكبر من أو يساوي 2000 دولار، يحصل على خصم 5%.
غير ذلك، لا يوجد خصم.
# مدخلات البرنامج
total_price = float(input("أدخل إجمالي قيمة الفاتورة الحالية بالدولار: "))

# فحص الشروط وتحديد نسبة الخصم
if total_price >= 5000:
discount_percent = 10
print("تهانينا! العميل يستحق خصم كبار العملاء (10%).")
elif total_price >= 2000:
discount_percent = 5
print("العميل يستحق الخصم القياسي (5%).")
else:
discount_percent = 0
print("المبلغ لا يؤهل للحصول على خصم.")

# حساب القيمة النهائية بعد الخصم
discount_amount = total_price * (discount_percent / 100)
final_price = total_price - discount_amount

# طباعة النتيجة النهائية
print("--- تقرير الحساب النهائي ---")
print("القيمة قبل الخصم:", total_price, "$")
print("قيمة الخصم المقتطع:", discount_amount, "$")
print("المبلغ المطلوب دفعه نهائياً:", final_price, "$")
2
حلقات التكرار (Loops)
في تطوير الـ Back-end، نلجأ كثيراً للتعامل مع مجموعات كبيرة من البيانات؛ مثل: قراءة قائمة تحتوي على 1000 منتج من قاعدة البيانات، أو إرسال بريد إلكتروني لـ 500 مشترك. من غير المنطقي كتابة الكود لكل عنصر بمفرده، وهنا يأتي دور حلقات التكرار (Loops) لتنفيذ نفس الكود عدة مرات تلقائياً وبأسطر معدودة.

في بايثون، لدينا نوعان أساسيان من حلقات التكرار:

1. الحلقة for تكرار بعدد محدد
نستخدم for عندما نعرف مسبقاً عدد المرات التي نريد تكرار الكود فيها، أو عندما نريد المرور على عناصر قائمة معينة.

نستخدم معها غالباً دالة تُدعى range(start, end)، وهي تولد لنا سلسلة من الأرقام تبدأ من الرقم الأول وتنتهي قبل الرقم الأخير بخطوة.

تطبيق عملي في :
اكتب هذا الكود لتجربة تكرار فحص الآلات في خط إنتاج:
# تكرار الكود 5 مرات (من 1 إلى 5)
print("بدء عملية الفحص الدوري للآلات:")

for count in range(1, 6):
print("جاري فحص الآلة رقم:", count)

print("اكتمل فحص جميع الآلات بنجاح.")

2. الحلقة while تكرار بناءً على شرط
نستخدم while عندما لا نعرف كم مرة سيتكرر الكود، ولكننا نريد استمرار التكرار طالما أن هناك شرطاً معيناً لا يزال صحيحاً (True). بمجرد أن يصبح الشرط خاطئاً (False)، تتوقف الحلقة فوراً.

هذا المفهوم هو الأساس الذي تعمل به السيرفرات (تظل تعمل وتنتظر طلبات المستخدمين ولا تتوقف إلا إذا أطفأنا السيرفر).

تطبيق عملي في PyCharm:
لنصنع برنامجاً يطلب كلمة مرور، ولا يسمح للمستخدم بالمرور ويفك القفل إلا إذا كتب الكلمة الصحيحة (مثلاً: 1234):
# تعيين كلمة المرور الصحيحة
correct_password = "1234"

# استقبال المحاولة الأولى من المستخدم
user_input = input("الرجاء إدخال رمز المرور للدخول إلى النظام: ")

# استمرار التكرار طالما أن المدخل غير صحيح
while user_input != correct_password:
print(" رمز المرور خاطئ! تم رفض الدخول.")
# نطلب الإدخال مجدداً داخل الحلقة حتى نمنحه فرصة أخرى، وإلا ستستمر الحلقة للأبد
user_input = input("حاول مرة أخرى: ")

# هذا السطر خارج الحلقة، لن يصل إليه البرنامج إلا إذا كُسر الشرط وأصبح المدخل صحيحاً
print("🔓 تم التحقق بنجاح. مرحباً بك في لوحة التحكم!")
4