import sys
print(sys.platform)
print(2**100)
raw_input()
Saya menggunakan Python 3.1 dan tidak bisa raw_input
"membekukan" dos pop-up. Buku yang saya baca adalah untuk Python 2.5 dan saya menggunakan Python 3.1
Apa yang harus saya lakukan untuk memperbaikinya?
python
python-3.x
Harga Lonnie
sumber
sumber
Jawaban:
Dimulai dengan Python 3,
raw_input()
diubah namanya menjadiinput()
.Dari What's New In Python 3.0, bagian kedua bagian Builtins .
sumber
input()
danraw_input()
.a = input()
akan mengambil input pengguna dan memasukkannya ke dalam tipe yang benar. Misalnya: jika pengguna mengetik 5 maka nilai dalama
adalah integer 5.a = raw_input()
akan mengambil input pengguna dan meletakkannya sebagai string. Misalnya: jika pengguna mengetik 5 maka nilai dalama
adalah string '5' dan bukan bilangan bulat. Kupikir itu mungkin info yang bagus untuk pemula dengan python seperti diriku.Ini berfungsi dalam Python 3.x dan 2.x:
sumber
global input
di bagian atas fungsi panggilan.import __builtin__; input = getattr(__builtin__, 'raw_input', input)
__builtin__
.__builtin__
diubah namanya menjadibuiltins
Python 3. Keduanya tersedia seperti__builtins__
dalam CPython.getattr(__builtins__, 'raw_input', input)
mengembalikan default ketika diimpor dalam Python 2.7.2.Cara yang dapat diandalkan untuk mengatasi ini adalah
enam adalah modul yang menambal lebih dari 2/3 poin nyeri basis kode umum.
sumber
from six.moves import input as raw_input
, Anda dapat menyimpanraw_input
skrip Anda dan menjalankannya menggunakan kedua versi Python.Seperti yang telah ditunjukkan orang lain,
raw_input
fungsinya telah diubah namanya menjadiinput
Python 3.0, dan Anda benar-benar akan lebih baik dilayani oleh buku yang lebih mutakhir, tetapi saya ingin menunjukkan bahwa ada cara yang lebih baik untuk melihat hasil skrip Anda .Dari deskripsi Anda, saya pikir Anda menggunakan Windows, Anda telah menyimpan
.py
file dan kemudian Anda mengklik dua kali untuk menjalankannya. Jendela terminal yang muncul menutup segera setelah program Anda berakhir, sehingga Anda tidak dapat melihat apa hasil dari program Anda. Untuk mengatasi ini, buku Anda merekomendasikan untuk menambahkanraw_input
/input
pernyataan menunggu sampai pengguna menekan masuk. Namun, seperti yang Anda lihat, jika ada kesalahan, seperti kesalahan dalam program Anda, pernyataan itu tidak akan dieksekusi dan jendela akan ditutup tanpa Anda dapat melihat apa yang salah. Anda mungkin lebih mudah menggunakan command-prompt atau IDLE.Gunakan command-prompt
Saat Anda melihat jendela folder yang berisi program Python Anda, tahan shift dan klik kanan di mana saja di area latar belakang putih jendela. Menu yang muncul harus berisi entri "Buka jendela perintah di sini". (Saya pikir ini bekerja pada Windows Vista dan Windows 7.) Ini akan membuka jendela command-prompt yang terlihat seperti ini:
Untuk menjalankan program Anda, ketikkan yang berikut (gantikan nama skrip Anda):
... dan tekan enter. (Jika Anda mendapatkan kesalahan bahwa "python" bukan perintah yang dikenali, lihat http://showmedo.com/videotutorials/video?name=960000&fromSeriesID=96 ) Ketika program Anda selesai berjalan, apakah itu berhasil diselesaikan atau tidak, jendela akan tetap terbuka dan prompt perintah akan muncul lagi untuk Anda ketik perintah lain. Jika Anda ingin menjalankan program Anda lagi, Anda dapat menekan panah atas untuk mengingat perintah sebelumnya yang Anda masukkan dan tekan enter untuk menjalankannya lagi, daripada harus mengetikkan nama file setiap kali.
Gunakan IDLE
IDLE adalah editor program sederhana yang dilengkapi dengan Python. Di antara fitur-fitur lain dapat menjalankan program Anda di jendela. Klik kanan pada
.py
file Anda dan pilih "Edit di IDLE". Ketika program Anda muncul di editor, tekan F5 atau pilih "Run module" dari menu "Run". Program Anda akan berjalan di jendela yang tetap terbuka setelah program Anda berakhir, dan di mana Anda dapat memasukkan perintah Python untuk segera dijalankan.sumber
pythonw -m idlelib.idle
Solusi Timmerman bekerja sangat baik ketika menjalankan kode, tetapi jika Anda tidak ingin mendapatkan
Undefined name
kesalahan saat menggunakan pyflakes atau linter serupa Anda bisa menggunakan yang berikut ini sebagai gantinya:sumber
Redefining built-in 'input' (redefined-builtin)
,Unable to import '__builtin__' (import-error)
,Invalid constant name "input" (invalid-name)
.flake8
ataupyflakes
agar tidak menghabiskan seluruh hari Anda dengan peringatan yang tidak berarti.Berikut adalah sepotong kode yang saya masukkan ke dalam skrip yang tidak ingin saya jalankan di lingkungan py2 / 3-agnostic:
Sekarang Anda dapat menggunakan real_raw_input. Cukup mahal tapi pendek dan mudah dibaca. Menggunakan input mentah biasanya mahal waktu (menunggu input), jadi itu tidak penting.
Secara teori, Anda bahkan dapat menetapkan raw_input alih-alih real_raw_input tetapi mungkin ada modul yang memeriksa keberadaan raw_input dan berperilaku sesuai. Lebih baik tetap di sisi yang aman.
sumber
Mungkin bukan solusi terbaik, tetapi sebelum saya datang ke sini saya hanya membuat ini dengan cepat untuk tetap bekerja tanpa istirahat sejenak dari belajar.
Kemudian ketika saya menjalankan
raw_input('Enter your first name: ')
skrip yang sedang saya kerjakan, itu menangkapnya seperti halnyainput()
.Mungkin ada alasan untuk tidak melakukan ini, bahwa saya belum menemukan!
sumber
raw_input = input
?