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

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

Linda Hamilton
Lepaskan: 2024-11-05 22:32:02
asal
882 orang telah melayarinya

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)))
Salin selepas log masuk

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
Salin selepas log masuk

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))))
Salin selepas log masuk

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>
    Salin selepas log masuk

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