• 0
mohamedz

الدرس الثامن : الحلقات loops (الجزء الأول)

سؤال

الفصل الاول : أساسيات بايثون

الحلقات loops

الحلقات هي من المواضيع المهمة و العملية في البرمجة، فهي تعني الإستمرار في تنفيذ جزء معين من العبارات بوجود شرط معين، وعندما ينتفي هذا الشرط تتوقف الحلقة عن الدوران.

حلقة while

الصورة العامة :

while الشرط :  
#--- block بداية---
الأوامر هنا تنفذ إذا تحقق الشرط
#--- block نهاية ---

سكربت يشرح حلقة while :

#!/usr/bin/python
i = 0 #متغير الحلقة
while i < 10 :
#--- block بداية---
print i #i إذا تحقق الشرط يطبع المفسر قيمة المتغير
i = i + 1 #عداد الحلقة
#--- block نهاية ---

ناتج السكربت :

0

1
2
3
4
5
6
7
8
9

شرح السكربت :

أول شيئ يفعله المفسر هو التحقق من شرط الحلقة i < 10 فإن وجد الشرط محقق يتجه لتنفيد عمل الحلقة و هو print i ثم ينزل إلى تحت فيجد عداد الحلقة i = i + 1 والذي يمكن أيظا كتابته هكذا 1 =+ i فيقوم بإضافة 1 إلى i أي أن i أصبح يساوي 1 ثم يتحقق من الشرط ثانية فيجده محقق لأن 10 > 1 فينفد أمر الحلقة و يطبع عدد 1 ثم ينزل إلى تحت فيجد العداد فيقوم بإضاقة 1 إلى i ثم يتحقق من شرط الحلقة مجددا ..... وهكذا حتى يصبح i يساوي 9 يقوم بطباعته على الشاشة ثم يضيف له 1 و عندما يتحقق من الشرط يجده غير محقق لأن العبارة 10 < 10 عبارة خاطئة فيقوم المفسر بالخروج من الحلقة تماما .

هكذا تعمل الحلقات

سكربت جدول الضرب :

#!/usr/bin/python
i = 1
x = input('Please enter any number : ')
while i <= 12 :
print "%d * %d = %d" % (x, i, x * i)
i += 1

نجد أننا بدلا من كتابة إجراء إظهار حاصل الضرب 12 مرة فقد تمت كتابته مرة واحدة فقط و تولت حلقة while تكرار هذا الإجراء 12 مرة.

نلاحظ وجود الرمز d% و هو رمز الأعداد الصحيحة بين الإقتباسين، و بعد الإقتباسين قمنا بكتابة العلامة % و من ثم كتبنا القيم المراد طبعها في مكان رموز الأعداد الصحيحة بين ()

و الحرص على فصل القيم بالفواصل.

>>> a = "aaaa" # string
>>> print "%s" % a # %s هو string رمز المتغير
aaaa
>>> b = 1.5 # float
>>> print "%f" % b # %f هو float رمز المتغير
1.500000
>>> print "%.2f" % b # قللنا من الاصفار
1.50

سكربت المضروب Factorial :

المضروب هو مجموع حاصل ضرب الرقم مع الرقم الذي يسبقه إلى الرقم واحد :

مضروب 3 يساوي 3 * 2 * 1 = 6

#!/usr/bin/python
Fac = 1
i = Num = input("Please input any number : ")
while i > 1 :
Fac = Fac * i
i = i - 1
print "Factorial of %d is %d" % (Num, Fac)

سكربت يعكس محتويات سلسلة نصية :

#!/usr/bin/python
name = "mohamed"
c = len(name)
i = c - 1
while i >= 0 :
print name[i],
i = i - 1

الوضيفة (len(string تقوم بحساب عدد الحروف الموجودة بال string.

i = c - 1 لان index ال string يبدأ ب 0.

يمكننا الخروج من الحلقة في اي وقت عن طريق break

مثال :

i=10
k=1
while k<i:
print k
k+=1

if k>5:
break

الخرج :

1
2
3
4
5

التمارين

أكتب سكربت يقوم بأخذ إسم من المستخدم ثم يقوم بنسخ علامة * بين كل حرف من إسم المستخدم.

*من فضلكم أريد حلا للتمرين *

فهرس الدورة

الفصل الاول : أساسيات بايثون

دورة بايثون من الصفر الى الاحتراف

الدرس الاول : أمر الطباعة print + التعليقات

الدرس الثاني : المتغيرات Variables

الدرس الثالث : الإدخال Input

الدرس الرابع : الجملة الشرطية if

الدرس الخامس : المقاطع string

الدرس السادس : الكائنات متعددة العناصر (الجزء الأول)

الدرس السابع : الكائنات متعددة العناصر (الجزء الثاني)

الدرس الثامن : الحلقات loops (الجزء الأول)

الدرس التاسع : الحلقات loops (الجزء الثاني)

تم تعديل بواسطه mohamedz
0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

4 إجابة على هذا السؤال .

  • 0

درس رائع اخي

لقد قمت بحل الواجب :sleep:

d=raw_input("Enter :  ")
f=len(d)
i=0
x=""
while i<f:
x+=d[i]+"*"
i+=1
print x

 Enter :  Py4object
P*y*4*o*b*j*e*c*t*

تم تعديل بواسطه Py4object
0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

أخي ممكن ضيف شغلة يمكن انت غفلت عنها

يمكننا الخروج من الحلقة في اي وقت عن طريق break

مثال

 i=10
k=1
while k<i:
print k
k+=1

if k>5:
break

الخرج

1
2
3
4
5

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

أخي ممكن ضيف شغلة يمكن انت غفلت عنها

يمكننا الخروج من الحلقة في اي وقت عن طريق break

مثال

 i=10
k=1
while k<i:
print k
k+=1

if k>5:
break

الخرج

1
2
3
4
5

شكرا عى التنبيه

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

شكرا على الموضوع ، لي رجوع لحل التمرين إن شاء الله 

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

من فضلك سجل دخول لتتمكن من التعليق

ستتمكن من اضافه تعليقات بعد التسجيل



سجل دخولك الان

  • يستعرض القسم حالياً   0 members

    لا يوجد أعضاء مسجلين يشاهدون هذه الصفحة .