پیدا کردن بزرگترین عدد بین سه عدد در پایتون
برای پیدا کردن بزرگترین عدد از بین سه عدد، هر عدد را با دو عدد دیگر مقایسه کنید: اگر از هیچکدام کوچکتر نبود، همان جواب است. در پایتون این کار با if و elif و else انجام میشود و تابع max هم همین را در یک خط میدهد.
صورت سؤال
برنامهای بنویسید که سه عدد صحیح را در سه خط بخواند و بزرگترین آنها را چاپ کند.
عددها ممکن است با هم برابر باشند؛ در این حالت همان مقدار مشترک را چاپ کنید. برای تمرین، راه اول را بدون تابع max بنویسید.
ورودی نمونه
8 -3 15
خروجی نمونه
15
خودتان امتحان کنید
کد را در ویرایشگر زیر کامل کنید و اجرا کنید. ورودی نمونه در کادر ورودی آماده است و بعد از هر اجرا، خروجی شما با خروجی نمونه مقایسه میشود.
کد را اجرا کنید تا خروجی آن اینجا نمایش داده شود.
راهنمایی
با if بررسی کنید که a از b و c کوچکتر نباشد. اگر نبود، همین مقایسه را با elif برای b انجام دهید؛ حالت باقیمانده c است.
جواب و توضیح
بهتر است جواب را بعد از امتحان کردن راه خودتان باز کنید.
نمایش جواب
a = int(input())
b = int(input())
c = int(input())
if a >= b and a >= c:
largest = a
elif b >= a and b >= c:
largest = b
else:
largest = c
print(largest)این جواب چطور کار میکند؟
شرط اول بررسی میکند که a از هیچکدام از دو عدد دیگر کوچکتر نباشد. and یعنی هر دو مقایسه باید درست باشند. اگر این شرط برقرار باشد، a بزرگترین است و بقیهٔ شاخهها بررسی نمیشوند.
اگر a بزرگترین نبود، elif همین سؤال را دربارهٔ b میپرسد. اگر هیچکدام از دو شرط درست نبود، تنها گزینهٔ باقیمانده c است و else آن را انتخاب میکند.
استفاده از >= به جای > باعث میشود عددهای برابر هم درست کار کنند. اگر a و b هر دو ۵ باشند و c کوچکتر، با > هیچکدام از دو شرط درست نمیشد و برنامه به اشتباه c را انتخاب میکرد.
راه دوم: تابع max
a = int(input()) b = int(input()) c = int(input()) print(max(a, b, c))
تابع داخلی max هر تعداد مقدار را میگیرد و بزرگترین را برمیگرداند. در برنامهٔ واقعی از همین راه استفاده کنید؛ نوشتن مقایسهها با دست برای فهمیدن منطق شرط مفید است.
اشتباههای رایج
- از > به جای >= استفاده میکنند و وقتی دو عدد بزرگتر با هم برابرند، جواب اشتباه میشود.
- هر عدد را فقط با یک عدد دیگر مقایسه میکنند؛ مثلاً اگر a از b بزرگتر باشد، a را جواب میدانند و c را فراموش میکنند.
- ورودیها را به int() تبدیل نمیکنند و رشتهها حرف به حرف مقایسه میشوند؛ آن وقت رشتهٔ ۹ از رشتهٔ ۱۵ بزرگتر به حساب میآید.
تمرین بعدی
پایتون را قدمبهقدم یاد بگیرید
این تمرین یکی از تمرینهای پایتون با جواب دینا کد است. در دورهٔ پایتون از صفر هر مفهوم یک درس کوتاه دارد و تمرین هر درس با چند آزمون پنهان نمره میگیرد؛ درسهای اول رایگان است. برای امتحان کد آزاد هم اجرای آنلاین پایتون در دسترس است.