حلقة for في بايثون

0 الأسهم
0
0
0
0

مقدمة

حلقة for في بايثون دالة تكرارية. إذا كان لديك كائن تسلسل، مثل قائمة، يمكنك استخدامها للتكرار على عناصر القائمة. لا تختلف وظيفة حلقة for كثيرًا عما تراه في العديد من لغات البرمجة الأخرى. في هذه المقالة، سنستكشف حلقة for في بايثون بالتفصيل ونتعلم كيفية التكرار على تسلسلات مختلفة، بما في ذلك القوائم والعناصر المشتقة وغيرها. بالإضافة إلى ذلك، سنتعلم التحكم في تدفق الحلقة باستخدام عبارات break وcontinue.

متى تستخدم حلقة for

عندما تحتاج إلى تكرار كتلة من التعليمات البرمجية عدة مرات، استخدم عبارة "حلقة while" بدلاً من ذلك إذا كنت لا تعرف عدد المرات التي يجب تكرارها.

بناء جملة حلقة for

يبدو بناء الجملة الأساسي لحلقة for في Python مشابهًا لما هو مدرج أدناه.

for itarator_variable in sequence_name:
Statements
. . .
Statements

بناء جملة حلقة for في بايثون بالتفصيل

  • الكلمة الأولى من العبارة تبدأ بالكلمة الأساسية "for"، مما يعني بداية حلقة for.
  • ثم لدينا متغير التكرار الذي يتكرر عبر التسلسل ويمكن استخدامه داخل الحلقة لأداء وظائف مختلفة.
  • الشيء التالي هو الكلمة الأساسية "in" في Python، والتي تخبر متغير التكرار بالتكرار فوق العناصر الموجودة داخل التسلسل.
  • وأخيرًا، لدينا متغير التسلسل، والذي يمكن أن يكون قائمة، أو مجموعة، أو أي نوع آخر من المتكررات.
  • قسم عبارات الحلقة هو المكان الذي يمكنك فيه اللعب مع متغير التكرار وإجراء وظائف مختلفة.

طباعة الأحرف الفردية من السلسلة باستخدام حلقة for

سلسلة بايثون هي سلسلة من الأحرف. إذا احتجت في أيٍّ من برامجك البرمجية إلى تكرار أحرف سلسلة بشكل فردي، يمكنك استخدام حلقة for هنا.

وهنا كيف يمكنك القيام بذلك.

word="anaconda"
for letter in word:
print (letter)
a
n
a
c
o
n
d
a

السبب وراء نجاح هذه الحلقة هو أن بايثون يعتبر "السلسلة" عبارة عن تسلسل من الأحرف، بدلاً من النظر إلى السلسلة ككل.

استخدام حلقة for للتكرار على قائمة أو مجموعة في Python

القوائم والمجموعات كائنات قابلة للتكرار. لنرَ كيف يُمكننا تكرار العناصر داخل هذه الكائنات.

words= ["Apple", "Banana", "Car", "Dolphin" ]
for word in words:
print (word)

المخرجات:

Apple
Banana
Car
Dolphin

الآن، دعونا نمضي قدمًا ونعمل على عناصر المجموعة هنا.

nums = (1, 2, 3, 4)
sum_nums = 0
for num in nums:
sum_nums = sum_nums + num
print(f'Sum of numbers is {sum_nums}')
# Output
# Sum of numbers is 10

حلقات for المتداخلة في بايثون

عندما يكون لدينا حلقة for داخل حلقة for أخرى، تُسمى حلقة for متداخلة. للحلقة المتداخلة استخدامات عديدة. انظر إلى القائمة المثال أعلاه. تطبع حلقة for كلمات فردية من القائمة. ولكن ماذا لو أردنا طباعة أحرف كل كلمة في القائمة؟

هنا يكون استخدام حلقة for المتداخلة هو الأمثل. الحلقة الأولى (الحلقة الأصلية) ستُكرر الكلمات واحدة تلو الأخرى. أما الحلقة الثانية (الحلقة الفرعية) فستُكرر أحرف كل كلمة.

words= ["Apple", "Banana", "Car", "Dolphin" ]
for word in words:
#This loop is fetching word from the list
print ("The following lines will print each letters of "+word)
for letter in word:
#This loop is fetching letter for the word
print (letter)
print("") #This print is used to print a blank line

المخرجات:


الحلقة المتداخلة تشبه هيكليًا عبارات if المتداخلة.

حلقة For مع دالة range()

دالة range() في بايثون هي إحدى الدوال المضمنة. تعمل هذه الدالة بكفاءة عالية عند تشغيل حلقة for لعدد معين من المرات، أو عند تحديد نطاق من الكائنات المراد طباعتها.

عند العمل مع range()، يمكنك تمرير ما بين 1 و3 وسيطات صحيحة إليها:

  • يبدأ يحدد القيمة الصحيحة التي يبدأ عندها التسلسل، إذا لم يتم تضمينها، يبدأ التسلسل عند 0.
  • قف مطلوب دائمًا وهو عدد صحيح يصل إلى ولكن لا يشمل
  • خطوة يحدد مقدار الزيادة (أو النقصان في حالة الأرقام السالبة) في التكرار التالي، إذا تم حذف هذا، فإن الخطوة الافتراضية هي 1.

فكر في المثال التالي حيث أريد طباعة الأرقام 1 و2 و3:

for x in range(3):
print("Printing:", x)
# Output
# Printing: 0
# Printing: 1
# Printing: 2

تأخذ دالة النطاق أيضًا مُعاملًا آخر، بالإضافة إلى البداية والنهاية. هذا المُعامل هو الخطوة. يُحدد دالة النطاق عدد الأرقام التي يجب تخطيها بين كل عدد.

في المثال أدناه، استخدمت الرقم 3 كخطوة ويمكنك أن ترى أن أرقام الإخراج هي الرقم السابق + 3.

for n in range(1, 10, 3):
print("Printing with step:", n)
# Output
# Printing with step: 1
# Printing with step: 4
# Printing with step: 7

يمكننا أيضًا استخدام قيمة سلبية لحجّة الخطوة الخاصة بنا للتكرار للخلف، ولكننا نحتاج إلى ضبط حجّتيّ البداية والتوقف وفقًا لذلك:

for i in range(100,0,-10):
print(i)

هنا ١٠٠ هي قيمة البداية، و٠ هي قيمة النهاية، و-١٠ هو النطاق، لذا تبدأ الحلقة من ١٠٠ وتنتهي عند ٠، مع تناقص ١٠ مع كل تكرار. يظهر هذا في المخرجات:

Output
100
90
80
70
60
50
40
30
20
10

عند البرمجة في Python، تستخدم حلقات for غالبًا نوع التسلسل range() كمعلمات للتكرار.

عبارة break مع حلقة for

تُستخدم عبارة break لإنهاء حلقة for قبل أوانها. تُستخدم لإيقاف حلقة for عند استيفاء شرط معين. لنفترض أن لدينا قائمة أرقام ونريد التحقق من وجود رقم. يمكننا تكرار العملية على هذه القائمة، وإذا وُجد الرقم، يمكننا الخروج من الحلقة لعدم الحاجة إلى تكرار العملية على العناصر المتبقية.

في هذه الحالة، سوف نستخدم شرط if else في Python مع حلقة for الخاصة بنا.

nums = [1, 2, 3, 4, 5, 6]
n = 2
found = False
for num in nums:
if n == num:
found = True
break
print(f'List contains {n}: {found}')
# Output
# List contains 2: True

عبارة الاستمرار مع حلقة for

يمكننا استخدام عبارات الاستمرار في حلقة for لتخطي تنفيذ نص حلقة for عند تحقق شرط معين. لنفترض أن لدينا قائمة أرقام ونريد طباعة مجموع الأعداد الموجبة. يمكننا استخدام عبارات الاستمرار لتخطي حلقة for عند تنفيذ الأعداد السالبة.

nums = [1, 2, -3, 4, -5, 6]
sum_positives = 0
for num in nums:
if num < 0:
continue
sum_positives += num
print(f'Sum of Positive Numbers: {sum_positives}')

حلقة Python for مع كتلة else

يمكننا استخدام كتلة else مع حلقة for في بايثون. تُنفَّذ كتلة else فقط إذا لم تُنهَ حلقة for بجملة break. لنفترض أن لدينا دالة تطبع مجموع الأعداد إذا وفقط إذا كانت جميع الأعداد زوجية. إذا كان العدد فرديًا، فيمكننا استخدام جملة break لإنهاء حلقة for. يمكننا طباعة المجموع في كتلة else بحيث يُطبع عند تنفيذ حلقة for بشكل طبيعي.

def print_sum_even_nums(even_nums):
total = 0
for x in even_nums:
if x % 2 != 0:
break
total += x
else:
print("For loop executed normally")
print(f'Sum of numbers {total}')
# this will print the sum
print_sum_even_nums([2, 4, 6, 8])
# this won't print the sum because of an odd number in the sequence
print_sum_even_nums([2, 4, 5, 8])
# Output
# For loop executed normally
# Sum of numbers 20

حلقات For باستخدام أنواع البيانات المتسلسلة

يمكن أيضًا استخدام القوائم وأنواع أخرى من تسلسلات البيانات كمعاملات تكرار في حلقات for. بدلًا من التكرار عبر دالة range()، يمكنك تعريف قائمة والتكرار خلالها. نخصص قائمة لمتغير، ثم نكررها:

sharks = ['hammerhead', 'great white', 'dogfish', 'frilled', 'bullhead', 'requiem']
for shark in sharks:
print(shark)

في هذه الحالة، نطبع كل عنصر في القائمة. مع أننا استخدمنا المتغير shark، كان بإمكاننا استدعاء المتغير بأي اسم صحيح آخر والحصول على نفس النتيجة:

Output
hammerhead
great white
dogfish
frilled
bullhead
requiem

يوضح الناتج أعلاه أن حلقة for تُكرّر على القائمة، وتطبع كل عنصر منها في كل سطر. تُستخدم القوائم وأنواع البيانات الأخرى القائمة على التسلسل، مثل السلاسل النصية والمجموعات، عادةً في حلقات for لأنها قابلة للتكرار. يمكنك دمج أنواع البيانات هذه مع دالة range() لإضافة عناصر إلى قائمة، على سبيل المثال:

sharks = ['hammerhead', 'great white', 'dogfish', 'frilled', 'bullhead', 'requiem']
for item in range(len(sharks)):
sharks.append('shark')
print(sharks)
Output
['hammerhead', 'great white', 'dogfish', 'frilled', 'bullhead', 'requiem', 'shark', 'shark', 'shark', 'shark', 'shark', 'shark']

هنا، لكل عنصر في قائمة أسماك القرش، أضفنا سلسلةً بديلةً من "Shark". يمكنك أيضًا استخدام حلقة for لإنشاء قائمة من الصفر:

integers = []
for i in range(10):
integers.append(i)
print(integers)

في هذا المثال، يتم تهيئة الأعداد الصحيحة إلى قائمة فارغة، ولكن حلقة for تملأ القائمة على النحو التالي:

Output
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

وبنفس الطريقة، يمكننا التكرار عبر السلاسل:

sammy = 'Sammy'
for letter in sammy:
print(letter)
Output
S
a
m
m
y

يتم تكرار العناصر المشتقة بنفس صيغة تكرار القوائم أو السلاسل النصية المذكورة أعلاه. عند تكرار القاموس، من المهم مراعاة بنية المفتاح:القيمة لضمان استدعاء العنصر الصحيح من القاموس. إليك مثال يستدعي كلاً من المفتاح والقيمة:

sammy_shark = {'name': 'Sammy', 'animal': 'shark', 'color': 'blue', 'location': 'ocean'}
for key in sammy_shark:
print(key + ': ' + sammy_shark[key])
Output
name: Sammy
animal: shark
location: ocean
color: blue

عند استخدام قاموس مع حلقات for، يُقابل المتغير المُكرر مفاتيح القاموس، ويُقابل dictionary_variable[iterating_variable] القيم. في الحالة السابقة، استُخدم المتغير المُكرر key لتمثيل المفتاح، وsammy_shark[key] لتمثيل القيم. تُستخدم الحلقات غالبًا لتكرار أنواع البيانات المتسلسلة والتعامل معها.

نتيجة

حلقة for في بايثون مشابهة جدًا للغات البرمجة الأخرى. يمكننا استخدام عبارات break وcontinue مع حلقة for لتغيير التنفيذ. ومع ذلك، في بايثون، يمكننا أيضًا، اختياريًا، حظر حلقة أخرى.

اترك تعليقاً

لن يتم نشر عنوان بريدك الإلكتروني. الحقول الإلزامية مشار إليها بـ *

قد يعجبك أيضاً