بايثون3 مِن مدارس w3-21Python For Loops
اقتبس من ابراهيم حمادة في 8 مارس، 2021, 11:57 صتنويه:
لِأن التاب لا تظهر على الصفحة, و هي شيء مهم جدا في الإزاحة في كود بايثون
لذلك فإننا سنستبدل التاب بالكلمة 'tab' على هذه الصفحة
و مِن الأفضل إذا شئت أن تنسخ أي كود, أن تأخذه مِن الملف النصي, أو الملفات المُرفقة.
الحلقة for في بايثون (For Loop)الحلقة for في بايثون
يتم استخدام الحلقة for للتكرار عبر أي تسلسل
إما قائمة(list) أو مصفوفة(tuple) أو قاموس(dictionary) أو مجموعة(set) أو سلسلة نصِّيَّة(string).
هذا أقل شبها بالكلمة الرئيسية for في لغات البرمجة الأخرى ،
ويعمل أكثر مثل طريقة التكرار كما هو موجود في لغات البرمجة الأخرى الموجهة للكائنات(object-orientated programming ).
باستخدام حلقة for ، يمكننا تنفيذ مجموعة من العبارات ، مرة واحدة لكل عنصر في القائمة(list) ، أو tuple ، أو set ، إلخ.
مثال
طباعة كل فاكهة موجودة في قائمة الفاكهة:
fruits = ["apple", "banana", "cherry"]
for x in fruits:
tab print(x)ستكون النتيجة:
apple
banana
cherry
جربها بنفسك مِن ملف for.py
لا تتطلب حلقة for متغير و تعيينه مسبقا, كما كان الحال مع الحلقة while.حلقة من خلال سلسلة نصِّيَّة(string)
حتى السلاسل النصِّية هي كائنات قابلة للتكرار ، فهي تحتوي على سلسلة من الأحرف:
مثال
حلقة من خلال الحروف في كلمة "banana":
for x in "banana":
tab print(x)ستكون النتيجة:
b
a
n
a
n
a
جربها بنفسك مِن ملف for_string.pyعبارةْ break لِكسر الحلقة(break Statement)
باستخدام العبارة break ، يمكننا إيقاف الحلقة قبل أن تمر عبر جميع العناصر:
مثال
الخروج من الحلقة عندما xتكون "banana":
fruits = ["apple", "banana", "cherry"]
for x in fruits:
tab print(x)
tab if x == "banana":
tab tab breakستكون النتيجة:
apple
banana
جربها بنفسك مِن ملف for_break.pyمثال
الخروج من الحلقة عندما x تكون "banana" ، لكن هذه المرة يكون كسر الحلقة قبل الطباعة:
fruits = ["apple", "banana", "cherry"]
for x in fruits:
tab if x == "banana":
tab tab break
tab print(x)ستكون النتيجة:
apple
جربها بنفسك مِن ملف for_break2.pyعبارةْ continue لمواصلةْ الحلقة(continue Statement)
مع عبارة continue يمكننا إيقاف الدورة الحالية من الحلقة، ومتابعة الدورات التالية:
مثال
لا تطبعْ banana:
fruits = ["apple", "banana", "cherry"]
for x in fruits:
tab if x == "banana":
tab tab continue
tab print(x)ستكون النتيجة:
apple
cherry
جربها بنفسك مِن ملف for_continue.pyالدالة range()
لِعمل حلقة خلال مجموعة من التعليمات البرمجية لعدد محدد من المرات ، يمكننا استخدام الدالة range ()
تقوم الدالة range() بإرجاع تسلسل من الأرقام، بدءاً من 0 بشكل افتراضي، و الزيادة بمقدار 1 (افتراضياً)، والإنتهاء عند رقم محدد.
مثال
استخدام الدالة range ():
for x in range(6):
tab print(x)ستكون النتيجة:
0
1
2
3
4
5
جربها بنفسك مِن ملف for_range.py
لاحظْ أن range (6) ليس قيمًا من 0 إلى 6 ، ولكنه القيم من 0 إلى 5.
يتم جعل القيمة الافتراضية للدالة range () 0 كقيمة بداية ،
ولكن من الممكن تحديد قيمة البداية عن طريق إضافة معامل:
range (2 ، 6) ، مما يعني القيم من 2 إلى 6 (ولكن لا تشمل 6).
مثال
استخدام معامل البداية(start parameter):
for x in range(2, 6):
tab print(x)ستكون النتيجة:
2
3
4
5
جربها بنفسك مِن ملف for_range2.pyتقوم الدالة range() لزيادة التسلسل بشكل افتراضي، بمقدار 1 ،
ومع ذلك فمن الممكن تحديد قيمة الزيادة بإضافة معامل ثالث:
range (2 ، 30 ، 3), وبذلك تكون قيمةْ الزيادة تُسَاوي 3.
مثال
زيادة التسلسل بالعدد 3 (الافتراضي هو 1):
for x in range(2, 30, 3):
tab print(x)ستكون النتيجة:
2
5
8
11
14
17
20
23
26
29
جربها بنفسك مِن ملف for_range3.pyالعبارة else بعد الحلقة For
الكلمة else في الحلقة for تحدد كتلة من التعليمات البرمجية ليتم تنفيذها عندما تكون الحلقة قد انتهت:
مثال
طباعة جميع الأرقام من 0 إلى 5 ، وطباعة رسالة عندما تكون الحلقة قد انتهت:
for x in range(6):
tab print(x)
else:
tab print("Finally finished!")ستكون النتيجة:
0
1
2
3
4
5
Finally finished!
جربها بنفسك مِن ملف for_else.pyالحلقات المتداخلة
الحلقة المتداخلة هي حلقة داخل حلقة.
سيتم تنفيذ "الحلقة الداخلية" مرة واحدة لكل تكرار لـ "الحلقة الخارجية":
يعني يتم تنفيذ الحلقة الداخلية كلها, عند كل دورة للحلقة الخارجية.
مثال
طباعة كل صفة لكل فاكهة:
adj = ["red", "big", "tasty"]
fruits = ["apple", "banana", "cherry"]
for x in adj:
tab for y in fruits:
tab tab print(x, y)ستكون النتيجة:
red apple
red banana
red cherry
big apple
big banana
big cherry
tasty apple
tasty banana
tasty cherry
جربها بنفسك مِن ملف for_nested.pyعبارةْ pass للتمرير(pass Statement)
pass معناها أنك تقول لبايثون, لا تفعل شيئا.
الحلقات forلا يمكن أن تكون فارغة ،
ولكن إذا كان لديك لسبب ما حلقة for بدون محتوى ، فَضَعْ العبارة pass لتجنب حدوث خطأ.
مثال
for x in [0, 1, 2]:
tab passستكون النتيجة:
جربها بنفسك مِن ملف for_pass.py
اختبر نفسك مع التمارين
التمرين:
إعمل حلقة مِن نوع for
مِن خلال العناصر الموجودة في القائمة fruits.
fruits = ["apple", "banana", "cherry"]
... x ... fruits ...
tab print(x)الإجابة:
fruits = ["apple", "banana", "cherry"]
for x in fruits:
tab print(x)الدرس مع الملفات المُرفقة:
https://www.dropbox.com/s/qr3p3ik2t2dktap/21Python%20For%20Loops.zip?dl=1
تنويه:
لِأن التاب لا تظهر على الصفحة, و هي شيء مهم جدا في الإزاحة في كود بايثون
لذلك فإننا سنستبدل التاب بالكلمة 'tab' على هذه الصفحة
و مِن الأفضل إذا شئت أن تنسخ أي كود, أن تأخذه مِن الملف النصي, أو الملفات المُرفقة.
الحلقة for في بايثون (For Loop)
الحلقة for في بايثون
يتم استخدام الحلقة for للتكرار عبر أي تسلسل
إما قائمة(list) أو مصفوفة(tuple) أو قاموس(dictionary) أو مجموعة(set) أو سلسلة نصِّيَّة(string).
هذا أقل شبها بالكلمة الرئيسية for في لغات البرمجة الأخرى ،
ويعمل أكثر مثل طريقة التكرار كما هو موجود في لغات البرمجة الأخرى الموجهة للكائنات(object-orientated programming ).
باستخدام حلقة for ، يمكننا تنفيذ مجموعة من العبارات ، مرة واحدة لكل عنصر في القائمة(list) ، أو tuple ، أو set ، إلخ.
مثال
طباعة كل فاكهة موجودة في قائمة الفاكهة:
fruits = ["apple", "banana", "cherry"]
for x in fruits:
tab print(x)
ستكون النتيجة:
apple
banana
cherry
جربها بنفسك مِن ملف for.py
لا تتطلب حلقة for متغير و تعيينه مسبقا, كما كان الحال مع الحلقة while.
حلقة من خلال سلسلة نصِّيَّة(string)
حتى السلاسل النصِّية هي كائنات قابلة للتكرار ، فهي تحتوي على سلسلة من الأحرف:
مثال
حلقة من خلال الحروف في كلمة "banana":
for x in "banana":
tab print(x)
ستكون النتيجة:
b
a
n
a
n
a
جربها بنفسك مِن ملف for_string.py
عبارةْ break لِكسر الحلقة(break Statement)
باستخدام العبارة break ، يمكننا إيقاف الحلقة قبل أن تمر عبر جميع العناصر:
مثال
الخروج من الحلقة عندما xتكون "banana":
fruits = ["apple", "banana", "cherry"]
for x in fruits:
tab print(x)
tab if x == "banana":
tab tab break
ستكون النتيجة:
apple
banana
جربها بنفسك مِن ملف for_break.py
مثال
الخروج من الحلقة عندما x تكون "banana" ، لكن هذه المرة يكون كسر الحلقة قبل الطباعة:
fruits = ["apple", "banana", "cherry"]
for x in fruits:
tab if x == "banana":
tab tab break
tab print(x)
ستكون النتيجة:
apple
جربها بنفسك مِن ملف for_break2.py
عبارةْ continue لمواصلةْ الحلقة(continue Statement)
مع عبارة continue يمكننا إيقاف الدورة الحالية من الحلقة، ومتابعة الدورات التالية:
مثال
لا تطبعْ banana:
fruits = ["apple", "banana", "cherry"]
for x in fruits:
tab if x == "banana":
tab tab continue
tab print(x)
ستكون النتيجة:
apple
cherry
جربها بنفسك مِن ملف for_continue.py
الدالة range()
لِعمل حلقة خلال مجموعة من التعليمات البرمجية لعدد محدد من المرات ، يمكننا استخدام الدالة range ()
تقوم الدالة range() بإرجاع تسلسل من الأرقام، بدءاً من 0 بشكل افتراضي، و الزيادة بمقدار 1 (افتراضياً)، والإنتهاء عند رقم محدد.
مثال
استخدام الدالة range ():
for x in range(6):
tab print(x)
ستكون النتيجة:
0
1
2
3
4
5
جربها بنفسك مِن ملف for_range.py
لاحظْ أن range (6) ليس قيمًا من 0 إلى 6 ، ولكنه القيم من 0 إلى 5.
يتم جعل القيمة الافتراضية للدالة range () 0 كقيمة بداية ،
ولكن من الممكن تحديد قيمة البداية عن طريق إضافة معامل:
range (2 ، 6) ، مما يعني القيم من 2 إلى 6 (ولكن لا تشمل 6).
مثال
استخدام معامل البداية(start parameter):
for x in range(2, 6):
tab print(x)
ستكون النتيجة:
2
3
4
5
جربها بنفسك مِن ملف for_range2.py
تقوم الدالة range() لزيادة التسلسل بشكل افتراضي، بمقدار 1 ،
ومع ذلك فمن الممكن تحديد قيمة الزيادة بإضافة معامل ثالث:
range (2 ، 30 ، 3), وبذلك تكون قيمةْ الزيادة تُسَاوي 3.
مثال
زيادة التسلسل بالعدد 3 (الافتراضي هو 1):
for x in range(2, 30, 3):
tab print(x)
ستكون النتيجة:
2
5
8
11
14
17
20
23
26
29
جربها بنفسك مِن ملف for_range3.py
العبارة else بعد الحلقة For
الكلمة else في الحلقة for تحدد كتلة من التعليمات البرمجية ليتم تنفيذها عندما تكون الحلقة قد انتهت:
مثال
طباعة جميع الأرقام من 0 إلى 5 ، وطباعة رسالة عندما تكون الحلقة قد انتهت:
for x in range(6):
tab print(x)
else:
tab print("Finally finished!")
ستكون النتيجة:
0
1
2
3
4
5
Finally finished!
جربها بنفسك مِن ملف for_else.py
الحلقات المتداخلة
الحلقة المتداخلة هي حلقة داخل حلقة.
سيتم تنفيذ "الحلقة الداخلية" مرة واحدة لكل تكرار لـ "الحلقة الخارجية":
يعني يتم تنفيذ الحلقة الداخلية كلها, عند كل دورة للحلقة الخارجية.
مثال
طباعة كل صفة لكل فاكهة:
adj = ["red", "big", "tasty"]
fruits = ["apple", "banana", "cherry"]
for x in adj:
tab for y in fruits:
tab tab print(x, y)
ستكون النتيجة:
red apple
red banana
red cherry
big apple
big banana
big cherry
tasty apple
tasty banana
tasty cherry
جربها بنفسك مِن ملف for_nested.py
عبارةْ pass للتمرير(pass Statement)
pass معناها أنك تقول لبايثون, لا تفعل شيئا.
الحلقات forلا يمكن أن تكون فارغة ،
ولكن إذا كان لديك لسبب ما حلقة for بدون محتوى ، فَضَعْ العبارة pass لتجنب حدوث خطأ.
مثال
for x in [0, 1, 2]:
tab pass
ستكون النتيجة:
جربها بنفسك مِن ملف for_pass.py
اختبر نفسك مع التمارين
التمرين:
إعمل حلقة مِن نوع for
مِن خلال العناصر الموجودة في القائمة fruits.
fruits = ["apple", "banana", "cherry"]
... x ... fruits ...
tab print(x)
الإجابة:
fruits = ["apple", "banana", "cherry"]
for x in fruits:
tab print(x)
الدرس مع الملفات المُرفقة:
https://www.dropbox.com/s/qr3p3ik2t2dktap/21Python%20For%20Loops.zip?dl=1
اقتبس من أبو معاذ مرعي في 22 مارس، 2021, 1:39 مالسلام عليكم أخي وإستاذي إبراهيم
عيز سلسلة المحاضرات كاملة
وياريت التواصل معك أخي
أخوك أبو معاذ
ضع لي طريقة التواصل
السلام عليكم أخي وإستاذي إبراهيم
عيز سلسلة المحاضرات كاملة
وياريت التواصل معك أخي
أخوك أبو معاذ
ضع لي طريقة التواصل
اقتبس من ابراهيم حمادة في 23 مارس، 2021, 1:41 صمَرحبا بالأخ الحبيب أبو معاذ
بالنسبة لهذه الدروس أخي فهي ترجمة لنفس الدروس على موقع w3schools.com
و هي حتى الآن ليست كاملة, بَل ما زال هناك كثيرا لنهايةْ السلسلة
و الذي يحصل أنه كُلَّما قُمت بترجمةْ درس منها, وضعْتُه هنا
فإذا كنت تريد كل الدروس حتى الحلقة for, و هو آخِر درس هنا فيمكن أن أرسلها لك.
أُكتب لي على الحساب:
ibra.hamadeh@hotmail.com
فهذا الحساب أنا افتحه كل يوم, و لا تفوتني فيه رسالة
و ضع لي في الرسالة حساباتك على الفيس و السكايب
و سأقول لك في الرسالة التي أرد بها عليك على الأوقات التي يُمكن أن نتواصل بها.
و تَقَبَّل تحياتي و تقديري.
مَرحبا بالأخ الحبيب أبو معاذ
بالنسبة لهذه الدروس أخي فهي ترجمة لنفس الدروس على موقع w3schools.com
و هي حتى الآن ليست كاملة, بَل ما زال هناك كثيرا لنهايةْ السلسلة
و الذي يحصل أنه كُلَّما قُمت بترجمةْ درس منها, وضعْتُه هنا
فإذا كنت تريد كل الدروس حتى الحلقة for, و هو آخِر درس هنا فيمكن أن أرسلها لك.
أُكتب لي على الحساب:
ibra.hamadeh@hotmail.com
فهذا الحساب أنا افتحه كل يوم, و لا تفوتني فيه رسالة
و ضع لي في الرسالة حساباتك على الفيس و السكايب
و سأقول لك في الرسالة التي أرد بها عليك على الأوقات التي يُمكن أن نتواصل بها.
و تَقَبَّل تحياتي و تقديري.