داليتي سكول -

Daliaty School

   صفحة البيت  |

 

 

 

 

 

بايثون – ôéúåï – python

 

 

 

 

:   موقع محرر الأاكواد -  onlineDGB.com

 

 

 

 الحلقة التكرارية for -  إعادة تنفيذ الأوامر         

 

 

  

 

 

الحلقة التكرارية for

·       نستعمل حلقة for عندما تكون هناك حاجة لتكرار تنفيذ أمر أو عدة أوامر، عدداً معيناً من المرات.

·       عدد مرات تكرار الحلقة معلوم لنا مسبقا، ويجب ذكره في بداية أمر الحلقة.

·       للحلقة يوجد عداد الذي يقوم بعَد عدد مرات تكرارها - تكرار تنفيذ الأمر أو الأوامر.

 

  

 

 

مثال 1( أ ) 

 

for x in range(5):

  print (x)

 

المخرج:

0

1

2

3

4

------------------------------------------------------------------------------------------------

 

مثال 1(ب)

 

for x in range(5):

  print ("Welcome")

 

 

المخرج:

Welcome Welcome

Welcome Welcome

Welcome

 

------------------------------------------------------------------------------------------------

 

مثال 1(ج)

 

for x in range(5):

  print (x,"Welcome")

 

 

المخرج:

0 Welcome

1 Welcome

2 Welcome

3 Welcome

4 Welcome

 

 

·       x - يدعى متغير الحلقة أو عداد الحلقة.

وهو يتقدم بشكل تلقائي (آلي) حسب القيمة المسجلة في المجال range().

في المثال يبدأ من القيمة x=0 وينتهي بالقيمة x=4  (x=0,1,2,3,4)

 

 

·       (عدد)range هو مجال متغير الحلقة أو مجال عداد الحلقة.

المجال يكون أقل بـ 1 من العدد المسجل.

في المثال مجال عداد الحلقة 5 لان range(5)،

لذلك الحلقة تتكرر5 مرات وقيمة x تكون: 0, 1, 2, 3, 4

 

 

 

  

 

 

 مبنى حلقة  for

 

 

for متغير الحلقة in range(المجال):

 

   جسم الحلقة

 

 

بشكل عام، آلية حلقة for في مجال مع قيمة معينة n:

 

for  x  in range(n):

 

  جسم الحلقة

 

في كل دورة للحلقة يتم تعويض القيم:

x = 0, 1, 2, 3, , n-1

وبكل دورة يُنفذ جسم الحلقة.

 

 

  

 

 

مثال2

 

نريد طباعة الأعداد الصحيحة في المجال بين 0 و 10 (لا يشمل 10)

 

for k in range(10):

  print (k, end=' ')

 

المخرَج:

0 1 2 3 4 5 6 7 8 9

 

في المثال  يُعبر عن مجال عداد الحلقة 0, 1, 2, … 9

الكود end=' ' وظيفته إبقاء الطباعة على نفس السطر.

 

  

 

 

مثال3

 

n = 7

for k in range(n):

  print (k, end=' ')

 

المُخرج:   0  1  2  3  4  5  6

 

  

 

 

مثال 4

نعرض على الشاشة، ضرب الأعداد التي في المجال بين 0 و 10 بـ 2 (لا يشمل 10).

الفكرة: نَمُر على الأعداد من 0 حتى 9، ونضرب كل عدد بـ 2.

 

for x in range(10):

  print (x*2, end=' ')

 

 

المُخرج:    0 2 4 6 8 10 12 14 16 18

 

توضيح:

 

 z * 2

x

0 * 2 = 0

0

1 * 2 = 2

1

2 * 2 = 4

2

3 * 2 = 6

3

4 * 2 = 8

4

5 * 2 = 10

5

6 * 2 = 12

6

7 * 2 = 14

7

8 * 2 = 16

8

9 * 2 = 18

9

 

 

 

 

تحديد مجال جزئي للحلقة    

 

 

 

 

range(start, end, step):

 

·       startendstep

جميعها من نوع int فقط

·       القفزة step ممكن أن تكون سالبة.

 

مثال:

range(3,9,2): ==> 3, 5, 7

 

 

range(start, end):

 

·       لم نحدد القفزة، القفزة هنا تلقائية 1 ، step=1

range(start, end, 1):

مثال:

range(3,9): ==> 3, 4, 5, 6, 7, 8

 

 

 

range(end):

 

·       لم نحدد البداية، البداية هنا تلقائية 0 ،  start=0

·       لم نحدد القفزة، القفزة هنا تلقائية 1 ، step=1

        range(0, end, 1):

·       0,1,2,3,…,end-1

مثال:

range(9): ==>0,1,2,3,4,5,6,7,8

 

 

 

  

 

 

مثال 5

نطبع على الشاشة الأعداد من 1 وحتى 10 (يشمل 10).

نحدد من أي عدد نبدأ وبأي عدد ننهي تنفيذ الحلقة.

 

for n in range(1, 11):

  print (n, end=' ')

 

 

مخرج:   1  2  3  4  5  6  7  8  9  10

 

 

  

 

مثال 6

 

for x in range(3, 14):

  print (x, end=' ')

 

المُخرج :   3  4  5  6  7  8  9  10  11  12  13

 

 

  

 

 

مثال 7

نريد طباعة الأعداد الزوجية بين 1 و- 20 (يشمل)

 

for k in range(2, 21, 2):

  print (k, end=' ')

 

المُخرج: 2 4 6 8 10 12 14 16 18 20

 

الأمر في الحلقة معناه: إبدا من 2 وحتى 20 (وليس 21، دائما أقل بــ 1) والقفزة 2.

 

 

  

 

 

مثال 8

نطبع الأعداد من 5 وحتى 50 مع قفزات 5:

 

for k in range(5, 51, 5):

  print (k, end=' ')

 

 

المخرج:

5  10  15  20  25  30  35  40  45  50

 

 

  

 

مثال 9

حلقة في مجال تنازلي مع قفزات 

 

for k in range(10, 3, -1):

  print (k)

 

 

المُخرج:

10  9  8  7  6  5  4 

 

 

  

 

مثال 10

حلقة في مجال تنازلي مع قفزات:  

 

for k in range(0, -10, -2):

  print (k)

 

 

المُخرج:

0 -2 -4 -6 -8

 

 

 

تمارين     

 

 

 

سؤال1

 

أكتب برنامج يقرأ أسمك، وبعدها يقوم بالترحاب بك 5 مرات

 

مثال لمخرج:

name = "Amer"

 

welcome Amer

welcome Amer

welcome Amer

welcome Amer

welcome Amer

 

 

الحل:

name = input("name=")

for k in range (5):

  print ("welcome", name)

 

 

 

  

 

 

سؤال 2

 

اكتب الأمر التالي بشكل مختصر بدون تحديد القفزة:

 

for x in range(0, 4, 1)

 

 

الحل:

for x in range(0 , 4)

 

 

أو: 

for x in range(4)  

 

 

  

 

 

سؤال3

أكتب برنامج يقرأ عدد بين 1 و 12 (يشمل)

على البرنامج أن يطبع جدول الضرب لهذا العدد.

 

مثال لتشغيل الكود:

number= 8

 

0 * 8 = 0

1 * 8 = 8

2 * 8 = 16

3 * 8 = 24

4 * 8 = 32

5 * 8 = 40

6 * 8 = 48

7 * 8 = 56

8 * 8 = 64

9 * 8 = 72

 

الحل:

x = int(input("number="))

for w in range(10):

  print ( w,"*",  x, "=", w*x)

 

 

 

 

  

 

 

سؤال4

جد المخرج الناتج من الكود التالي:

 

0  0   

1  1   

2  4  

3  9   

4  16

Done   

for x in range(5):

  print (x, x**2)

print ("done")

 

 

 

  

 

 

سؤال 5     (îöâú éåí òéåï 2017, ôééúåï ìëéúä è)

 

( أ ) أمامكم مقطع برمجي، جد المخرج.

 

for temp in range(1, 20, 2):

  print (temp, end=' ')

print ("temp")

 

 

المخرج (ôìè) :  1 3 5 7 9 11 13 15 17 19 temp

 

 

 

(ب) معطى المخرج، أكمل الناقص في الكود

      المخرج:  -10 -8 -6 -4 -2 0 2 4 6 8

 

for x in range(-10, 10, 2):

 

  print (x, end=' ')

 

 

  

 

 

سؤال6 (áðåñó âí ìîöâú éåí òéåï 2017, ôéúåï ìëéúä è)

 

 

ماذا سيطبع في كل واحد من المقاطع البرمجية التالية: 

 

 

 

0 1 2 3 4 

for x in range(5):

   print (x)

(أ)

 

0   1   2   3

for c in range(0, 4):

  print (c)

 

 

1  4  7     

for x in range(1, 10 ,3):

   print (x)

(ب)

 

0   2   4      

for c in range(0, 5, 2):

  print (c)

(ت)

 

5   4   3   2

for c in range(5, 1, -1):

  print (c)

 

 

9  8  7     

for c in range(9, 6, -1):

  print (c)

(ث)

 

لا يطبع شيء

for c in range(3, 1, 1):

  print (c)

(ج)

 

لا يطبع شيء

for c in range(0):

  print (c)

(ح)

 

   0                         

for c in range(1):

  print (c)

(خ)

 

   2                

for c in range(2, 3):

  print (c)

(د)

 

6 7 8 9 10 11 12

x = 6

for x in range(x, 2*x+1):

  print (x)

(ذ)

 

 

   6                    

x = 6

for x in range(x, 2*x, x):

  print (x)

(ر)

 

 

1   3   5   7   9

for x in range(1, 6):

  print (2*x-1)

 

 

 

  

 

 

 

 

 

   

 

 

 

   

 

 

 

Daliaty School – Copywrite  2023

wahbem@gmail.com | https://daliaty.com

 

 

 

 

 

<meta name="viewport" content="width=device-width, initial-scale=1">