Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimanakah saya boleh mencapai penjajaran lebar tetap rentetan bercetak dalam Python?

Bagaimanakah saya boleh mencapai penjajaran lebar tetap rentetan bercetak dalam Python?

Linda Hamilton
Linda Hamiltonasal
2024-11-05 22:32:02727semak imbas

How can I achieve fixed-width alignment of printed strings in Python?

Mencetak Rentetan dengan Penjajaran Lebar Tetap

Dalam pengaturcaraan, selalunya wajar untuk menjajarkan rentetan dalam lajur tetap untuk kejelasan dan organisasi visual. Artikel ini meneroka cara untuk mencapai ini menggunakan teknik pemformatan lanjutan dalam Python.

Masalah: Menjajarkan Nilai Rentetan Tidak Sekata

Pertimbangkan kod berikut yang mengira kekerapan semua pilih atur dalam rentetan tertentu:

# Original code to generate permutations
...

# Printing results
unique = sorted(set(el))
for prefix in unique:
    if prefix != "":
        print("value  ", prefix, "- num of occurrences =   ", string.count(str(prefix)))

Walau bagaimanapun, output mungkin kelihatan tidak sejajar disebabkan oleh panjang rentetan yang berbeza-beza:

value   a - num of occurrences =    1
value   ab - num of occurrences =    1
value   abc - num of occurrences =    1
value   b - num of occurrences =    1
value   bc - num of occurrences =    1
value   bcd - num of occurrences =    1
value   c - num of occurrences =    1
value   cd - num of occurrences =    1
value   d - num of occurrences =    1

Penyelesaian Menggunakan str.format

Untuk menjajarkan output, kita boleh menggunakan str .kaedah format dengan penentu format tertentu:

# Using str.format for alignment
print("{0: <5}".format("value  ") +
      "{1: >15}".format(prefix) +
      "- num of occurrences =   " +
      "{2: <5}".format(string.count(str(prefix))))

Penentukan Format:

  • <5: Jajarkan rentetan ke kiri dalam lebar 5 aksara.
  • >15: Jajarkan kanan rentetan dalam lebar 15 aksara.

    Edit 1: "0" dalam "{0: <5}" merujuk kepada indeks argumen yang dihantar ke str.format().

    Edit 2: Python 3 memperkenalkan f-strings sebagai alternatif ringkas kepada str.format:

    # Using f-strings for alignment
    print(f"{'value  ':<5}" +
          f"{prefix:>15}" +
          "- num of occurrences =   " +
          f"{string.count(str(prefix)):<5}")</p>

    Kelebihan:

    • Kebolehbacaan dan organisasi yang dipertingkatkan.
    • Fleksibiliti dalam menentukan penjajaran dan lebar.
    • Keserasian dengan Python 2 dan Python 3.

    Atas ialah kandungan terperinci Bagaimanakah saya boleh mencapai penjajaran lebar tetap rentetan bercetak dalam Python?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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