تبدیل سلسیوس به فارنهایت در پایتون

آسانورودی، خروجی و محاسبه

صورت سؤال

برنامه‌ای بنویسید که دمای هوا را به درجهٔ سلسیوس از ورودی بخواند و معادل آن را به فارنهایت چاپ کند.

دمای ورودی ممکن است اعشاری باشد. جواب را با یک رقم اعشار چاپ کنید.

ورودی نمونه

36.6

خروجی نمونه

97.9

خودتان امتحان کنید

کد را در ویرایشگر زیر کامل کنید و اجرا کنید. ورودی نمونه در کادر ورودی آماده است و بعد از هر اجرا، خروجی شما با خروجی نمونه مقایسه می‌شود.

Ctrl + Enter
خروجی

کد را اجرا کنید تا خروجی آن اینجا نمایش داده شود.

راهنمایی

فرمول تبدیل c * 9 / 5 + 32 است. برای چاپ با یک رقم اعشار از f-string و قالب :.1f استفاده کنید.

جواب و توضیح

بهتر است جواب را بعد از امتحان کردن راه خودتان باز کنید.

نمایش جواب
c = float(input())

f = c * 9 / 5 + 32
print(f"{f:.1f}")

این جواب چطور کار می‌کند؟

چون دما ممکن است اعشاری باشد، ورودی با float() به عدد اعشاری تبدیل شده است. اگر به جای آن از int() استفاده کنید، ورودی ۳۶٫۶ خطا می‌دهد.

ترتیب عملیات در پایتون همان ترتیب ریاضی است: ضرب و تقسیم پیش از جمع انجام می‌شود. پس c * 9 / 5 + 32 بدون پرانتز هم درست حساب می‌شود.

عبارت f"{f:.1f}" عدد را با دقیقاً یک رقم اعشار و با گرد کردن چاپ می‌کند. بدون آن، نتیجهٔ محاسبه با عددهای اعشاری ممکن است چیزی مثل 97.88000000000001 باشد.

راه دوم: گرد کردن با تابع round

c = float(input())

f = c * 9 / 5 + 32
print(round(f, 1))

تابع round خود عدد را گرد می‌کند و برمی‌گرداند، در حالی که قالب :.1f فقط شکل چاپ را تعیین می‌کند. وقتی نتیجه را باز هم در محاسبه لازم دارید، round مناسب‌تر است.

اشتباه‌های رایج

  • عدد ۳۲ را پیش از ضرب اضافه می‌کنند و فرمول به شکل (c + 32) * 9 / 5 درمی‌آید که جواب اشتباه می‌دهد.
  • ورودی را با int() می‌خوانند و برنامه برای دمای اعشاری خطا می‌دهد.
  • به جای 9 / 5 می‌نویسند 9 // 5 که تقسیم صحیح است و ۱ می‌دهد، نه ۱٫۸.

تمرین بعدی

پایتون را قدم‌به‌قدم یاد بگیرید

این تمرین یکی از تمرین‌های پایتون با جواب دینا کد است. در دورهٔ پایتون از صفر هر مفهوم یک درس کوتاه دارد و تمرین هر درس با چند آزمون پنهان نمره می‌گیرد؛ درس‌های اول رایگان است. برای امتحان کد آزاد هم اجرای آنلاین پایتون در دسترس است.