› كل الدروس
الدرس 2 من 12 26 دقيقة

Variables والعمليات

إزاي تخزّن value وتشتغل عليها

الفكرة باختصار

variable صندوق في الذاكرة ليه اسم. بتحط فيه value، وبتناديه باسمه لما تحتاجها.

بعد الدرس ده هتعرف

  • تخزّن values في variables وتغيّرها
  • تفرّق بين data types الأساسية
  • تحسب بالعمليات الحسابية وتعرف ترتيب أولوياتها
  • تحوّل بين types من غير ما يحصل error
1

شوف الفكرة الأول

قبل أي code — افهم بيحصل إيه

2

الشرح

فكرة واحدة في كل خطوة

1

variable = صندوق بإسم

لما تكتب score = 10، إنت بتقول لـ Python: «احجزلي مكان في الذاكرة، سمّيه score، وحط فيه 10».

بعد كده في أي وقت تكتب score Python هتروح تجيب اللي جوّه الصندوق.

علامة = هنا مش «يساوي» بالمعنى الرياضي. دي معناها «حُط». من اليمين للشمال.

Python
1score = 10
2print(score)
الناتج
10
2

value بتتغيّر — الاسم بيفضل

السطر x = x + 1 بيبوظ دماغ ناس كتير في الأول، لأنه رياضيًا مستحيل.

بس في البرمجة هو منطقي جدًا، لأن Python بتعمل كده بالترتيب:

1. تحسب الجزء اللي على اليمين الأول: x + 1
2. تاخد الناتج وتحطه في x

يعني لو x كانت 5، اليمين بيطلع 6، وبعدين الـ6 بتتحط في x. value القديمة بتضيع.

Python
1x = 5
2x = x + 1
3x = x * 2
4print(x)
الناتج
12
3

types الأربعة اللي هتستخدمها طول الوقت

int — رقم صحيح من غير فاصلة. مثال: 7، -3، 1000
float — رقم بفاصلة عشرية. مثال: 3.14، 36.5
str — string، بيتحط بين علامتين تنصيص. مثال: "أحمد"، "IT"
bool — صح أو غلط بس. 2 values: True و False

لو عايز تعرف type أي حاجة، استخدم type().

Python
1print(type(7))
2print(type(3.14))
3print(type("IT"))
4print(type(True))
الناتج
<class 'int'>
<class 'float'>
<class 'str'>
<class 'bool'>
4

العمليات الحسابية

+ جمع · - طرح · * ضرب · / قسمة

وفيه تلاتة مهمين الناس بتنساهم:

// قسمة صحيحة — بترمي الكسر. 7 // 2 تساوي 3
% باقي القسمة — 7 % 2 تساوي 1
** أُس — 2 ** 3 تساوي 8

خد بالك: القسمة العادية / دايمًا بتطلّع float، حتى لو القسمة ظبطت. 10 / 2 بتطلّع 5.0 مش 5.

Python
1print(7 + 2)
2print(7 / 2)
3print(7 // 2)
4print(7 % 2)
5print(7 ** 2)
الناتج
9
3.5
3
1
49
5

ترتيب العمليات — الأقواس هي صديقك

Python بتتبع ترتيب الرياضيات: الأُس، بعدين الضرب والقسمة، بعدين الجمع والطرح.

يعني 2 + 3 * 4 بتساوي 14 مش 20، لأن الضرب بيتعمل الأول.

النصيحة العملية: ما تحفظش الترتيب — حط أقواس. (2 + 3) * 4 واضحة لك وللي هيقرا code بتاعك بعدك.

Python
1print(2 + 3 * 4)
2print((2 + 3) * 4)
الناتج
14
20
6

التحويل بين types

لو جبت رقم من المستخدم أو من file، هيوصلك string حتى لو شكله رقم. و"5" + 1 بتطلّع error.

عشان كده بنحوّل: int() لرقم صحيح · float() لرقم عشري · str() لـ string.

Python
1text = "25"
2number = int(text)
3print(number + 5)
4print("Age: " + str(number))
الناتج
30
Age: 25
7

f-string: أنضف طريقة تدمج values في string

بدل ما تلزّق strings بـ + وتحوّل كل حاجة بـ str()، حط حرف f قبل علامة التنصيص وحُط أي variable بين قوسين {}.

دي الطريقة اللي المبرمجين بيستخدموها فعلًا — أقصر وأوضح وأقل غلط.

Python
1name = "Mona"
2grade = 92.5
3print(f"Student {name} scored {grade}")
4print(f"Percent {grade/100:.1%}")
الناتج
Student Mona scored 92.5
Percent 92.5%
8

اسم variable — قواعد وذوق

القواعد (Python بترفض غيرها):
· يبدأ بحرف أو _ — مش برقم
· من غير مسافات ولا علامات زي - و @
· مش كلمة محجوزة زي if أو for

والذوق (ده اللي بيفرّق بين code محترم و code وحش):
الاسم يقول إيه اللي جوّه الصندوق. x مش اسم، student_count اسم.

والعُرف في Python: حروف صغيرة وشرطة سفلية بين الكلمات — final_price مش FinalPrice.

Python
1student_count = 42
2avg_grade = 78.5
3is_open = True
4print(student_count, avg_grade, is_open)
الناتج
42 78.5 True
9

الاختصارات — += و -= و *=

السطر total = total + g بيتكرر كتير جدًا، فـ Python عملت له اختصار: total += g.

+= زوّد · -= نقّص · *= اضرب · /= اقسم

مفيش فرق في النتيجة خالص — بس أقصر وأوضح، وهتشوفه في code الناس طول الوقت.

Python
1score = 10
2score += 5
3score -= 3
4score *= 2
5print(score)
الناتج
24
10

الأرقام العشرية بتغلط شوية — وده طبيعي

جرّب 0.1 + 0.2 في Python. هتلاقي الناتج 0.30000000000000004.

ده مش باج في Python — ده شكل تخزين الكسور في أي كمبيوتر. الكمبيوتر بيخزّن بالنظام الثنائي، وفيه كسور عشرية مستحيل تتكتب فيه بالظبط (زي 1÷3 في النظام العشري).

الحل العملي: لما تعرض فلوس أو نتايج، قرّب بـ round() أو بـ :.2f.

وما تقارنش كسور بـ == — قارن الفرق بينهم إنه صغير.

Python
1print(0.1 + 0.2)
2print(round(0.1 + 0.2, 2))
3print(f"{0.1 + 0.2:.2f}")
الناتج
0.30000000000000004
0.3
0.30
3

وده كمان شوفه متحرك

الفكرة دي أسهل ما تتشاف من ما تتقرا

4

أمثلة محلولة

شوف إزاي بنفكّر قبل ما نكتب

مثال 1

فاتورة الكهرباء

المطلوب: الاستهلاك 230 كيلو وات، وسعر الكيلو 1.45 جنيه. اطبع الإجمالي.

نفكّر إزاي؟

  1. 1كل رقم ليه معنى → يبقى ليه variable باسم مفهوم
  2. 2الإجمالي = الاستهلاك × السعر
  3. 3الفلوس بتتعرض بخانتين عشريتين → :.2f
مثال 2

من دقايق لساعات ودقايق

المطلوب: عندك 200 دقيقة. حوّلها لساعات ودقايق.

نفكّر إزاي؟

  1. 1عدد الساعات = القسمة الصحيحة على 60 → //
  2. 2الدقايق الفاضلة = باقي القسمة على 60 → %
  3. 3الاتنين من نفس الرقم — مش محتاج أي حاجة تانية
مثال 3

نسبة النجاح

المطلوب: نجح 17 طالب من 25. اطبع النسبة المئوية.

نفكّر إزاي؟

  1. 1النسبة = الناجحين ÷ الكل
  2. 2الناتج هيطلع كسر عشري زي 0.68
  3. 3:.1% بتحوّله لنسبة مئوية جاهزة
مثال 4

الرقم اللي جاي كـ string

المطلوب: جالك "45" من file. اضربه في 2.

نفكّر إزاي؟

  1. 1شكله رقم بس type بتاعه string — دي أكتر حاجة بتوقّع
  2. 2type() بتأكّدلي type
  3. 3int() بتحوّله لرقم حقيقي أقدر أحسب بيه
مثال 5

بدّل 2 values

المطلوب: عندك 2 variables وعايز تبدّل اللي فيهم.

نفكّر إزاي؟

  1. 1لو كتبت a = b بالأول، value a القديمة هتضيع
  2. 2Python بتحسب اليمين كله الأول
  3. 3فـ a, b = b, a بتبدّلهم في سطر واحد
مثال 6

خصم على السعر

المطلوب: السعر 300 جنيه والخصم 15%. اطبع كام وفّرت وكام هتدفع.

نفكّر إزاي؟

  1. 1value الخصم = السعر × النسبة ÷ 100
  2. 2السعر النهائي = السعر − value الخصم
  3. 3كل خطوة في variable لوحدها → code يتقرا زي الجملة
5

ورقة مراجعة

ارجعلها وإنت بتحل — مش محتاج تحفظها

types والعمليات
الحاجةمعناهامثالالناتج
=حُط value في variablex = 5x بقت 5
+ - * /جمع وطرح وضرب وقسمة7 / 23.5
//قسمة صحيحة — بترمي الكسر7 // 23
%باقي القسمة7 % 21
**أُس2 ** 38
+=زوّد على نفسهx = 5 ثم x += 3x بقت 8
int(x)حوّل لرقم صحيحint("12")12
float(x)حوّل لرقم عشريfloat("3.5")3.5
str(x)حوّل لـ stringstr(12)"12"
type(x)إيه type الحاجة ديtype(3.5)<class 'float'>
f"{x}"حُط value جوّه stringf"العمر {20}"العمر 20
f"{x:.2f}"خانتين عشريتينf"{3.14159:.2f}"3.14
6

الذاكرة وهي بتتغيّر قدامك

شوفه بيشتغل سطر سطر

شغّل code خطوة خطوة

ركّز على صناديق الذاكرة. كل ما value تتغيّر، الصندوق بتاعها بيلمع. ده بالظبط اللي بيحصل جوّه الكمبيوتر.

1price = 45◂
2quantity = 3
3total = price * quantity
4discount = total * 0.1
5final = total - discount
6print(f"Total: {final}")
الذاكرة
price45
الناتج على الشاشة
لسه ما اتطبعش حاجة…
1

حطّينا 45 جوّه price

خطوة 17 خطوات
Python الحقيقيCPython 3.14

المحاكاة فوق بتشرحلك خطوة خطوة. دوس هنا عشان تشغّل نفس code على Python حقيقي وتتأكد بنفسك.
أول مرة هيحمّل ~11 ميجا — بعد كده بيبقى فوري.

7

غلطات بتحصل كتير

شوفها هنا بدل ما تضيّع ساعة فيها

غلط
print("Age: " + 20)
صح
print("Age: " + str(20))

مينفعش تجمع string مع رقم. حوّل الرقم لـ string الأول، أو استخدم f-string.

غلط
2name = "Ahmed"
صح
name2 = "Ahmed"

اسم variable مينفعش يبدأ برقم. يبدأ بحرف أو _.

غلط
x = 5
print(X)
صح
x = 5
print(x)

x و X 2 variables مختلفين تمامًا. Python حسّاسة لحالة الحروف.

8

مسائل سريعة

فكّر الأول — بعدين اكشف

1

إيه الناتج؟

1print(7 // 2)
2

إيه الناتج؟

1print(7 % 3)
3

إيه الناتج؟

1print(10 / 5)
4

إيه الناتج؟

1print("3" + "4")
5

إيه الناتج؟

1print("ها" * 3)
6

إيه value x في الآخر؟

1x = 5
2x += 3
3x *= 2
7

إيه الناتج؟

1print(3 + 2 * 4)
8

ليه ده بيطلّع error؟

1print(int("3.5"))
9

جرّب بنفسك

اكتب code — ده الجزء اللي بيعلّم فعلاً

جرّب بنفسك

عندك 3 درجات: 85 و 90 و 78. احسب المتوسط واطبعه بجملة واضحة باستخدام f-string.

شغّل code خطوة خطوة
1a = 85◂
2b = 90
3c = 78
4# compute the average here
5
الذاكرة
a85
الناتج على الشاشة
لسه ما اتطبعش حاجة…
1

حطّينا 85 جوّه a

خطوة 14 خطوات
Python الحقيقيCPython 3.14

المحاكاة فوق بتشرحلك خطوة خطوة. دوس هنا عشان تشغّل نفس code على Python حقيقي وتتأكد بنفسك.
أول مرة هيحمّل ~11 ميجا — بعد كده بيبقى فوري.

تمرين إضافي 2
جرّب بنفسك

عندك 1250 جنيه عايز تقسّمهم على 7 أشخاص بالتساوي. اطبع نصيب كل واحد (رقم صحيح) والباقي.

شغّل code خطوة خطوة
1money = 1250◂
2people = 7
3# write here
4
الذاكرة
money1250
الناتج على الشاشة
لسه ما اتطبعش حاجة…
1

حطّينا 1250 جوّه money

خطوة 13 خطوات
Python الحقيقيCPython 3.14

المحاكاة فوق بتشرحلك خطوة خطوة. دوس هنا عشان تشغّل نفس code على Python حقيقي وتتأكد بنفسك.
أول مرة هيحمّل ~11 ميجا — بعد كده بيبقى فوري.

تمرين إضافي 3
جرّب بنفسك

حوّل 350 دولار لجنيه مصري (سعر الدولار 48.5). اطبع النتيجة بخانتين عشريتين.

شغّل code خطوة خطوة
1dollars = 350◂
2rate = 48.5
3# write here
4
الذاكرة
dollars350
الناتج على الشاشة
لسه ما اتطبعش حاجة…
1

حطّينا 350 جوّه dollars

خطوة 13 خطوات
Python الحقيقيCPython 3.14

المحاكاة فوق بتشرحلك خطوة خطوة. دوس هنا عشان تشغّل نفس code على Python حقيقي وتتأكد بنفسك.
أول مرة هيحمّل ~11 ميجا — بعد كده بيبقى فوري.

تمرين إضافي 4
جرّب بنفسك

احسب مساحة ومحيط دايرة نصف قطرها 7 (استخدم 3.14159 للـ π). اعرض كل واحدة بخانة عشرية واحدة.

شغّل code خطوة خطوة
1pi = 3.14159◂
2r = 7
3# write here
4
الذاكرة
pi3.14159
الناتج على الشاشة
لسه ما اتطبعش حاجة…
1

حطّينا 3.14159 جوّه pi

خطوة 13 خطوات
Python الحقيقيCPython 3.14

المحاكاة فوق بتشرحلك خطوة خطوة. دوس هنا عشان تشغّل نفس code على Python حقيقي وتتأكد بنفسك.
أول مرة هيحمّل ~11 ميجا — بعد كده بيبقى فوري.

10

اختبر نفسك

كل إجابة معاها السبب

1

إيه الناتج؟

1print(7 // 2)
2

إيه الناتج؟

1print("5" * 3)
3

إيه value x في الآخر؟

1x = 5
2x += 3
3x *= 2
4

إيه اللي هيتطبع؟

1x = 4
2x = x * 2
3print(x + 1)
5

إيه ناتج 10 / 2 في Python 3؟

6

إيه ناتج السطر ده؟

1print(2 + 3 * 4)
7

عايز تطبع «السعر: 50». إيه أصح طريقة؟

خلصت الدرس؟

علّم عليه عشان تعرف إنت وصلت لفين لما ترجع تاني.

الدرس اللي بعده: Conditions والقرارات ←