:)) Mình nhấn enter, ko hề có dấu cách nào ở dòng cuối. (Dòng trống đó)
Làm sao để nhận được kí tự enter từ bàn phím
à 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.
ý mình không phải là nhập \n mà là mình ấn enter từ bàn phím để nó lưu kí tự enter vào biến như những kí tự thường khác.
À thế bạn viết 1 cái C++ đi, xong dịch ra python, chứ mình vẫn chưa hiểu ý bạn lắm
#include<iostream>
#include<conio.h>
using namespace std;
int main() {
char a;
a = getchar(); // ham getchar chi nhan mot va chi mot ki tu tu keyboard
// ki tu nay duoc luu vao a
if(a == '\n') cout<<"OK"<<endl;
else cout<<"Error !"<<endl;
return 0;
}
bạn chạy đoạn này thử xem. ý mình đại loại như này, nhưng mà mong muốn có một hàm như getchar() nhưng nhận đc nhiều kí tự trong một lần nhập , sorry nếu em hơi tham
.
À thế thì search google “getchar in python” là oke mà
đúng chính xác là cái này rồi bác @KhoaTran ơi, chuẩn ko chỉnh ạ ., thank bác
.
Mà cái modul stdin có phải để xử lí mấy một số tác vụ của C ko ạ, bác có thể giới thiệu thêm một vài modul ko ạ.
Oke mình gợi ý vậy thôi, bạn thử google xem nhiều cách hay lắm, rồi so sánh từng cách xem cách nào hợp lý thì dùng :V
Cách trên là readline mà, nghĩa là nó chờ enter, nếu bạn thử phím a,b,c,d thì nó có dừng ngay đâu, nó chờ enter nó mới kết thúc, mình thấy vấn đề của bạn thì msvcrt.getch
mới đúng
>>> import msvcrt
>>> msvcrt.getch()
'0'
>>> msvcrt.getch()
'\r'
>>> msvcrt.getch()
'a'
>>> msvcrt.getch()
'e'
>>> msvcrt.getch()
'h'
>>>
hì, đúng là của bác Khoa thì chỉ chờ enter chứ phím khác là ko đc thật .
ok, để e tìm hiểu thêm cái msvcrt.getch . thank bác .
Trong Python bạn gõ như sau:
>>> import sys
>>> help(sys.stdin)
Mình cũng không rõ có thư viện nào trong Python cung cấp các hàm giống như trong C không.
tiện thể bác Khoa cho hỏi cái này luôn được không?
trong C++ có khái niệm con trỏ còn trong Python thì không, vậy những bài toán cần đến con trỏ trong C thì ở Python có giải pháp thay thế ko ạ.
Theo mình biết thì các ngôn ngữ lập trình mới hiện nay đều không cần dùng đến con trỏ nữa. Vì nó đã có kiểu tham chiếu. Như trong C# thì có thuật ngữ boxing và inboxing. Trong Python thì mình thường dùng các kiểu tham chiếu như List hoặc cách khác là return giá trị và gán cho biến ban đầu (trong Python cho phép return nhiều giá trị).
Mình có ví dụ về hàm swap như sau
def swap(a, b):
return b, a
Lúc gọi
vâng, e vẫn chưa rõ ràng vụ này lắm, để em tìm hiểu thêm, thank bác.