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 ạ :).

viết 02:44 ngày 01/10/2018

Nếu bạn sử dụng Python 3 thì dùng hàm input(). Hàm raw_input() của Python 2.

Nguyen Hong Nhat viết 02:45 ngày 01/10/2018

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.

Trần Ngọc Khoa viết 02:48 ngày 01/10/2018

Như này phải không bạn? (đã cập nhật)

Nguyen Hong Nhat viết 02:45 ngày 01/10/2018

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.

Trần Ngọc Khoa viết 02:52 ngày 01/10/2018

Mình hiểu ý bạn rồi

Nguyen Hong Nhat viết 02:58 ngày 01/10/2018

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.

Nguyen Minh Quan viết 02:50 ngày 01/10/2018
lst = [] 
while True:
    x = input()
    If x != '':
          lst.append(x)
    Else: break

Ntn đúng ý bạn chưa?

Nguyen Hong Nhat viết 02:49 ngày 01/10/2018

@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ế .

Pham Van Hai viết 02:57 ngày 01/10/2018

Bạn thử theo hướng dẫn này xem:

http://code.activestate.com/recipes/577977-get-single-keypress/

Trần Ngọc Khoa viết 02:54 ngày 01/10/2018

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à

Nguyen Hong Nhat viết 02:56 ngày 01/10/2018

đú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 đó.

*grab popcorn* viết 02:48 ngày 01/10/2018

Cách của Minh Quan đúng như ý bạn nói rồi mà.
Mình test có lỗi đâu nhỉ? ô-o

Nguyen Hong Nhat viết 02:56 ngày 01/10/2018

chắc bạn k hiểu ý mình, bạn thử thay dấu cách bằng \n xem.

*grab popcorn* viết 02:47 ngày 01/10/2018

:)) Mình nhấn enter, ko hề có dấu cách nào ở dòng cuối. (Dòng trống đó)

Nguyen Hong Nhat viết 02:57 ngày 01/10/2018

à 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.

anon10499953 viết 02:45 ngày 01/10/2018

Phím enter không có giá trị, nên bạn không thể “nhận giá trị” khi nhấn enter.

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.

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…

Thành Phạm viết 02:50 ngày 01/10/2018

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.

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à

Trần Ngọc Khoa viết 02:50 ngày 01/10/2018

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à '\''n'. Vậy nên khi bạn xuất ra nó sẽ có giá trị là '\\n'.

Nguyen Hong Nhat viết 02:47 ngày 01/10/2018

Phím enter không có giá trị, nên bạn không thể “nhận giá trị” khi nhấn enter.

đâu, có mà, trong C++ vẫn nhận đc, hàm getchar() đó.

Nguyen Hong Nhat viết 02:56 ngày 01/10/2018

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à

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.

Bài liên quan
0