Rumah > pembangunan bahagian belakang > Tutorial Python > Bagaimanakah Saya Boleh Menukarkan Integer kepada Rentetan dalam Pangkalan Arbitrari dalam Python?

Bagaimanakah Saya Boleh Menukarkan Integer kepada Rentetan dalam Pangkalan Arbitrari dalam Python?

Patricia Arquette
Lepaskan: 2024-12-03 22:05:16
asal
643 orang telah melayarinya

How Can I Convert Integers to Strings in Arbitrary Bases in Python?

Menukar Integer kepada Rentetan dalam Asas Arbitrari

Dalam Python, integer boleh ditukar dengan mudah daripada rentetan menggunakan fungsi int(str, base) . Walau bagaimanapun, operasi songsang untuk mencipta rentetan daripada integer boleh menjadi lebih mencabar.

Penyelesaian Tersuai untuk Pangkalan Arbitrari

Kod berikut mentakrifkan penyelesaian tersuai, numberToBase, yang boleh menukar sebarang integer n kepada rentetan dalam mana-mana asas b:

def numberToBase(n, b):
    if n == 0:
        return [0]
    digits = []
    while n:
        digits.append(int(n % b))
        n //= b
    return digits[::-1]
Salin selepas log masuk

Fungsi ini berfungsi pada prinsip pembahagian berulang oleh tapak b. Ia berulang kali mengira baki n apabila dibahagikan dengan b dan menambahkannya pada senarai digit. Proses ini berterusan sehingga n menjadi sifar. Digit kemudiannya diterbalikkan untuk mendapatkan perwakilan yang betul dalam asas b.

Contoh Penggunaan

Untuk menukar nombor besar kepada asas 577:

print(numberToBase(67854 ** 15 - 102, 577))
Salin selepas log masuk

Output:

[4, 473, 131, 96, 431, 285, 524, 486, 28, 23, 16, 82, 292, 538, 149, 25, 41, 483, 100, 517, 131, 28, 0, 435, 197, 264, 455]
Salin selepas log masuk

Hasil ini kemudiannya boleh ditukar kepada mana-mana asas lain sebagai diperlukan.

Kelebihan Berbanding Fungsi Terbina dalam

Tidak seperti fungsi terbina dalam seperti bin, okt dan hex, fungsi numberToBase menawarkan beberapa kelebihan:

  • Berfungsi pada mana-mana versi Python (dari 2.2 seterusnya)
  • Menukar kepada mana-mana asas sewenang-wenangnya (tidak terhad kepada 2, 8, atau 16)
  • Mengembalikan senarai digit, membolehkan penukaran mudah kepada asas lain atau perwakilan rentetan

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menukarkan Integer kepada Rentetan dalam Pangkalan Arbitrari dalam Python?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan