Nhập liệu từ bàn phím trên Python

Post by dangsonbk on 21-08-2017

Trong Python, việc nhập liệu từ bàn phím có thể được thực hiện qua các hàm raw_input()input(). Tuy nhiên giữa Python 2 và Python 3 có chút khác biệt giữa việc sử dụng input()raw_input(), cụ thể như sau:

Python 2:

Trong Python 2, raw_input() trả về giá trị string được nhập vào, trong khi đó Python sẽ coi giá trị trả về của input() như một lệnh và cố gắng chạy nó. Có thể hiểu input() tương đương với eval(raw_input())

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
>>> raw_input("Input string: ")
Input string: Hi is my name
'Hi is my name'
>>> input("Input string: ")
Input string: Hi is my name
  File "<string>", line 1
    Hi is my name
                ^
SyntaxError: unexpected EOF while parsing
>>> input("Input string: ")
Input string: 1+1
2
>>> input("Input string: ")
Input string: [i for i in range(1, 10)]
[1, 2, 3, 4, 5, 6, 7, 8, 9]
>>>

Python 3:

Trong Python 3 thì hàm raw_input() không tồn tại, việc nhập liệu người dùng được thay thế hoàn toàn bằng input(). Cụ thể thì có thể hiểu:

Để sử dụng input() của Python 2 trên Python 3, có thể sử dụng eval(input())

Quay lại vấn đề chính, để nhập liệu trong Python 2, bạn sử dụng:

response = raw_input("Input your name: ")

Trong Python 3:

response = input("Input your name: ")

Trong trường hợp bạn muốn code của bạn có thể chạy trên cả Python 2 và 3:

1
2
3
4
5
6
7
8
from sys import version_info

py3 = version_info[0] > 2 #creates boolean value for test that Python major version > 2

if py3:
  response = input("Please enter your name: ")
else:
  response = raw_input("Please enter your name: ")

Links:

tags: python, raw_input