Tôi đã sử dụng input
chức năng này như một cách để tạm dừng các tập lệnh của mình
print("something")
wait = input("PRESS ENTER TO CONTINUE.")
print("something")
Có một cách chính thức để làm điều này?
Tôi đã sử dụng input
chức năng này như một cách để tạm dừng các tập lệnh của mình
print("something")
wait = input("PRESS ENTER TO CONTINUE.")
print("something")
Có một cách chính thức để làm điều này?
Câu trả lời:
Có vẻ tốt với tôi (hoặc raw_input()
trong Python 2.X). Ngoài ra, bạn có thể sử dụng time.sleep()
nếu bạn muốn tạm dừng trong một số giây nhất định.
import time
print("something")
time.sleep(5.5) # pause 5.5 seconds
print("something")
print
để hiển thị khối văn bản dài và sau đó input()
hoặc raw_input('Press <ENTER> to continue')
phù hợp với phiên bản Python của bạn.
input()
(hoặc raw_input()
trên Python 2.x) để nhắc người dùng, thay vì trì hoãn thời gian. Người đọc nhanh sẽ không muốn chờ đợi sự chậm trễ, người đọc chậm có thể muốn có thêm thời gian trì hoãn, ai đó có thể bị gián đoạn trong khi đọc nó và muốn có nhiều thời gian hơn, v.v. Ngoài ra, nếu ai đó sử dụng chương trình nhiều, anh ấy / cô ấy có thể trở nên quen với cách nó hoạt động và thậm chí không cần phải đọc văn bản dài. Nó chỉ thân thiện hơn để cho phép người dùng kiểm soát thời gian khối văn bản được hiển thị để đọc.
Đối với cửa sổ chỉ sử dụng:
import os
os.system("pause")
Vì vậy, tôi thấy điều này hoạt động rất tốt trong nỗ lực mã hóa của mình. Tôi chỉ đơn giản là tạo một chức năng ngay từ đầu chương trình của mình,
def pause():
programPause = raw_input("Press the <ENTER> key to continue...")
và bây giờ tôi có thể sử dụng pause()
hàm bất cứ khi nào tôi cần giống như tôi đang viết một tệp bó. Ví dụ: trong một chương trình như thế này:
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()
Bây giờ rõ ràng chương trình này không có mục tiêu và chỉ là mục đích ví dụ, nhưng bạn có thể hiểu chính xác ý tôi là gì.
LƯU Ý: Đối với Python 3, bạn sẽ cần sử dụng input
trái ngược vớiraw_input
Tôi đã có một câu hỏi tương tự và tôi đã sử dụng tín hiệu:
import signal
def signal_handler(signal_number, frame):
print "Proceed ..."
signal.signal(signal.SIGINT, signal_handler)
signal.pause()
Vì vậy, bạn đăng ký một trình xử lý cho SIGINT tín hiệu và tạm dừng chờ đợi bất kỳ tín hiệu nào. Bây giờ từ bên ngoài chương trình của bạn (ví dụ như trong bash), bạn có thể chạy kill -2 <python_pid>
, nó sẽ gửi tín hiệu 2 (tức là SIGINT) đến chương trình python của bạn. Chương trình của bạn sẽ gọi trình xử lý đã đăng ký của bạn và tiến hành chạy.
signal.pause
.
Tôi sử dụng cách sau cho python
2 và 3 để tạm dừng thực thi mã cho đến khi người dùng nhấnENTER
import six
if six.PY2:
raw_input("Press the <ENTER> key to continue...")
else:
input("Press the <ENTER> key to continue...")
Như được chỉ ra bởi ý kiến của mhawke và steveha , câu trả lời tốt nhất cho câu hỏi chính xác này sẽ là:
Đối với một khối văn bản dài, tốt nhất là sử dụng
input('Press <ENTER> to continue')
(hoặcraw_input('Press <ENTER> to continue')
trên Python 2.x) để nhắc người dùng, thay vì trì hoãn thời gian. Người đọc nhanh sẽ không muốn chờ đợi sự chậm trễ, người đọc chậm có thể muốn có thêm thời gian trì hoãn, ai đó có thể bị gián đoạn trong khi đọc nó và muốn có nhiều thời gian hơn, v.v. Ngoài ra, nếu ai đó sử dụng chương trình nhiều, anh ấy / cô ấy có thể trở nên quen với cách nó hoạt động và thậm chí không cần phải đọc văn bản dài. Nó chỉ thân thiện hơn để cho phép người dùng kiểm soát thời gian khối văn bản được hiển thị để đọc.
Rất đơn giản:
raw_input("Press Enter to continue ...")
exit()
NameError: name 'raw_input' is not defined
Tôi nghĩ rằng tôi thích soln này.
import getpass
getpass.getpass("Press Enter to Continue")
Nó ẩn bất cứ thứ gì người dùng gõ vào, giúp làm rõ rằng đầu vào không được sử dụng ở đây.
Nhưng hãy chú ý trong nền tảng OSX, nó sẽ hiển thị một khóa có thể gây nhầm lẫn.
Có lẽ giải pháp tốt nhất là tự mình làm một cái gì đó tương tự như mô-đun getpass mà không cần thực hiện read -s
cuộc gọi. Có lẽ làm cho màu fg phù hợp với bg?
Theo phương pháp này, bạn có thể tiếp tục chương trình của mình chỉ bằng cách nhấn bất kỳ khóa được chỉ định nào bạn đã chỉ định rằng:
import keyboard
while True:
key = keyboard.read_key()
if key == 'space': # you can put any key you like instead of 'space'
break
cùng một phương pháp nhưng theo một cách khác:
import keyboard
while True:
if keyboard.is_pressed('space'): # same, you can put any key you like instead of 'space'
break
Lưu ý: bạn có thể cài đặt keyboard
mô-đun đơn giản bằng cách viết phần này vào shell hoặc cmd:
pip install keyboard
import os, sys
if sys.platform == 'win32':
os.system('pause')
else:
input('Press any key to continue...')