Saya telah menggunakan input
fungsi ini sebagai cara untuk menjeda skrip saya
print("something")
wait = input("PRESS ENTER TO CONTINUE.")
print("something")
adakah cara formal untuk melakukan ini?
Saya telah menggunakan input
fungsi ini sebagai cara untuk menjeda skrip saya
print("something")
wait = input("PRESS ENTER TO CONTINUE.")
print("something")
adakah cara formal untuk melakukan ini?
Jawaban:
Tampaknya baik bagi saya (atau raw_input()
dengan Python 2.X). Atau Anda dapat menggunakan time.sleep()
jika Anda ingin berhenti selama beberapa detik.
import time
print("something")
time.sleep(5.5) # pause 5.5 seconds
print("something")
print
untuk menampilkan blok teks yang panjang dan kemudian input()
atau yang raw_input('Press <ENTER> to continue')
sesuai untuk versi Python Anda.
input()
(atau raw_input()
pada Python 2.x) untuk meminta pengguna, daripada penundaan waktu. Pembaca cepat tidak akan mau menunggu penundaan, pembaca lambat mungkin ingin lebih banyak waktu penundaan, seseorang mungkin terganggu saat membacanya dan ingin lebih banyak waktu, dll. Juga, jika seseorang banyak menggunakan program, ia / dia mungkin terbiasa dengan cara kerjanya dan bahkan tidak perlu membaca teks yang panjang. Hanya lebih ramah untuk membiarkan pengguna mengontrol berapa lama blok teks ditampilkan untuk dibaca.
Hanya untuk windows gunakan:
import os
os.system("pause")
Jadi, saya menemukan ini berfungsi dengan sangat baik dalam upaya pengkodean saya. Saya hanya membuat fungsi di awal program saya,
def pause():
programPause = raw_input("Press the <ENTER> key to continue...")
dan sekarang saya bisa menggunakan pause()
fungsi kapan pun saya perlu seperti seolah-olah saya sedang menulis file batch. Misalnya , dalam program seperti ini:
import os
import system
def pause():
programPause = raw_input("Press the <ENTER> key to continue...")
print("Think about what you ate for dinner last night...")
pause()
Sekarang jelas program ini tidak memiliki tujuan dan hanya untuk tujuan contoh, tetapi Anda dapat memahami dengan tepat apa yang saya maksud.
CATATAN: Untuk Python 3, Anda harus menggunakan yang input
bertentanganraw_input
Saya memiliki pertanyaan serupa dan saya menggunakan sinyal:
import signal
def signal_handler(signal_number, frame):
print "Proceed ..."
signal.signal(signal.SIGINT, signal_handler)
signal.pause()
Jadi, Anda mendaftarkan pawang untuk sinyal SIGINT dan berhenti menunggu sinyal apa pun. Sekarang dari luar program Anda (misalnya dalam bash), Anda dapat menjalankan kill -2 <python_pid>
, yang akan mengirim sinyal 2 (yaitu SIGINT) ke program python Anda. Program Anda akan memanggil penangan terdaftar Anda dan melanjutkan menjalankan.
signal.pause
.
Saya menggunakan yang berikut ini untuk python
2 dan 3 untuk menghentikan sementara eksekusi kode sampai pengguna menekanENTER
import six
if six.PY2:
raw_input("Press the <ENTER> key to continue...")
else:
input("Press the <ENTER> key to continue...")
Seperti yang ditunjukkan oleh komentar mhawke dan steveha , jawaban terbaik untuk pertanyaan ini adalah:
Untuk blok teks yang panjang, yang terbaik adalah menggunakan
input('Press <ENTER> to continue')
(atauraw_input('Press <ENTER> to continue')
pada Python 2.x) untuk meminta pengguna, daripada penundaan waktu. Pembaca cepat tidak akan mau menunggu penundaan, pembaca lambat mungkin ingin lebih banyak waktu penundaan, seseorang mungkin terganggu saat membacanya dan ingin lebih banyak waktu, dll. Juga, jika seseorang banyak menggunakan program, ia / dia mungkin terbiasa dengan cara kerjanya dan bahkan tidak perlu membaca teks yang panjang. Hanya lebih ramah untuk membiarkan pengguna mengontrol berapa lama blok teks ditampilkan untuk dibaca.
Sangat sederhana:
raw_input("Press Enter to continue ...")
exit()
NameError: name 'raw_input' is not defined
Print ("This is how you pause")
input()
Saya pikir cara terbaik untuk menghentikan eksekusi adalah fungsi time.sleep (). jika Anda perlu menangguhkan eksekusi hanya dalam kasus-kasus tertentu, Anda cukup menerapkan pernyataan if seperti ini:
if somethinghappen:
time.sleep(seconds)
Anda dapat membiarkan cabang yang lain kosong.
Saya pikir saya suka soln ini.
import getpass
getpass.getpass("Press Enter to Continue")
Ia menyembunyikan apa pun yang diketik pengguna, yang membantu memperjelas bahwa input tidak digunakan di sini.
Tetapi berhati-hatilah dalam platform OSX ini menampilkan kunci yang mungkin membingungkan.
Mungkin solusi terbaik adalah melakukan sesuatu yang mirip dengan modul getpass sendiri, tanpa melakukan read -s
panggilan. Mungkin membuat warna fg cocok dengan bg?
Dengan metode ini, Anda dapat melanjutkan program hanya dengan menekan tombol apa saja yang telah Anda tentukan bahwa:
import keyboard
while True:
key = keyboard.read_key()
if key == 'space': # you can put any key you like instead of 'space'
break
metode yang sama tetapi dengan cara lain:
import keyboard
while True:
if keyboard.is_pressed('space'): # same, you can put any key you like instead of 'space'
break
Catatan: Anda dapat menginstal keyboard
modul hanya dengan menulis ini di shell atau cmd:
pip install keyboard
import os, sys
if sys.platform == 'win32':
os.system('pause')
else:
input('Press any key to continue...')
Untuk kompatibilitas lintas Python 2/3, Anda dapat menggunakan input
melalui six
perpustakaan:
import six
six.moves.input( 'Press the <ENTER> key to continue...' )