الفصل الاول : أساسيات بايثون
الحلقات loops
الحلقات هي من المواضيع المهمة و العملية في البرمجة، فهي تعني الإستمرار في تنفيذ جزء معين من العبارات بوجود شرط معين، وعندما ينتفي هذا الشرط تتوقف الحلقة عن الدوران.
حلقة while
الصورة العامة :
while الشرط : #--- block بداية--- الأوامر هنا تنفذ إذا تحقق الشرط #--- block نهاية ---
سكربت يشرح حلقة while :
#!/usr/bin/python i = 0 #متغير الحلقة while i < 10 : #--- block بداية--- print i #i إذا تحقق الشرط يطبع المفسر قيمة المتغير i = i + 1 #عداد الحلقة #--- block نهاية ---
ناتج السكربت :
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 - 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
الدرس الرابع : الجملة الشرطية if
الدرس السادس : الكائنات متعددة العناصر (الجزء الأول)
الدرس السابع : الكائنات متعددة العناصر (الجزء الثاني)
