Cara Mengelakkan Pemasukan Baris Baharu dalam Fungsi Input
Semasa menggunakan fungsi input dalam Python, selalunya wajar untuk menghalangnya daripada menambah secara automatik baris baharu selepas input pengguna. Ini membolehkan aliran yang lebih lancar dalam senario tertentu.
Untuk mencapai matlamat ini, ramai pengguna Python sudah biasa dengan kaedah menyekat aksara baris baharu dalam pernyataan cetakan menggunakan koma di belakang. Walau bagaimanapun, teknik yang sama tidak digunakan apabila berurusan dengan fungsi input seperti raw_input dalam Python 2.x atau input dalam Python 3.x.
Memahami Isu
Apabila menggunakan raw_input (atau input), aksara baris baharu (diwakili sebagai 'n') dilampirkan secara konsisten selepas input pengguna. Ini boleh menjadi masalah dalam situasi di mana gesaan perlu mengikut pada baris yang sama dengan input, seperti dalam contoh berikut:
print "Hello, " name = raw_input() print ", how do you do?"
Keputusan:
Hello, Tomas , how do you do?
Keputusan yang Diingini:
Hello, Tomas, how do you do?
Mengatasi Had
Kaedah 1: Menggunakan Pendekatan Tersuai
Seperti yang dinyatakan oleh Ferdinand Beyer, pada asasnya tidak mungkin untuk menghapuskan aksara baris baharu secara langsung daripada mentah_input atau input. Walau bagaimanapun, terdapat penyelesaian yang melibatkan pendekatan tersuai.
Dengan memanfaatkan jujukan kawalan terminal ' 33[{}C 33[1A'.format(len(x) y), dengan x ialah panjang pengguna input dan y ialah panjang rentetan raw_input, mungkin untuk mengalihkan kursor kembali ke baris sejurus sebelum input dimasukkan.
Kaedah 2: Alternatif kepada Fungsi Input
Sebagai alternatif, terdapat kaedah lain untuk mengumpulkan input pengguna tanpa menghadapi isu baris baharu. Satu kaedah sedemikian ialah menggunakan modul getpass:
import getpass name = getpass.getpass("Hello, ") print ", how do you do?"
Pendekatan ini memaparkan gesaan tanpa baris baharu mengekori dan mengembalikan input secara langsung, mengelakkan pemisah baris tambahan. Walau bagaimanapun, ia juga menyahdayakan bergema input, yang mungkin tidak sesuai untuk semua situasi.
Kesimpulannya, walaupun tidak mungkin untuk menghalang input_raw atau input daripada menambahkan baris baharu, menggunakan pendekatan tersuai dengan urutan kawalan terminal atau meneroka kaedah input alternatif seperti getpass boleh menyediakan penyelesaian yang selaras dengan keperluan khusus.
Atas ialah kandungan terperinci Bagaimana untuk Mencegah Kemasukan Baris Baru dalam Fungsi Input Python?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!