Bagaimana cara menggunakan raw_input di Python 3

import sys
print(sys.platform)
print(2**100)
raw_input()

Saya menggunakan Python 3.1 dan dapat't mendapatkan raw_input untuk "membekukan" dos pop-up. Buku I'm membaca adalah untuk Python 2.5 dan I'm menggunakan Python 3.1

Apa yang harus saya lakukan untuk memperbaiki ini?

Mengomentari pertanyaan (4)
Larutan

Mulai dengan Python 3, raw_input() berganti nama menjadi input().

Dari Apa yang Baru Di Python 3.0.

Komentar (6)

Ini bekerja di Python 3.x dan 2.x:

# Fix Python 2.x.
try: input = raw_input
except NameError: pass
print("Hi " + input("Say something: "))
Komentar (7)

Cara yang dapat diandalkan untuk mengatasi hal ini adalah

from six.moves import input

enam adalah sebuah modul yang patch lebih banyak dari 2/3 umum basis kode nyeri poin.

Komentar (1)

Seperti orang lain telah ditunjukkan, raw_input fungsi telah berganti nama menjadi input dalam Python 3.0, dan anda benar-benar akan lebih baik dilayani oleh lebih up-to-date buku, tapi saya ingin menunjukkan bahwa ada cara yang lebih baik untuk melihat output dari script anda.

Dari keterangan anda, saya pikir anda're menggunakan Windows, anda've disimpan .py file dan kemudian anda're double-klik di atasnya untuk menjalankannya. Terminal window yang muncul menutup segera setelah program berakhir, sehingga anda dapat't melihat apa hasil dari program tersebut. Untuk memecahkan hal ini, anda pesan merekomendasikan menambahkan raw_input / input pernyataan untuk menunggu sampai pengguna menekan enter. Namun, seperti yang anda've terlihat, jika terjadi kesalahan, seperti kesalahan dalam program anda, pernyataan itu tidak't akan dieksekusi dan jendela akan menutup tanpa anda mampu melihat apa yang salah. Anda mungkin merasa lebih mudah untuk menggunakan command-prompt atau MENGANGGUR.

Menggunakan command-prompt

Bila anda'kembali melihat jendela folder yang berisi program Python, tahan shift dan klik kanan di mana saja di latar belakang putih area jendela. Menu yang muncul harus berisi sebuah entri "Open command window here". (Saya pikir ini bekerja pada Windows Vista dan Windows 7.) Ini akan membuka jendela wantian perintah yang terlihat seperti ini:

    Microsoft Windows [Version 6.1.7601]
    Copyright (c) 2009 Microsoft Corporation.  All rights reserved.

    C:\Users\Weeble\My Python Program>_

Untuk menjalankan program anda, ketik berikut (mengganti script anda nama):

    python myscript.py

...dan tekan enter. (Jika anda mendapatkan error yang "python" tidak diakui perintah, lihat http://showmedo.com/videotutorials/video?name=960000&fromSeriesID=96 ) Ketika program selesai dijalankan, apakah berhasil atau tidak, jendela akan tetap terbuka dan command-prompt akan muncul lagi bagi anda untuk mengetik perintah lain. Jika anda ingin menjalankan program anda lagi, anda dapat menekan tombol panah atas untuk mengingat perintah sebelumnya anda masukkan dan tekan enter untuk menjalankannya lagi, daripada harus mengetik nama file setiap saat.

Gunakan IDLE

MENGANGGUR adalah sebuah program sederhana editor yang datang diinstal dengan Python. Di antara fitur-fitur lainnya itu dapat menjalankan program anda di jendela. Klik kanan pada anda .py file dan pilih "Edit di IDLE". Ketika program anda muncul di editor, tekan F5 atau pilih "Menjalankan modul" dari "Run" menu. Program anda akan berjalan di jendela yang tetap terbuka setelah program berakhir, dan di mana anda dapat memasukkan perintah-perintah Python untuk segera berjalan.

Komentar (5)

Timmerman's solusi karya besar ketika menjalankan kode, tapi jika anda don't ingin mendapatkan Undefined nama kesalahan ketika menggunakan pyflakes atau serupa linter anda bisa menggunakan ini sebagai gantinya:

try:
    import __builtin__
    input = getattr(__builtin__, 'raw_input')
except (ImportError, AttributeError):
    pass
Komentar (2)

Berikut ini's sepotong kode yang saya masukkan di script saya bahwa saya wan't berjalan di py2/3-agnostik lingkungan:

# Thank you, python2-3 team, for making such a fantastic mess with
# input/raw_input :-)
real_raw_input = vars(__builtins__).get('raw_input',input)

Sekarang anda dapat menggunakan real_raw_input. It's cukup mahal tetapi pendek dan mudah dibaca. Menggunakan raw input adalah biasanya waktu yang mahal (menunggu input), sehingga's tidak penting.

Secara teori, anda bahkan dapat menetapkan raw_input bukan real_raw_input tapi mungkin ada modul yang memeriksa keberadaan raw_input dan berperilaku sesuai. It's lebih baik tinggal di sisi yang aman.

Komentar (1)

Mungkin bukan solusi terbaik, tapi sebelum saya datang ke sini saya hanya membuat ini on the fly untuk terus bekerja tanpa istirahat sebentar dari penelitian.

def raw_input(x):
  input(x)

Kemudian ketika saya menjalankan raw_input('Masukkan nama: ') pada script yang saya kerjakan, ia menangkap itu sebagai tidak input() akan.

Mungkin ada alasan untuk tidak melakukan hal ini, yang saya belum't menemukan belum!

Komentar (1)