أكواد بايثون - python codes
819 subscribers
61 photos
4 files
5 links
Download Telegram
المتغيرات وأنواع البيانات (Variables & Data Types)
في البرمجة، المتغير (Variable) هو عبارة عن "صندوق" أو مخزن في ذاكرة الكمبيوتر، نعطيه اسماً ونحفظ داخله قيمة معينة لنستخدمها أو نعدلها لاحقاً.

في بايثون، عندما نضع نصاً، يجب أن يكون بين علامات تنصيص "..." أو '...' ليعرف الكمبيوتر أنه نص عادي وليس أمراً برمجياً. أما الأرقام فنكتبها كما هي.

إليك أهم 3 أنواع بيانات ستحتاجها دائماً في بناء الواجهات الخلفية (Back-end):

1- النصوص (String / str): مثل الأسماء، العناوين، أو الرسائل.
2- الأعداد الصحيحة (Integer / int): أرقام بدون فاصلة عشرية (مثل العدادات، المعرفات IDs).
3- الأعداد العشرية (Float / float): أرقام بفاصلة عشرية (مثل الأسعار، المقاسات، أو النسب).

تطبيق عملي: كتابة الكود الأول
قم بفتح ملفك في PyCharm، :
python
# 1. تعريف المتغيرات وتخزين البيانات
item_name = "مخرطة حديد CNC" # نص (String)
quantity = 3 # عدد صحيح (Integer)
unit_price = 1450.50 # عدد عشري (Float)

# 2. حساب الإجمالي (عملية حسابية بسيطة)
total_cost = quantity * unit_price

# 3. طباعة النتائج في الـ Console
print("--- تفاصيل الطلبية ---")
print("المادة:", item_name)
print("الكمية المطلوب توريدها:", quantity)
print("إجمالي التكلفة بالدولار:", total_cost)

ملاحظة: الرمز # يُستخدم لكتابة "التعليقات" (Comments). أي سطر يبدأ بـ # يتجاهله الكمبيوتر تماماً ولا يشغله، وهو مخصص فقط لك لكي تكتب ملاحظات تشرح كودك لنفسك أو للمبرمجين الآخرين.
استقبال مدخلات المستخدم (User Input)
في بايثون، نستخدم دالة تُدعى input() لاستقبال البيانات من لوحة المفاتيح.

لكن هناك قاعدة مهمة جداً في بايثون: أي شيء يدخل عبر input() يعامله الكمبيوتر كنص (String) تلقائياً.
إذا أردنا إجراء عمليات حسابية على المدخلات (مثل الضرب أو الجمع)، يجب أن نُخبر بايثون بتحويل هذا النص إلى رقم باستخدام int() للأعداد الصحيحة، أو float() للأعداد العشرية. هذا المفهوم يسمى تحويل أنواع البيانات (Type Casting).

تطبيق عملي: تحديث البرنامج ليكون تفاعلياً:
# استقبال اسم الآلة كنص عادي
machine_type = input("أدخل نوع الآلة المطلوبة: ")

# استقبال الكمية وتحويلها فوراً إلى عدد صحيح (Integer)
input_qty = input("أدخل الكمية المطلوبة: ")
quantity = int(input_qty)

# استقبال السعر وتحويله إلى عدد عشري (Float)
input_price = input("أدخل سعر القطعة الواحدة: ")
price = float(input_price)

# حساب الإجمالي
total = quantity * price

# طباعة الفاتورة النهائية
print("\n--- فاتورة العرض الافتراضي ---")
print("المنتج:", machine_type)
print("الكمية المعتمدة:", quantity)
print("إجمالي القيمة:", total)
1
اتخاذ القرارات - الجمل الشرطية (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