Python / التكرار

جملة for مع القوائم والنصوص

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

مع range تتكرر الحلقة عددًا من المرات. لكن كثيرًا ما نريد أن نمرّ على مجموعة قيم جاهزة، مثل درجات حرارة الأسبوع. نكتب القيم بين قوسين مربعين [ ] بعد in:

Python
for temp in [9, 7, 13, 11]:
    print(temp)
وحدة التحكم
9
7
13
11

في كل دورة يأخذ المتغير temp القيمة التالية بالترتيب، من الأولى حتى الأخيرة. ويمكن أن نحفظ القيم في متغير أولًا ثم نكتب اسمه بعد in:

Python
past_temp_list = [9, 7, 13, 11, 10, 8, 14]
for temp in past_temp_list:
    print(temp)
وحدة التحكم
9
7
13
11
10
8
14
الكودالمتغير يأخذ
for i in range(3):0, 1, 2
for temp in [9, 7, 13]:9, 7, 13
for letter in "abc":a, b, c

داخل الحلقة نستطيع أن نفعل أي شيء بالقيمة: نجمعها مثلًا. نبدأ المجموع بصفر قبل الحلقة، ونطبعه بعدها:

Python
prices = [15, 20, 10]
total = 0
for price in prices:
    total = total + price
print("Total: " + str(total))
وحدة التحكم
Total: 45

المرور على حروف نص

النص سلسلة من الحروف، فإذا كتبناه بعد in أخذنا حروفه حرفًا حرفًا:

Python
for letter in "Python":
    print(letter)
وحدة التحكم
P
y
t
h
o
n

ومع if داخل الحلقة نستطيع أن نعدّ حرفًا معيّنًا:

Python
word = "banana"
count = 0
for letter in word:
    if letter == "a":
        count = count + 1
print(count)
وحدة التحكم
3
لا تضع اسم المتغير بين علامتي تنصيص: for x in "prices": تمرّ على حروف الكلمة prices نفسها، لا على القيم المحفوظة في المتغير.

تدريبات

1اكتب البرنامجتدريب المنهج

اطبع كل قيم num_list بحلقة for، واجعل اسم متغير الحلقة num.

Python Ctrl/⌘ + Enter للتشغيل · Esc ثم Tab للخروج من المحرر
num_list = [4, 8, 12, 16]
وحدة التحكم
اضغط «تشغيل» لترى النتيجة.
2اكتب البرنامجتدريب المنهج

أسند القيم Good morning و Good night و Hello (بهذا الترتيب) إلى المتغير word_list، ثم اطبعها بحلقة for متغيرها word.

Python Ctrl/⌘ + Enter للتشغيل · Esc ثم Tab للخروج من المحرر
وحدة التحكم
اضغط «تشغيل» لترى النتيجة.
3أكمل الفراغتدريب المنهج

أكمل الفراغين لتُطبع درجات الحرارة السبع واحدة في كل سطر.

Python Ctrl/⌘ + Enter للتشغيل · Esc ثم Tab للخروج من المحرر
past_temp_list = [7, 10, 12, 9, 11, 8, 15]
for ___ in ___:
    print(temp)
وحدة التحكم
اضغط «تشغيل» لترى النتيجة.
4عدّل البرنامجتدريب إضافي

البرنامج يطبع حروف الكلمة name بدل حروف الاسم المحفوظ. صحّحه ليطبع حروف Salma حرفًا في كل سطر.

تلميحاحذف علامتي التنصيص حول اسم المتغير.
Python Ctrl/⌘ + Enter للتشغيل · Esc ثم Tab للخروج من المحرر
name = "Salma"
for letter in "name":
    print(letter)
وحدة التحكم
اضغط «تشغيل» لترى النتيجة.
5اكتب البرنامجتدريب إضافي

اشتريت أدوات مدرسية بالأسعار 12 و 30 و 8 و 25 جنيهًا. اجمعها بحلقة for واطبع Total: 75.

Python Ctrl/⌘ + Enter للتشغيل · Esc ثم Tab للخروج من المحرر
prices = [12, 30, 8, 25]
وحدة التحكم
اضغط «تشغيل» لترى النتيجة.
6اكتب البرنامجتدريب إضافي

عُدّ كم مرة يظهر الحرف e في الكلمة excellence واطبع العدد فقط.

Python Ctrl/⌘ + Enter للتشغيل · Esc ثم Tab للخروج من المحرر
word = "excellence"
وحدة التحكم
اضغط «تشغيل» لترى النتيجة.

النقاط الرئيسية

  • for v in [a, b, c]: يأخذ المتغير v كل قيمة بالترتيب.
  • يمكن حفظ القيم في متغير وكتابة اسمه بعد in بدون علامتي تنصيص.
  • for letter in "text": تمرّ على حروف النص حرفًا حرفًا.