Fahmy Mostafa نشر 28 يونيو 2021 أرسل تقرير نشر 28 يونيو 2021 لدي دالة بسيطة تقبل عدد غير محدد من المدخلات الرقمية، كالتالي: def func(*args): # print(len(args), max(args), min(args)) return len(args) or max(args)-min(args) print(func(1, 2, 3, 4, 5, 6, 7, 8, 9, 10)) # 10 لماذا تم اعادة الرقم 10 هنا؟ أليس من المفترض أن يتم إعادة قيمة منطقية True/False ونفس الأمر إن قمت بتغيير or إلى and في الدالة كالتالي: def func(*args): # print(len(args), max(args), min(args)) return len(args) and max(args)-min(args) print(func(1, 2, 3, 4, 5, 6, 7, 8, 9, 10)) # 9 1 اقتباس
2 عبدالله عبدالرحمن11 نشر 28 يونيو 2021 أرسل تقرير نشر 28 يونيو 2021 سنقوم بشرح سلوك اثنين من العوامل المنطقية and و or. وفقاً للتوثيق الرسمي لبايثون العامل المنطقي and سيقوم بإرجاع القيمة الخاطئة الأولى إذا وُجدت ، وإلا سيقوم بإرجاع القيمة الآخيرة في التعبير expression العامل المنطقي or سيقوم بإرجاع القيمة الصائبة الأولى إذا وُجدت ، وإلا سيقوم بإرجاع القيمة الآخيرة في التعبير expression العامل الوحيد الذي يقوم بإرجاع قيمة منطقية بغض النظر عن قيم معاملاته هو العامل المنطقي not اقتباس
1 سمير عبود نشر 28 يونيو 2021 أرسل تقرير نشر 28 يونيو 2021 a or b: يتم إرجاع a إذا كان a يحمل قيمة صواب (True) و إلا سيقوم بإرجاع b و هذا ما يُفسر المثال الأول لك حيث تم إرجاع قيمة len(args) a and b يتم إرجاع b إذا كان a يحمل قيمة صواب (True) و إلا سيقوم بإرجاع a و هذا ما يُفسر المثال الثاني لك حيث تم إرجاع قيمة max(args)-min(args) اقتباس
1 عبدالباسط ابراهيم نشر 28 يونيو 2021 أرسل تقرير نشر 28 يونيو 2021 كما تم الشرح في التعليقات السابقة فإنه المعاملان or و and لا يقوما بإرجاع القيمة ل true أو false إنما يتم إرجاع القيمة من ال expression التي يجب تنفيذها كما تم الشرح بالأعلى وذلك يكون مفيداً في حالات مثل إرجاع قيمة إفتراضية ولكن في حالة أنك تريد تنفيذ المطلوب من برنامجك يمكنك استخدام ()bool كالتالي return bool(len(args) and max(args)-min(args)) اقتباس
السؤال
Fahmy Mostafa
لدي دالة بسيطة تقبل عدد غير محدد من المدخلات الرقمية، كالتالي:
لماذا تم اعادة الرقم 10 هنا؟ أليس من المفترض أن يتم إعادة قيمة منطقية True/False
ونفس الأمر إن قمت بتغيير or إلى and في الدالة كالتالي:
3 أجوبة على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.