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
Lepaskan: 2024-12-08 18:20:11
asal
367 orang telah melayarinya

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

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

Python 2.7 Serasi Hadapan:

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

Python 2.7:

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

Python 2.0-2.6:

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

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

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

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