Câu lệnh nhập với biến kiểu nguyên là gì? Cú pháp trong Python

Trả lời nhanh

Trong Python, câu lệnh nhập dữ liệu cho biến kiểu nguyên là n = int(input()). Hàm input() luôn trả về một chuỗi ký tự, nên phải dùng hàm int() để chuyển chuỗi đó thành số nguyên trước khi gán cho biến n. Nếu thiếu int(), biến n chỉ là chuỗi và phép tính sẽ sai hoặc báo lỗi.

input() làm gì?

Khi chương trình chạy đến lệnh input(), nó dừng lại chờ em gõ dữ liệu từ bàn phím và nhấn Enter. Toàn bộ những gì em gõ được trả về dưới dạng chuỗi, kể cả khi em gõ một con số. Ví dụ em gõ 25 thì chương trình nhận được chuỗi “25”, chưa phải số 25.

Vì vậy muốn có một biến kiểu nguyên, em cần ép kiểu bằng int(). Có thể hình dung đơn giản: input() là cái cổng nhận chữ, còn int() là cái máy đổi chữ số thành số thật.

Ví dụ dễ hiểu

so_tuoi = int(input("Nhap so tuoi: "))
print(so_tuoi + 1)

Nếu em gõ 15 thì chương trình in ra 16. Nếu bỏ int(), lệnh so_tuoi + 1 sẽ báo lỗi vì không thể cộng chuỗi với số nguyên.

Một số tình huống nhập khác

Yêu cầu Câu lệnh Kiểu dữ liệu
Nhập một số nguyên n = int(input()) Số nguyên (int)
Nhập một số thực x = float(input()) Số thực (float)
Nhập một xâu ký tự s = input() Chuỗi (str)
Nhập hai số nguyên trên một dòng a, b = map(int, input().split()) Hai số nguyên

Với trường hợp nhập nhiều số trên một dòng, input().split() tách dòng thành các phần theo dấu cách, còn map(int, …) đổi từng phần sang số nguyên.

Vì sao các cách viết khác không đúng?

  • n = input(): n là chuỗi, không phải số nguyên.
  • n = float(input()): n là số thực, kết quả có dấu thập phân (ví dụ 5.0), không đúng yêu cầu kiểu nguyên.
  • n = str(input()): vẫn là chuỗi; hàm str() không đổi chuỗi thành số.
  • readln(n): đây là cú pháp nhập của Pascal, không dùng trong Python. Nếu đề thuộc chương trình Pascal cũ thì đáp án là readln(n) với n khai báo kiểu integer.

Lỗi thường gặp

  • Gõ dữ liệu không phải số nguyên (ví dụ 3.5 hoặc chữ) khi chương trình dùng int(input()) sẽ gây lỗi ValueError.
  • Nhập nhiều số mà dùng int(input()) cho cả dòng “3 4” cũng gây lỗi vì dòng đó có dấu cách.
  • Quên dấu ngoặc: viết int(input() thiếu một dấu ) sẽ báo lỗi cú pháp.

Mẹo nhớ

Hãy nhớ công thức “ép kiểu bên ngoài, nhập bên trong”: kiểu dữ liệu cần lấy đặt ở ngoài (int, float), lệnh input() đặt ở trong. Muốn kiểu gì thì đặt tên kiểu đó ra ngoài.

Luyện tập

  1. Viết lệnh nhập hai số nguyên a và b rồi in tổng. Đáp án: a = int(input()); b = int(input()); print(a + b).
  2. Nếu gõ 7 rồi chạy lệnh x = input(); print(x * 2) thì kết quả là gì? Đáp án: 77, vì x là chuỗi nên phép nhân lặp chuỗi hai lần.
  3. Dòng nhập 4 9 6 cần lệnh nào để đọc ba số nguyên a, b, c? Đáp án: a, b, c = map(int, input().split()).

Câu hỏi thường gặp

Vì sao phải dùng int() cùng với input()?

Vì input() luôn trả về chuỗi ký tự. Hàm int() đổi chuỗi đó thành số nguyên để có thể tính toán được.

Câu lệnh nhập số thực trong Python là gì?

Dùng x = float(input()). Hàm float() đổi chuỗi nhập vào thành số thực.

Làm sao nhập nhiều số nguyên trên cùng một dòng?

Dùng a, b = map(int, input().split()). Hàm split() tách dòng theo dấu cách, map(int, ...) đổi từng phần thành số nguyên.