تصبح الدوال أكثر فائدة عندما تعيد (return) قيمًا بدل أن تكتفي بطباعتها. جرّب المثال التالي:
__program_indented__
مررنا المتغير number، وقيمته 5، إلى الدالة double باعتباره الوسيط x. أعادت الدالة double قيمة x 2، أي 5 2، أي 10، ثم أصبحت هذه القيمة هي قيمة المتغير twice.
الكلمة المحجوزة return داخل double تجعل التعبير double(number) نفسه يملك قيمة، وهي تحديدًا القيمة التي أعادتها الدالة. يمكنك تقريب الفكرة ذهنيًا بأن twice = double(number) يشبه twice = number * 2، مع أن التنفيذ الفعلي ليس مطابقًا حرفيًا لذلك.
لاحظ أيضًا أن double(number)لم تغيّر number. في النهاية تظل قيمة number هي 5. الدالة أعادت قيمة جديدة، وكان من الضروري أن يستخدم البرنامج هذه القيمة، مثل تخزينها في متغير. ويمكن أيضًا استخدامها مباشرة مثل print(double(number)).
جرّب الآن:
__program_indented__
في المثال السابق ما زالت double(number) تعيد 10، لكننا لم نستخدم القيمة المعادة، فضاعت ببساطة، وظلت قيمة number هي 5.
اكتب دالة اسمها quadruple تستقبل معاملًا واحدًا x وتعيد هذا المعامل مضروبًا في 4.
يجب أن تعتمد داخل جسم quadruple على الدالة double فقط؛ لا يُسمح بكتابة أعداد أو استخدام عملية الضرب مباشرة داخل جسم quadruple. فكّر في الضرب في 4 على أنه مضاعفة القيمة مرتين، وتأكد من استخدام القيمة المعادة من كل استدعاء.
أحسنت! إليك حلين ممكنين:
def quadruple(x): x = double(x) x = double(x) return x