مجموع ارقام یک عدد در پایتون

آسانحلقه

صورت سؤال

برنامه‌ای بنویسید که یک عدد صحیح نامنفی را از ورودی بخواند و مجموع رقم‌های آن را چاپ کند.

مثلاً برای عدد ۴۷۲۸ باید ۲۱ چاپ شود، چون چهار و هفت و دو و هشت روی هم ۲۱ می‌شوند.

ورودی نمونه

4728

خروجی نمونه

21

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

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

Ctrl + Enter
خروجی

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

راهنمایی

n % 10 همیشه رقم یکان را می‌دهد و n // 10 همان رقم را از عدد برمی‌دارد. این دو را در حلقه‌ای تکرار کنید که تا وقتی n بزرگ‌تر از صفر است ادامه پیدا کند.

جواب و توضیح

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

نمایش جواب
n = int(input())

total = 0
while n > 0:
    total += n % 10
    n //= 10

print(total)

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

باقی‌ماندهٔ تقسیم بر ۱۰ همیشه رقم یکان است؛ برای ۴۷۲۸ این باقی‌مانده ۸ است و total آن را جمع می‌زند.

تقسیم صحیح با // بخش اعشاری را دور می‌اندازد. حاصل تقسیم صحیح ۴۷۲۸ بر ۱۰ برابر ۴۷۲ است، پس رقم ۸ از عدد حذف می‌شود و در دور بعد نوبت رقم ۲ است.

وقتی آخرین رقم هم حذف شد، n صفر می‌شود و شرط while دیگر برقرار نیست. اگر ورودی از اول صفر باشد، حلقه اجرا نمی‌شود و همان ۰ چاپ می‌شود که جواب درست است.

راه دوم: کار با رقم‌ها به شکل متن

s = input().strip()

print(sum(int(ch) for ch in s))

این روش ورودی را به عدد تبدیل نمی‌کند و روی حرف‌های رشته حلقه می‌زند؛ هر حرف را با int() به رقم تبدیل می‌کند و sum همه را جمع می‌زند. کوتاه‌تر است، اما راه اول همان چیزی است که در امتحان‌ها معمولاً می‌خواهند.

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

  • به‌جای // از / استفاده می‌کنند؛ حاصل اعشاری می‌شود و جواب غلط درمی‌آید.
  • بعد از حلقه می‌خواهند عدد اصلی را چاپ کنند، در حالی که n در حلقه صفر شده است.
  • خروجی input() را بدون int() در حلقه به کار می‌برند و خطای TypeError می‌گیرند.

تمرین بعدی

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

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