تعلم لغة البايثون – الدرس الثامن الحلقات في بايثون python loops

0

هناك نوعان من الحلقات في Python ، لفترة وجيزة.

حلقة “for”

لتكرار الحلقات عبر تسلسل معين. هنا مثال:

primes = [2, 3, 5, 7]
for prime in primes:
    print(prime)

بالنسبة إلى الحلقات ، يمكنك التكرار عبر سلسلة من الأرقام باستخدام الدالتين “range” و “xrange”. الفرق بين النطاق و xrange هو أن دالة النطاق تقوم بإرجاع قائمة جديدة بأرقام من هذا النطاق المحدد ، في حين أن xrange يرجع مكررًا ، وهو أكثر كفاءة. (يستخدم Python 3 وظيفة النطاق ، والتي تعمل مثل xrange). لاحظ أن دالة النطاق قائمة على الصفر

مثال

# يطبع الأرقام 0،1،2،3،4
for x in range(5):
    print(x)

# يطبع 3،4،5
for x in range(3, 6):
    print(x)

# يطبع 3،5،7
for x in range(3, 8, 2):
    print(x)

سنحصل على النتيجة التالية عند التشغيل

0
1
2
3
4
3
4
5
3
5
7

حلقات “while”

بينما تتكرر الحلقات طالما تم استيفاء حالة منطقية معينة. فمثلا:

مثال

# يطبع 0،1،2،3،4

count = 0
while count < 5:
    print(count)
    count += 1  # This is the same as count = count + 1

سنحصل على النتيجة التالية عند التشغيل

0
1
2
3
4

عبارات “break” و “continue”

يتم استخدام الفاصل للخروج من حلقة متكررة أو حلقة من الوقت ، بينما يتم استخدام المتابعة لتخطي الكتلة الحالية ، والعودة إلى العبارة “for” أو “while”. بعض الأمثلة:

# يطبع 0،1،2،3،4

count = 0
while True:
    print(count)
    count += 1
    if count >= 5:
        break

# يطبع الأرقام الفردية فقط - 1،3،5،7،9
for x in range(10):
# تحقق مما إذا كانت x متساوية
    if x % 2 == 0:
        continue
    print(x)

سنحصل على النتيجة التالية عند التشغيل

0
1
2
3
4
1
3
5
7
9

هل يمكننا استخدام جملة “else” للحلقات؟

خلافا للغات مثل C ، CPP .. يمكننا استخدام حلقات أخرى. عندما يفشل الشرط التكراري لعبارة “for” أو “while” ، يتم تنفيذ جزء التعليمات البرمجية في “else”. إذا تم تنفيذ عبارة break داخل الحلقة ، فسيتم تخطي جزء “آخر”. لاحظ أنه يتم تنفيذ جزء “آخر” حتى إذا كان هناك بيان متابعة.

وفيما يلي بعض الأمثلة على ذلك

# يطبع 0،1،2،3،4 ثم يطبع "قيمة العد وصلت 5"

count=0
while(count<5):
    print(count)
    count +=1
else:
    print("count value reached %d" %(count))

# يطبع 1،2،3،4
for i in range(1, 10):
    if(i%5==0):
        break
    print(i)
else:
    print("this is not printed because for loop is terminated because of break but not due to fail in condition")

سنحصل على النتيجة التالية عند التشغيل

0
1
2
3
4
count value reached 5
1
2
3
4

تمرين

قم بالمرور خلال جميع الأرقام الزوجية وطباعتها من قائمة الأرقام بنفس الترتيب الذي تم استلامها به. لا تطبع أي أرقام تأتي بعد 237 في التسلسل

numbers = [
    951, 402, 984, 651, 360, 69, 408, 319, 601, 485, 980, 507, 725, 547, 544,
    615, 83, 165, 141, 501, 263, 617, 865, 575, 219, 390, 984, 592, 236, 105, 942, 941,
    386, 462, 47, 418, 907, 344, 236, 375, 823, 566, 597, 978, 328, 615, 953, 345,
    399, 162, 758, 219, 918, 237, 412, 566, 826, 248, 866, 950, 626, 949, 687, 217,
    815, 67, 104, 58, 512, 24, 892, 894, 767, 553, 81, 379, 843, 831, 445, 742, 717,
    958, 609, 842, 451, 688, 753, 854, 685, 93, 857, 440, 380, 126, 721, 328, 753, 470,
    743, 527
]

# رمزك هنا

الحل

numbers = [
    951, 402, 984, 651, 360, 69, 408, 319, 601, 485, 980, 507, 725, 547, 544,
    615, 83, 165, 141, 501, 263, 617, 865, 575, 219, 390, 984, 592, 236, 105, 942, 941,
    386, 462, 47, 418, 907, 344, 236, 375, 823, 566, 597, 978, 328, 615, 953, 345,
    399, 162, 758, 219, 918, 237, 412, 566, 826, 248, 866, 950, 626, 949, 687, 217,
    815, 67, 104, 58, 512, 24, 892, 894, 767, 553, 81, 379, 843, 831, 445, 742, 717,
    958, 609, 842, 451, 688, 753, 854, 685, 93, 857, 440, 380, 126, 721, 328, 753, 470,
    743, 527
]

# رمزك هنا
for number in numbers:
    if number == 237:
        break

    if number % 2 == 1:
        continue

    print(number)

سنحصل على النتيجة التالية عند التشغيل

<script.py> output:
    402
    984
    360
    408
    980
    544
    390
    984
    592
    236
    942
    386
    462
    418
    344
    236
    566
    978
    328
    162
    758
    918

الدرس التاسع

اترك رد

لن يتم نشر عنوان بريدك الإلكتروني.