حل تمرین مقلوب عدد در پایتون


سوال

در پایتون کدی بنویسید که یک عدد دلخواه چند رقمی را مقلوب کند. عدد صحیح و بدون اعشار است. می‌توانید بدون دستورات string حلش کنید.

۹۷۱۵۳
>>>
۳۵۱۷۹

دستورات مجاز: لیست، آدرس‌دهی پیشرفته در لیست، گرفتن عدد از کاربر، حلقه تکرار شرطی، ساختار try-except، رشته‌های متنی string، رشته چند خطی، طول رشته، وجود یک عبارت درون رشته، آدرس‌دهی در رشته‌ها، تبدیل رشته‌ها، رشته درون حلقه for، جمع رشته‌ها، ضرب رشته‌ها در عدد، تبدیل رشته به لیست کاراکترها، تبدیل لیست به رشته، تبدیل رشته به لیست کلمه‌ای، حروف بزرگ و کوچک، اثر حروف بزرگ و کوچک بر حالات رمز، حذف کاراکتر از اول و آخر رشته، فرمت‌دهی به رشته‌ها، چاپ نمرات در حالت اتوماتیک، دستور format، فرمت‌دهی با درصد، آپدیت یک حرف در رشته.

خروجی

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

عدد مورد نظر را وارد کنید: ۹۷۱۵۳
عدد مقلوب: ۳۵۱۷۹




reverse_number.py
Visual Studio Code
def reverse_number(n):
    reversed_num = 0
    while n > 0:
        digit = n % 10
        reversed_num = reversed_num * 10 + digit
        n = n // 10
    return reversed_num

try:
    num = int(input("عدد مورد نظر را وارد کنید: "))
    result = reverse_number(num)
    print(f"عدد مقلوب: {result}")
except ValueError:
    print("لطفاً یک عدد صحیح معتبر وارد کنید.")

توضیح خط به خط کد و میزان تورفتگی

خط ۱
def reverse_number(n):

تعریف تابعی به نام reverse_number که یک پارامتر به نام n دریافت می‌کند.

تورفتگی: ندارد (سطح صفر)

خط ۲
reversed_num = 0

متغیر reversed_num با مقدار اولیه صفر تعریف می‌شود تا عدد مقلوب در آن ساخته شود.

تورفتگی: ۴ فاصله (داخل تابع)

خط ۳
while n > 0:

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

تورفتگی: ۴ فاصله (داخل تابع)

خط ۴
digit = n % 10

رقم یکان عدد استخراج می‌شود (باقی‌مانده تقسیم بر ۱۰) و در digit قرار می‌گیرد.

تورفتگی: ۸ فاصله (داخل حلقه while)

خط ۵
reversed_num = reversed_num * 10 + digit

رقم جدید به عدد مقلوب اضافه می‌شود؛ با ضرب در ۱۰ رقم قبلی یک مرتبه بالا می‌رود و رقم جدید در یکان قرار می‌گیرد.

تورفتگی: ۸ فاصله (داخل حلقه while)

خط ۶
n = n // 10

عدد n بر ۱۰ تقسیم صحیح می‌شود تا رقم یکان حذف شده و رقم بعدی به یکان منتقل شود.

تورفتگی: ۸ فاصله (داخل حلقه while)

خط ۷
return reversed_num

عدد مقلوب نهایی از تابع بازگردانده می‌شود.

تورفتگی: ۴ فاصله (داخل تابع)

خط ۸
try:

شروع بلوک try برای مدیریت خطاهای احتمالی هنگام دریافت ورودی از کاربر.

تورفتگی: ندارد (سطح صفر)

خط ۹
num = int(input(“عدد مورد نظر را وارد کنید: “))

ورودی از کاربر گرفته شده و به عدد صحیح تبدیل و در num ذخیره می‌شود.

تورفتگی: ۴ فاصله (داخل try)

خط ۱۰
result = reverse_number(num)

تابع reverse_number با ورودی num فراخوانی شده و نتیجه در result ذخیره می‌شود.

تورفتگی: ۴ فاصله (داخل try)

خط ۱۱
print(f”عدد مقلوب: {result}”)

عدد مقلوب با استفاده از f-string در خروجی چاپ می‌شود.

تورفتگی: ۴ فاصله (داخل try)

خط ۱۲
except ValueError:

در صورت بروز خطای ValueError (مثلاً وقتی کاربر عدد وارد نکند) این بلوک اجرا می‌شود.

تورفتگی: ندارد (سطح صفر)

خط ۱۳
print(“لطفاً یک عدد صحیح معتبر وارد کنید.”)

پیام خطای مناسب به کاربر نمایش داده می‌شود.

تورفتگی: ۴ فاصله (داخل except)


دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *