اذهب إلى المحتوى

السؤال

نشر

for i in range(1, 101):
    if i%2==0:
        print(i)

لم  افهم السطر الثاني من الكود لكن انا اعرف ان هذا الكود عمله هو ارجاع الاعداد الزوجيه بين 1 الى 100 ولكن انا كتبت الكود بصيغة اخرى هي  كتالي

z = 0
while z < 100:
    z += 2
    print(z)

 

Recommended Posts

  • 0
نشر

علامة النسبة المئوية هي شائعة في العديد من لغات البرمجة, ليس فقط في Python , يحدد الباقي عند القسمة على رقمين , لذا في المثال يتم التحقق من الأرقام الزوجية إذا قسمت على 2, فإن الباقي يساوي 0 , فهو عدد زوجي .

if i%2==0:

تتحقق مما إذا كان الرقم زوجياً.

for i in range(1, 101):
    if i%2==0:
        print(i)

ونتيجة هذا الكود هي 

2
4
6
8
10
12
14
16
18
20
22
24
26
28
30
32
34
36
38
40
42
44
46
48
50
52
54
56
58
60
62
64
66
68
70
72
74
76
78
80
82
84
86
88
90
92
94
96
98
100

 

  • 0
نشر

البرنامح الأول يقوم بإختبار القيم من 0 إلى 100 و التحقق ما إذا كانت زوجية أم فردية بإستخدام العبارة الشرطية if و علامة إيجاد باقي القسمة %:

for i in range(1, 101): #إنشاء قائمة للأعداد تبدأ من 1 و تنتهي عند 100 
#  لاحظ أن قيمة التوقف 101 لأن الدالة تتوقف قبل العدد المحدد بواحد
	if i%2==0: # إلإختبار الشرطي لباقي قسمة العدد إن كان 0 فهو زوجي
        print(i) # طباعة العدد

دالة الإختبار تبدأ من 1 وتختبر باقي قسمته على 2 فهو واحد بذلك ليس عدد زوجي ولن تتم طباعته، و عند الإنتقال للعدد الثاني 2 باقي قسمته تساوي 0 إذن فهمو زوجي تتم طباعته وهكذا حتى باقي الأعداد إلى المئة.

البرنامج الثاني لا يقوم بتطبيق أي شرط تحقق، بل يقوم بطباعة الأرقام إبتداء من صفر بزيادة 2 للرقم السابق:

z = 0 #إنشاء قيمة إبتدائية
while z < 100: #إنشاء الحلقة لكل الأعداد التي تكون أقل من 100 
    z += 2 # إضافة العدد 2 لقيمة المتغير السابقة
    print(z) #طباعة قيمة المتغير

لاحظ أن هذا البرنامج يبدأ بإنشاء متغير z قيمته تساوى 0 وفي حالة كانت أقل من 100 يقوم بالدخول لتنفيذ ما بداخل الحلقة وهي عملية إضافة 2 بالتالي تصبح قيمة z تساوي 2 و تتم طباعتها، الحلقة تستمر لأن z الجديدة أقل ايضاً من 2 بالتالي تتم إضافة 2 مرة أخرى لz و تتم طباعتها و هكذا إلى الوصول لطباعة العدد 100. الأن يمكننا مقارنة نتائج البرنامجين بإستخدام القوائم و لنرى إن كان البرنامجان يعطيان نفس النتائج:

a = []
for i in range(1, 101):
    if i%2==0:
        a.append(i)
b = []
z = 0
while z < 100:
    z += 2
    b.append(z)
    
a == b            

القائمة a تحتوى على كل العناصر المطبوعة في البرنامج الأول و b تحتوى على العناصر المطبوعة في البرنامج الثاني، الإختبار البولياني a==b يعطي True بالتالي فناتج البرنامجين واحد.

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

 

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...