پایتون ترفند

بسم الله الرحمن الرحیم

پایتون ترفند

بسم الله الرحمن الرحیم

سلام خوش آمدید

تبدیل مبنا در پایتون---قسمت سوم

جمعه, ۱۴ مهر ۱۴۰۲، ۰۸:۲۰ ق.ظ

بسم الله الرحمن الرحیم 

سلام به همه شما

امروز میخوایم تبدیل مبنا رو ادامه بدیم.

خب، برای اول کار به کد زیر نگاه بندازین:

def base10to(number,base):
    number = int(number)
    if number == 0 or base == 10:
        return "0"
    result = []
    while number != 0:
        result.append(str(
        	number%base
        	))
        number = number // base
    return ":".join(result[::-1])
def tobase10(number,base):
    if number=="0" or base == 10:
        return int(number)
    number = number.split(":")
    result = 0
    ind = len(number)-1
    for num in number:
        result += int(num) * (base**ind)
        ind -=1
    return str(result)

خب، تابع اول رو قبلاً توضیح داده بودم پس اینجا دوباره توضیح کامل نمیدم.

اما در تابع اول از تقسیمات متوالی بر مبنا استفاده کرده بودیم. مثلا فرض کنید میخوایم ۲۷ در مبنای ده رو به معادلش در مبنای دو تبدیل کنیم.

اول ۲۷ تقسیم بر دو میشه ۱۳ و یکی باقی میاره.

بعد ۱۳ تقسیم بر دو میشه ۶ با یک باقی مانده

شش تقسیم بر دو میشه۳ و چیزی باقی نمیاره.

۳ تقسیم بر دو میشه یک و یکی باقی میاره

یک تقسیم بر دو میشه صفر و یکی باقی مانده میاره.

حالا از راست به چپ باقی مانده هارو می نویسیم : ۱۱۰۱۱

خب ایم روش کارش بود البته تو کد گفتم بین ارقام رو با : جدا کنه.

 

تابع دوم

خب حالا رسیدیم به تابع دوم.

در این تابع ارزش عددی رو حساب می کنیم.

اول میگه اگه عدد صفر بود یا مبناش برابر ۱۰ بود خودشو برگردونه.

بعدش با استفاده از : رشته رو به لیست تبدیل می کنیم.

نتیجه نهایی رو ۰ در تظر گرفتم. چوم رقم ها از چپ به راسته پس سمت چپی ترین رقم اگه چهارمین باشه ارزشش برابر ۳ هست ( یکی کمتر) و اینو تو متغیر ind ذخیره کردم.

حالا برای محاسبه ارزش عددی از یه فرمول ثابت استفاده میشه. جمع ارزش تمام ارقام. حالا این چطور به دست میاد؟

ارزش هر رقم برابر است با :

number * (base ** ind)

یعنی چی؟ number که رقم ما هست. base هم مبنا و ind هم ارزش اون رقم.

خب از جمع ارزش تمام ارقام، عدد در مبنای ۱۰ به دست میاد.

 

نکته دوم:

یادتونه تو مطلب قبل از حروف استفاده کرده بودیم و دیگه : رو نداشتیم؟

خب آیا میشه جای حروف انگلیسی از حروف فارسی استفاده کرد؟ بله! 

 

دوستان این مطلب کمی کوتاه بود اما پیش زمینه ای خوب بود.

پس فعلا خدانگهدار!

نظرات (۰)

هیچ نظری هنوز ثبت نشده است

ارسال نظر

ارسال نظر آزاد است، اما اگر قبلا در بیان ثبت نام کرده اید می توانید ابتدا وارد شوید.
شما میتوانید از این تگهای html استفاده کنید:
<b> یا <strong>، <em> یا <i>، <u>، <strike> یا <s>، <sup>، <sub>، <blockquote>، <code>، <pre>، <hr>، <br>، <p>، <a href="" title="">، <span style="">، <div align="">
تجدید کد امنیتی

بسم الله الرحمن الرحیم. سلام دوست عزیز. اینجا پایتون ترفنده! شاید بعضی وقتا مطالبی اینجا بگذارم!حالا تو میتونی جستجو کنی!

آخرین نظرات