Lý thuyết Tin học 10 Bài 18 (Kết nối tri thức): Các lệnh vào ra đơn giản

Trả lời nhanh

Bài 18 Tin học 10 (Kết nối tri thức) học hai lệnh vào ra của Python: input() nhập dữ liệu từ bàn phím và luôn trả về một xâu kí tự; print() đưa dữ liệu ra màn hình, in được cả biểu thức. Vì input() trả về xâu nên muốn tính toán phải đổi kiểu bằng int() hoặc float(). Lệnh type() cho biết kiểu của một giá trị.

1. Vì sao cần lệnh vào ra?

Một chương trình thường làm ba việc: nhận dữ liệu, xử lí, đưa kết quả. Ở Bài 17 em đã biết biến và lệnh gán để lưu dữ liệu trong chương trình. Bài 18 giải quyết hai đầu còn lại: dữ liệu đi vào từ người dùng và kết quả đi ra màn hình.

Nếu em đã học bài trước, hãy xem lại tại Lý thuyết Tin học 10 Bài 17: Biến và lệnh gán để nhớ cách đặt tên biến và gán giá trị.

2. Lệnh nhập dữ liệu input()

Cú pháp

<biến> = input(<dòng thông báo>)
  • Chức năng: nhận dữ liệu từ thiết bị vào chuẩn (thường là bàn phím) khi người dùng gõ xong và nhấn Enter.
  • Dòng thông báo: là xâu đặt trong dấu nháy, hiện ra để nhắc người dùng cần nhập gì. Có thể để trống.
  • Kết quả: luôn là một xâu kí tự (str), dù người dùng gõ số, biểu thức hay chữ.

Ví dụ minh hoạ

a = input("Nhập a: ")   # người dùng gõ 5
print(a * 3)            # in ra 555, không phải 15
print(int(a) * 3)       # in ra 15

Kết quả 555 xuất hiện vì a là xâu “5”, và xâu nhân với 3 nghĩa là lặp xâu ba lần. Đây là lỗi mà rất nhiều bạn mới học gặp phải.

3. Lệnh đưa dữ liệu ra print()

  • Chức năng: đưa thông tin ra thiết bị ra chuẩn (thường là màn hình).
  • Có thể đưa ra nhiều giá trị, cách nhau bởi dấu phẩy, thuộc nhiều kiểu khác nhau.
  • Cho phép đặt cả biểu thức; Python tính xong mới in giá trị.
print("Tuổi:", 15)              # Tuổi: 15
print("Tổng:", 3 + 4)            # Tổng: 7
print("a", "b", "c", sep="-")    # a-b-c
print("A", end=" ")
print("B")                       # A B (cùng một dòng)

Hai tham số bổ sung đáng nhớ (mở rộng, giúp em trình bày đẹp hơn):

  • sep: chuỗi đặt giữa các giá trị, mặc định là một dấu cách.
  • end: chuỗi in ở cuối, mặc định là xuống dòng.

4. Các kiểu dữ liệu cơ bản và chuyển đổi kiểu

Kiểu Ý nghĩa Ví dụ giá trị Hàm chuyển đổi
int số nguyên 7, -3, 0 int()
float số thực 6.7, -0.5 float()
str xâu kí tự “An”, “12” str()
bool lôgic, chỉ có True hoặc False True, False bool()

Cách dùng từng hàm

  • int(): đổi số thực (bỏ phần thập phân) hoặc xâu ghi số nguyên thành số nguyên. Ví dụ int("12") là 12, int(3.9) là 3.
  • float(): đổi số nguyên hoặc xâu ghi số thành số thực. Ví dụ float("2.5") là 2.5.
  • str(): đổi giá trị bất kì thành xâu. Ví dụ str(15) là “15”.
  • type(): cho biết kiểu của giá trị hoặc biến. Ví dụ type(6.7) cho kiểu float.

Lưu ý quan trọng: int() và float() chỉ đổi được xâu ghi trực tiếp một giá trị số. Xâu chứa công thức như “2+3” sẽ báo lỗi.

Hai khuôn mẫu nhập số

n = int(input("Nhập số nguyên n: "))
x = float(input("Nhập số thực x: "))

Mẹo nhớ: “input luôn ra xâu; cần số thì bọc int hoặc float bên ngoài.” Thứ tự chạy là từ trong ra ngoài: nhập xâu trước, đổi kiểu sau.

5. Thực hành mẫu

Bài thực hành 1: Tổng ba số

Yêu cầu: nhập ba số tự nhiên rồi in tổng. Cách làm: dùng int(input(...)) ba lần, rồi in tổng.

m = int(input("Nhập m: "))
n = int(input("Nhập n: "))
p = int(input("Nhập p: "))
print("Tổng ba số là", m + n + p)

Với m = 4, n = 5, p = 6, màn hình in Tổng ba số là 15.

Bài thực hành 2: Giới thiệu học sinh

Yêu cầu: nhập họ tên và tuổi rồi in câu giới thiệu. Họ tên giữ nguyên là xâu; tuổi có thể giữ xâu vì chỉ in ra, nhưng đổi sang số sẽ tiện nếu sau này cần tính toán.

ten = input("Họ và tên: ")
tuoi = int(input("Tuổi: "))
print("Bạn", ten, tuoi, "tuổi")

Nhập “Lê Minh Anh” và 15, kết quả: Bạn Lê Minh Anh 15 tuổi.

Ví dụ thêm: trung bình cộng hai số thực

a = float(input("a = "))
b = float(input("b = "))
print("Trung bình cộng:", (a + b) / 2)

Nhập 7 và 8 thì in Trung bình cộng: 7.5. Cần dùng float vì người dùng có thể nhập số thập phân.

6. Lỗi sai thường gặp

Lỗi Nguyên nhân Cách sửa
n = input(); print(n + 1) báo TypeError Cộng xâu với số nguyên n = int(input())
Tổng hai số nhập vào ra “34” thay vì 7 Cộng hai xâu “3” và “4” là ghép xâu Đổi cả hai sang int trước khi cộng
int("3.5") báo ValueError Xâu có dấu thập phân không phải số nguyên Dùng float("3.5"), hoặc int(float("3.5"))
int("2+3") báo lỗi Xâu chứa công thức, không phải một giá trị số Chỉ nhập một số; muốn tính thì viết biểu thức trong mã lệnh
Viết Print, Input Python phân biệt chữ hoa, chữ thường Viết thường toàn bộ: print, input
Dấu nháy kiểu cong “ ” khi gõ code Python chỉ nhận nháy thẳng ” ” hoặc ‘ ‘ Gõ lại bằng nháy thẳng

Một điểm hay nhầm khác: "34 + 28 - 45" đặt trong dấu nháy là một xâu, nên type() trả về str chứ không phải int. Dấu nháy quyết định kiểu, không phải nội dung bên trong.

7. Kiểm tra nhanh kiến thức

  1. Lệnh type(6.7) cho kiểu gì? Đáp án: float, vì 6.7 có phần thập phân.
  2. Lệnh nào dùng để nhận biết kiểu dữ liệu? Đáp án: type(). Còn int() dùng để đổi kiểu, abs() lấy giá trị tuyệt đối.
  3. Biểu thức 4 + 5*6 - 34 > 5*8 - 2 có kiểu và giá trị gì? Vế trái bằng 4 + 30 – 34 = 0, vế phải bằng 40 – 2 = 38. Vì 0 > 38 sai nên kết quả là kiểu bool, giá trị False (viết hoa chữ F).
  4. Phát biểu “Bàn phím là thiết bị vào chuẩn duy nhất” đúng hay sai? Sai. Bàn phím chỉ là thiết bị vào chuẩn thông dụng nhất; khái niệm thiết bị chuẩn không giới hạn ở một thiết bị.
  5. Phát biểu “Lệnh print() đưa dữ liệu ra bàn phím” đúng hay sai? Sai. print() đưa dữ liệu ra màn hình, bàn phím là thiết bị nhập.
  6. Cú pháp đúng của input() là gì? biến = input(dòng thông báo). Python dùng dấu =, không dùng := như Pascal.

8. Bài luyện tập có đáp án

Bài 1. Người dùng nhập 4 cho lệnh x = input(). Hai lệnh print(x + x) và print(int(x) + int(x)) in ra gì?

Đáp án: 44 (ghép hai xâu “4”) và 8 (cộng hai số nguyên).

Bài 2. Viết chương trình nhập bán kính r (số thực) và in diện tích hình tròn, lấy số pi là 3.14.

Đáp án:

r = float(input("Bán kính r: "))
print("Diện tích:", 3.14 * r * r)

Với r = 2 ta có 3.14 × 2 × 2 = 12.56.

Bài 3. Đoạn lệnh sau lỗi ở đâu, sửa thế nào?

n = input("n = ")
print("Số kế tiếp:", n + 1)

Đáp án: n là xâu nên không cộng được với số 1 (báo TypeError). Sửa dòng đầu thành n = int(input("n = ")).

Bài 4. Cho biết kiểu của: 3/2, 4//2, "5", 2 < 3.

Đáp án: 3/2 = 1.5 là float; 4//2 = 2 là int; "5" là str; 2 < 3 là bool (True).

Bài 5. Nhập chiều dài và chiều rộng (số nguyên) của hình chữ nhật, in chu vi. Với 12 và 5, kết quả bao nhiêu?

Đáp án: print("Chu vi:", 2 * (d + r)) sau khi nhập d, r bằng int(input()). Kết quả 2 × (12 + 5) = 34.

9. Tóm tắt kiến thức cần nhớ

  • input() nhập từ bàn phím, kết quả luôn là xâu.
  • print() đưa ra màn hình, nhận nhiều giá trị và biểu thức.
  • Muốn tính toán với dữ liệu nhập: bọc int() hoặc float().
  • str() đổi sang xâu; type() kiểm tra kiểu.
  • Bốn kiểu cơ bản của bài: int, float, str, bool.

Tài liệu học tiếp

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

Vì sao input() luôn trả về xâu kí tự?

Python không đoán trước người dùng sẽ gõ số hay chữ nên coi mọi thứ gõ vào là văn bản. Muốn dùng như số, em phải đổi kiểu bằng int() hoặc float().

Khi nào dùng int(), khi nào dùng float() để nhập số?

Dùng int() khi đại lượng chỉ có giá trị nguyên như tuổi, số lượng. Dùng float() khi có thể là số thập phân như chiều dài, điểm trung bình, bán kính.

Tại sao int("3.5") báo lỗi còn int(3.5) thì không?

int() chỉ đổi được xâu ghi số nguyên. Xâu "3.5" có dấu thập phân nên lỗi. Còn int(3.5) đổi số thực thành số nguyên bằng cách bỏ phần thập phân, kết quả là 3.

Lệnh print() có in được nhiều giá trị khác kiểu cùng lúc không?

Có. Em viết các giá trị cách nhau bằng dấu phẩy, ví dụ print("Tuổi:", 15). Python tự đổi sang chữ và đặt một dấu cách giữa các giá trị.