Kahibaro
Discord Login Register

کار با اعداد

انواع نمایش عددی در پایتون

در فصل «اعداد (int، float)» با خودِ نوع‌های عددی آشنا می‌شوید. در این بخش تمرکز روی «کار عملی با اعداد» است؛ یعنی این‌که در برنامه‌های روزمره چطور با اعداد سر و کار داشته باشیم و از امکانات آمادهٔ پایتون استفاده کنیم.

اعداد صحیح و اعشاری در عمل

چند نکتهٔ عملی در کار با int و float:

  print(5 / 2)   # 2.5
  print(4 / 2)   # 2.0
  print(5 // 2)  # 2
  print(7 // 3)  # 2
  print(5 % 2)   # 1
  print(10 % 3)  # 1
  print(2 ** 3)   # 8
  print(10 ** 2)  # 100

تبدیل بین نوع‌های عددی

گاهی لازم است یک عدد صحیح را به اعشاری تبدیل کنیم یا برعکس. این کار با توابع سازندهٔ نوع انجام می‌شود:

  x = 3.9
  print(int(x))   # 3
  y = -2.7
  print(int(y))   # -2
  a = 5
  print(float(a))     # 5.0
  b = "12.5"
  print(float(b))     # 12.5

اگر تبدیل از رشته (str) انجام می‌دهید، رشته باید یک عدد معتبر باشد، وگرنه خطا می‌گیرید:

s = "123"
print(int(s))     # 123
t = "abc"
print(int(t))     # خطا: ValueError

اعداد منفی و قدر مطلق

  a = -5
  b = 10
  c = b - 3   # 7
  d = b - a   # 15  (چون b - (-5) = 10 + 5)
  print(abs(-5))   # 5
  print(abs(3))    # 3
  print(abs(-2.7)) # 2.7

گرد کردن اعداد اعشاری

در محاسبات واقعی معمولاً نمی‌خواهیم تعداد زیادی رقم اعشار ببینیم. تابع round() برای گرد کردن است.

گرد کردن ساده

اگر فقط یک عدد به round() بدهید، به نزدیک‌ترین عدد صحیح گرد می‌کند:

print(round(3.2))   # 3
print(round(3.6))   # 4
print(round(2.5))   # 2 (رفتار پیش‌فرض پایتون)
print(round(3.5))   # 4

توجه: در پایتون، اعداد نیمه (مثل 2.5، 3.5 و ...) همیشه به نزدیک‌ترین عدد زوج گرد می‌شوند. این برای محاسبات آماری مفید است.

گرد کردن به تعداد رقم مشخص

اگر آرگومان دوم را هم بدهید، تعیین می‌کنید چند رقم بعد از ممیز نگه داشته شود:

x = 3.14159265
print(round(x, 2))  # 3.14
print(round(x, 3))  # 3.142
print(round(x, 0))  # 3.0

ترتیب انجام عملیات (اولویت عملگرها)

وقتی چند عمل حسابی پشت سر هم می‌نویسید، ترتیب انجام آن‌ها مهم است. پایتون از این ترتیب پیروی می‌کند:

  1. پرانتزها ()
  2. توان **
  3. ضرب و تقسیم و تقسیم صحیح و باقی‌مانده * ،/ ،// ،%
  4. جمع و تفریق + ،-

مثال:

result1 = 2 + 3 * 4
print(result1)  # 14  (چون 3 * 4 اول حساب می‌شود)
result2 = (2 + 3) * 4
print(result2)  # 20  (چون پرانتز اول حساب می‌شود)
result3 = 2 ** 3 * 4
print(result3)  # 32  (چون توان قبل از ضرب است: 2 ** 3 = 8، بعد 8 * 4)
result4 = 10 - 6 / 3 + 2
# اول 6 / 3 = 2.0، بعد 10 - 2.0 + 2 = 10.0
print(result4)  # 10.0

برای خوانایی و جلوگیری از اشتباه، بهتر است از پرانتز استفاده کنید؛ حتی اگر بدانید اولویت چطور است.

استفاده از اعداد در متغیرها و به‌روزرسانی آن‌ها

کار معمول با اعداد این است که مقدارشان در طول برنامه تغییر کند (مثل امتیاز بازی، موجودی حساب، شمارنده، و ...).

جمع کردن و کم کردن روی یک متغیر

score = 0        # امتیاز اولیه
score = score + 10
score = score + 5
print(score)     # 15

پایتون برای این حالت‌های رایج میان‌بُر (عملگر ترکیبی) دارد:

مثال:

count = 0
count += 1   # count = 1
count += 1   # count = 2
count -= 1   # count = 1
print(count)

این میان‌بُرها در حلقه‌ها و محاسبات تکراری بسیار پرکاربرد هستند.

خطای رایج با اعداد اعشاری (خطای نمایش)

در رایانه‌ها بعضی اعداد اعشاری را نمی‌توان دقیقاً نمایش داد. به همین دلیل گاهی نتیجه‌هایی مثل این می‌بینید:

print(0.1 + 0.2)   # ممکن است 0.30000000000000004 چاپ شود

این رفتار طبیعیِ نمایش دودویی اعداد اعشاری است و مخصوص پایتون نیست. برای بیشتر کارهای روزمره می‌توانید با round() نتیجه را مرتب کنید:

x = 0.1 + 0.2
print(round(x, 2))   # 0.3

اگر بعداً در علم داده یا کارهای مالی حرفه‌ای‌تر کار کنید، روش‌های دقیق‌تری را یاد می‌گیرید؛ در این مرحله فقط لازم است تعجب نکنید و بدانید این یک «اشتباهِ محاسباتی» نیست، فقط «نحوهٔ نمایش» است.

تابع‌های عددی سادهٔ پرکاربرد

علاوه بر عملگرها، خودِ پایتون چند تابع ساده و مفید برای کار با اعداد دارد (بدون نیاز به کتابخانهٔ اضافی):

مثال‌های ساده:

a = 5
b = 12
c = -3
print(max(a, b, c))   # 12
print(min(a, b, c))   # -3
numbers = [1, 2, 3, 4, 5]
print(sum(numbers))   # 15

تابع‌های عددی پیشرفته‌تر (مثل ریشهٔ دوم، سینوس، و ...) در فصل «کتابخانه‌های استاندارد» و زیرعنوان math معرفی می‌شوند.

چند تمرین پیشنهادی

برای تمرین کار با اعداد، می‌توانید برنامه‌های بسیار کوچک زیر را بنویسید:

  1. برنامه‌ای که طول و عرض مستطیل را بگیرد و محیط و مساحت آن را حساب کند.
  2. برنامه‌ای که یک مبلغ را بگیرد و ۹٪ مالیات به آن اضافه کند و مقدار نهایی را نمایش دهد (با round تا ۲ رقم اعشار).
  3. برنامه‌ای که یک عدد بر حسب دقیقه دریافت کند و آن را به ساعت و دقیقه تبدیل کند (مثلاً ۱۳۵ دقیقه → ۲ ساعت و ۱۵ دقیقه، با استفاده از // و %).
  4. برنامه‌ای که سه عدد بگیرد و بیشترین و کمترین آن‌ها را چاپ کند (با استفاده از max و min).

Views: 7

Comments

Please login to add a comment.

Don't have an account? Register now!