Rumah >pembangunan bahagian belakang >Tutorial Python >Bagaimanakah Saya Boleh Mengganti Output Cetakan Sebelumnya pada Baris yang Sama dalam Python?

Bagaimanakah Saya Boleh Mengganti Output Cetakan Sebelumnya pada Baris yang Sama dalam Python?

Susan Sarandon
Susan Sarandonasal
2024-12-08 18:20:11370semak imbas

How Can I Overwrite Previous Print Outputs on the Same Line in Python?

Mengatasi Output Cetakan Sebelumnya pada Baris Yang Sama

Dalam pengaturcaraan, adalah perkara biasa untuk menghadapi situasi di mana anda perlu mengemas kini nilai sedia ada yang dipaparkan pada keluaran standard (stdout) tanpa menambah baris baharu. Pertimbangkan kod Python berikut:

for x in range(10):
    print(x)

Kod ini mengeluarkan nombor 1 hingga 10 pada baris berasingan. Untuk menulis ganti nilai sebelumnya dan menggantikannya dengan nilai baharu pada baris yang sama, anda boleh menggunakan teknik berikut:

Versi Mudah:

Gunakan carriage return ( 'r') watak untuk kembali ke permulaan baris tanpa mara ke baris seterusnya.

Python 3:

for x in range(10):
    print(x, end='\r')
print()

Python 2.7 Serasi Hadapan:

from __future__ import print_function
for x in range(10):
    print(x, end='\r')
print()

Python 2.7:

for x in range(10):
    print '{}\r'.format(x),
print

Python 2.0-2.6:

for x in range(10):
    print '{0}\r'.format(x),
print

Dalam contoh ini, koma di belakang selepas pernyataan cetakan menekan baris baharu. Penyata cetakan akhir mara ke baris seterusnya, memastikan gesaan anda tidak menimpa output anda.

Pembersihan Talian:

Jika anda tidak dapat menjamin bahawa baris baharu daripada teks tidak lebih pendek daripada baris yang sedia ada, anda boleh menggunakan jujukan melarikan diri "jelas ke hujung baris" 'x1b[1K' ('x1b' = ESC):

for x in range(75):
    print('*' * (75 - x), x, end='\x1b[1K\r')
print()

Balut Baris Panjang:

Kaedah yang dinyatakan di atas menganggap bahawa anda tidak menulis melebihi panjang baris. Pulangan gerabak hanya kembali ke permulaan baris semasa. Oleh itu, jika output anda melebihi panjang baris, anda hanya akan memadamkan baris terakhir.

Untuk mengurangkan isu ini dan menghalang kursor daripada membalut ke baris seterusnya, anda boleh melumpuhkan pembalut baris:

print('\x1b[7l', end='')    # Disable line wrapping
print('\x1b[7h', end='')    # Re-enable line wrapping

Sila ambil perhatian bahawa anda mesti mendayakan semula pembalut baris secara manual pada penghujung blok kod untuk mengelak daripada meninggalkan terminal dalam keadaan rosak.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mengganti Output Cetakan Sebelumnya pada Baris yang Sama 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