Nhập dữ liệu từ bàn phím trong Python


Ngày tạo :

Python cung cấp hàm input() để nhập dữ liệu từ bàn phím cho chương trình. Khi gặp hàm input(), chương trình sẽ dừng lại để người dùng nhập dữ liệu. Bấm phím Enter để kết thúc nhập dữ liệu. Khi đó, hàm input() sẽ trả về một chuỗi kí tự (không có kí tự enter kết thúc nhập)

Cú pháp: input([promt])

Trong đó [promt] là thông báo sẽ hiển thị ra màn hình, gợi ý thông tin người dùng cần nhập vào chương trình, mặc định là None.

Ví dụ:

s = input(‘Nhập chuỗi : ’) 
print(s) 

Khi thực thi đoạn code, trên màn hình hiển thị thông báo Nhập chuỗi : và con trỏ nhấp nháy chờ người lập trình nhập dữ liệu từ bàn phím.

- Nếu nhập vào chuỗi kí tự: 10A1

- Lệnh print(s) sẽ in ra màn hình chuỗi: ‘10A1’

Chú ý: Hàm input() luôn trả về một chuỗi ký tự, nếu người dùng nhập vào một số thì hàm input() trả về là một chuỗi số. Do đó, khi thực hiện các phép tính trên dữ liệu nhập vào, chúng ta cần chuyển đổi từ kiểu dữ liệu chuỗi thành kiểu số.

Ví dụ 1:

n = input(‘Nhập số n = ’)
print(n) 

- Nếu nhập chuỗi kí tự số : 101

- Kết quả trên màn hình : ‘101’

Ví dụ 2:

n = int(input(‘Nhập số n = ’))
print(n)

- Nếu nhập chuỗi kí tự số : 101

- Kết quả trên màn hình : 101

Trong ví dụ 2, nếu người dùng nhập vào chuỗi các kí tự không thuộc các kí tự kiểu số nguyên trong Python, chương trình sẽ báo lỗi ValueError.

- Nhập nhiều giá trị trên một dòng trong Python

Việc nhập nhiều giá trị trên một dòng trong Python có thể được thực hiện bằng nhiều cách.

- Kết hợp với hàm split()

Cú pháp :

input().split(separator, maxsplit)

Nhiều giá trị sẽ được nhập, mỗi giá trị được cách nhau bởi một dấu phân cách separator. Mặc định separator là khoảng trắng. Tham số maxsplit là số giá trị tối đa được nhập vào từ bàn phím.

Ví dụ :

x, y = input("Nhập 2 giá trị :  ").split()

Trong ví dụ này, chuỗi được nhập phải có ít nhất một dấu cách để chương trình dịch phân tách chuỗi thành 2 giá trị và gán cho mỗi biến một giá trị. Nếu không, thông báo lỗi ValueError sẽ xuất hiện.

- Sử dụng list comprehension

Cách này thường được dùng để nhập một list trong Python. Tuy nhiên, chúng ta có thể sử dụng để nhập nhiều giá trị trên một dòng trong Python.

Ví dụ nhập 2 số nguyên :

x, y = [int(x) for x in input("Nhập 2 số nguyên :  ").split()]

Để nhập 2 số nguyên, ta còn có thể sử dụng hàm map() như sau:

x, y = map(int, input("Nhập 2 số nguyên :  ").split())

Hoặc :

x, y = [int(input(‘Nhập 2 số nguyên : ’)) for i in range(2)]

- Nhập list trong Python

x = list(map(int, input("Nhập list x: ").split()))

Hoặc :

x = [int(input(‘Nhập list x : ’)) for i in range(10)]

Hoặc :

A=[]
for i in range(10):
   x = int(input())
   A.append(x)

- Nhập một list với số phần tử không biết trước:

A=[]
While True :
   x = int(input())
   if x :
      A.append(x)
   else :
      break