2010-11-04 37 views
6

Tôi muốn chương trình tạm dừng và chờ cho đến khi bạn nhấn bất kỳ phím nào để tiếp tục, nhưng raw_input() sẽ biến mất và nhập() đang thay thế nó. Vì vậy, tôi có
var = input ("Nhấn enter để tiếp tục") và nó đợi cho đến khi tôi nhấn enter, nhưng sau đó nó không thành công với SyntaxError: unexpected EOF while Parsing. Điều này làm việc OK trên một hệ thống với Python 3, nhưng đây là linux Python 2.6 và tôi ghét phải mã trong raw_input() vì nó sẽ biến mất. Bất kỳ đề xuất nào?có cách để sử dụng đầu vào ("Nhấn phím bất kỳ để tiếp tục") trên phiên bản 2.6

+5

Vui lòng đăng ** mã ** thực tế ** và ** thông báo lỗi ** thực tế mà bạn ** thực sự ** nhận được. –

+0

Đây không phải là lỗi cú pháp - Python 2.6 hỗ trợ chức năng 'đầu vào'. Bạn có thể cho chúng tôi thấy phần còn lại của mã của bạn không? – Smashery

+1

@smashery: nó sẽ vẫn gây ra lỗi cú pháp nếu biểu thức đã nhập có chứa lỗi cú pháp, ví dụ: chỉ cần nhấn – recursive

Trả lời

9

Sử dụng này

try: 
    input= raw_input 
except NameError: 
    pass 

Nếu raw_input tồn tại, nó sẽ được sử dụng cho đầu vào. Nếu nó không tồn tại, input vẫn tồn tại.

+0

Tôi thích trang này. Làm việc tuyệt vời. và đơn giản là – Dag

+0

+1 Mặc dù tôi nghĩ rằng nó sẽ tốt hơn nếu có một nhập khẩu '__future__' cho điều này, không có, vì vậy đây là cách tốt nhất –

3

bạn có thể làm một cái gì đó trên dòng ...

def myinput(prompt): 
    try: 
     return raw_input(prompt) 
    except NameError: 
     return input(prompt) 

... nhưng không.

Thay vào đó, chỉ cần sử dụng raw_input() trên chương trình của bạn, sau đó sử dụng 2to3 để chuyển đổi tệp thành python 3.x. Điều đó sẽ chuyển đổi tất cả các raw_input() s cho bạn và cũng có thể những thứ khác mà bạn có thể bị thiếu.

Đó là cách được khuyến nghị để giữ cho phần mềm hoạt động trên cả trăn 2 và python 3 và cũng giữ độ tỉnh táo.

+0

nhưng nếu tôi chỉ di chuyển tệp giữa hai hộp, tôi ghét phải chuyển đổi tất cả các thời gian – Dag

+0

vì vậy không có cách nào trong 2,6 để làm cho đầu vào() làm việc? – Dag

+0

Không, nó thực hiện đánh giá đầu vào. Bạn cần phải thay đổi cách xác định đầu vào. http://docs.python.org/library/functions.html?highlight=input#input – dcolish

1
import os 
os.sys('pause') 

Bạn có thể sử dụng mô-đun này trên Windows.

Các vấn đề liên quan