Saya ingin membaca data dari keyboard dengan python
Saya coba ini:
nb = input('Choose a number')
print ('Number%s \n' % (nb))
Tapi itu tidak berhasil, baik dengan gerhana maupun di terminal, itu selalu menghentikan pertanyaan. Saya dapat mengetikkan angka tetapi setelah tidak ada yang terjadi.
Apa kamu tahu kenapa?
Jawaban:
mencoba
dan jika Anda ingin memiliki nilai numerik, konversikan saja:
sumber
Sepertinya Anda mencampurkan Python yang berbeda di sini (Python 2.x vs. Python 3.x) ... Ini pada dasarnya benar:
Masalahnya adalah ini hanya didukung di Python 3. Seperti yang dijawab @sharpner, untuk versi Python (2.x) yang lebih lama, Anda harus menggunakan fungsi
raw_input
:Jika Anda ingin mengubahnya menjadi angka, maka Anda harus mencoba:
... meskipun Anda perlu memperhitungkan bahwa ini dapat menimbulkan pengecualian:
Dan jika Anda ingin mencetak nomor menggunakan formatting, Python 3
str.format()
direkomendasikan:Dari pada:
Tetapi kedua opsi (
str.format()
dan%
) berfungsi dengan Python 2.7 dan Python 3.sumber
space
setelah string Anda agar pengguna memasukkan inputnya jika damai.Enter Tel12340404
vsEnter Tel: 12340404
. Lihat! : PContoh non-pemblokiran, multi-utas:
Karena memblokir input keyboard (karena
input()
blok fungsi) seringkali bukan yang ingin kami lakukan (kami sering ingin terus melakukan hal-hal lain), berikut adalah contoh multi-threaded yang sangat dipreteli untuk mendemonstrasikan cara tetap menjalankan aplikasi utama sambil tetap membaca input keyboard setiap kali mereka tiba .Ini bekerja dengan membuat satu utas untuk dijalankan di latar belakang, terus-menerus memanggil
input()
dan kemudian meneruskan data apa pun yang diterimanya ke antrian.Dengan cara ini, utas utama Anda dibiarkan melakukan apa pun yang diinginkannya, menerima data input keyboard dari utas pertama setiap kali ada sesuatu dalam antrean.
1. Contoh kode Bare Python 3 (tidak ada komentar):
2. Kode Python 3 yang sama seperti di atas, tetapi dengan komentar penjelasan yang ekstensif:
Output sampel:
Referensi:
Terkait / Tautan Silang:
sumber
input([prompt])
setara denganeval(raw_input(prompt))
dan tersedia sejak python 2.6Karena tidak aman (karena eval), raw_input harus dipilih untuk aplikasi kritis.
sumber
raw_input
diubah namanya menjadiinput
dan TIDAK eval.Ini seharusnya berhasil
sumber
input()
?