01/10/2018, 00:43
Làm sao để nhận được kí tự enter từ bàn phím
như câu hỏi trên ạ, ý em là muốn nhận được kí tự enter và lưu nó vào một biến để đem so sánh trong bước tiếp theo.
theo em được biết thì hàm raw_input() không nhận enter, vậy phải làm như nào ạ?
p/s: e ms học Python, nếu hỏi ngơ quá các bác đừng gạch ạ :).
Bài liên quan
Nếu bạn sử dụng Python 3 thì dùng hàm input(). Hàm raw_input() của Python 2.
mình đang học bằng Python 2, mà hàm raw_input() trong Python 2 không lấy đc kí tự enter lưu vào một biến.
Như này phải không bạn? (đã cập nhật)
cảm ơn bạn, nhưng ý mình là kiểu hàm nhập mà khi mình gõ enter thì nó sẽ nhận chứ k phải gán. chức năng giống như hàm raw_input() ấy, ví dụ: a = raw_intput() ,khi ấn enter thì a sẽ nhận kí tự enter, nhưng raw_input lại ko nhận enter nên đang tìm cách.
thực ra cụ thể là mình muốn thêm liên tục các số mới vào một list cho đến khi kí tự được thêm là enter thì dừng lại.
Mình hiểu ý bạn rồi
như này của bạn thì là khai trước số phần tử của list rồi, ý mình là mình cái list có thể thêm vô hạn cho đến khi kí tự nhận đc là Enter thì dừng.
Ntn đúng ý bạn chưa?
@Nguyen_Minh_Quan có vẻ đúng, thank bạn :]]]], nhưng thực ra mà nói đây vẫn không phải là nhận được enter mà là nhận “không có gì” nhỉ. Nhưng trong một số trường hợp cũng có thể là giải pháp thay thế .
Bạn thử theo hướng dẫn này xem:
http://code.activestate.com/recipes/577977-get-single-keypress/
List trong python không giới hạn số phần tử nha bạn. Cái kia chỉ là ví dụ thôi, bạn có thể sửa lại mà
đúng là list có thể thêm vô hạn. nhưng vấn đề mình đang mắc là làm sao mà đặt điểm dừng cho việc thêm liên tục đó là khi gặp kí tự vào là Enter từ bàn phím??? Làm như bạn là ngăn cách giữa các phần tử bằng dấu cách, sau đó split cái list để nó chia ra cũng khá ok rồi, nhưng đại ý của mình từ đầu là có vòng lặp hàm raw_input() cho việc thêm từng phần tử thì mỗi lần lặp mình được yêu cầu nhập giá trị thì phải enter để nó gán cho phần thử thứ i của list, và cứ thế cho đến khi kí tự mình nhập vào để gán cho phần tử là Enter thì sẽ break đc cái vòng lặp đó.
Cách của Minh Quan đúng như ý bạn nói rồi mà.
Mình test có lỗi đâu nhỉ? ô-o
chắc bạn k hiểu ý mình, bạn thử thay dấu cách bằng \n xem.
:)) Mình nhấn enter, ko hề có dấu cách nào ở dòng cuối. (Dòng trống đó)
à ha, đúng rồi, tại mình cứ nhìn trong cặp nháy đơn của bạn Minh Quan là dấu cách.
nhưng đây nó vẫn ko phải là nhận enter mà là nó nhận “không có gì” nên mới out khỏi vòng lặp.
Phím enter không có giá trị, nên bạn không thể “nhận giá trị” khi nhấn enter.
Thế thì bạn cứ thêm số bình thường, khi nào ngừng thì nhấn enter nó sẽ tự ngắt, việc gì phải phức tạp hóa vấn đề lên như vậy…
vậy cần gì phức tạp như vậy? Cứ nhập 1 số rồi cách ra nhập số khác, nhập xong thì enter, xong split by space là xong mà
Cần nói thêm là khi bạn nhập
\n
thì đó là một chuỗi gồm hai ký tự là'\'
và'n'
. Vậy nên khi bạn xuất ra nó sẽ có giá trị là'\\n'
.đâu, có mà, trong C++ vẫn nhận đc, hàm getchar() đó.
mình chỉ đưa ra ví dụ minh họa như vậy thôi, chứ cái mình muốn biết vẫn là, làm sao ấn enter nó lưu đc giá trị vào biến như các phím kí tự khác để sau này đem so sánh hoặc sử dụng tùy mục đích.