4! = 4 x 3 x 2 x 1 = 24
10! = 10 x 9 x 8 x 7 x 6 x 5 x 4 x 3 x 2 x 1
n! = n x (n-1) x (n-2) x (n-3) x….3 x 2 x 1
n = n*num
num -=1
print n
]]>
كود بسيط جدا أليس كذلك؟
1- إستقبلنا مدخلات المستخدم و حولناها إلى أرقام و وضعناها في متغير num
2- قمنا بتعريف متغير جديد n و الذي سيحوي ناتج عمليات الضرب
3- أنشأنا حلقة تكرارية while تعتمد على مدخلات المستخدم(المتغير num) و التي ستتحقق من أن المتغير أكبر أو تساوي الواحد.
4- قمنا بضرب المتغير n في مدخلات المستخدم و حفظ الناتج في المتغير n بمعنى آخر فإن مفسر بايثون سيقوم بضرب قيمة المتغير num(مدخلات المستخدم) في قيمة المتغير n و هي في هذه الحالة تساوى الواحد،حاصل عملية الضرب سيتم وضعها في المتغير n و بالتالي فإن قيمة المتغير ستتغير و تصبح n x num.بعد ذلك سيقوم مفسر البايثون في السطر الخامس بطرح 1 من قيمة المتغير num الذي ﻻ يزال يحوي مدخلات المستخدم و بالتالي ستصبح قيمته كالتالي num = num-1.
بعدها تعود الحلقة التكرارية لتتحقق من المتغير num إن كان أكبر أو تساوي الواحد أم ﻻ،إن لم تكن كذلك ستتوقف الحلقة عن العمل و يتم طباعة حاصل العملية(المتغير n) أما إن كانت أكبر من الواحد فستقوم الحلقة التكرارية بنفس العملية حتى تصل قيمة num إلى 1.
هذه الكتابة num -=1 معناها num = num -1.
و لكن ماذا لو قام المستخدم بإدخال 1 أو 0 كمدخلات،هنا علينا التحقق من المدخلات قبل الدخول في الحلقة التكرارية عن طريق إستخدام الشروط.
تلميح: إن قام المستخدم بإدخال 0 أو 1 علينا أن نقوم بطباعة 1 كمخرجات للعملية بدون الدخول في حلقة تكرارية.
سأترك لكم مهمة كتابة كود التحقق من المدخلات،دمتم بود،سلام