Tin học 10 – Bài 18
Các lệnh vào ra đơn giản

Mục tiêu bài học

  • Về kiến thức:
    • Biết và thực hiện được các lệnh vào, ra dữ liệu cơ bản trong Python.
    • Nắm được cách chuyển đổi qua lại giữa các kiểu dữ liệu đơn giản như số nguyên, số thực và xâu ký tự.
  • Về kỹ năng:
    • Thực hành thành thạo việc nhập dữ liệu từ bàn phím.
    • Thực hiện các phép biến đổi kiểu dữ liệu một cách chính xác.
  • Về phẩm chất:
    • Rèn luyện tính cẩn thận, trách nhiệm khi làm việc.
    • Xây dựng tinh thần chăm chỉ, chuyên cần để hoàn thành các nhiệm vụ học tập.

Hoạt động khởi động

Để tương tác với người dùng, chương trình cần có lệnh để nhập dữ liệu và lệnh để xuất thông tin. Ở các bài trước, chúng ta đã làm quen với lệnh print() để đưa dữ liệu ra màn hình. Trong bài này, chúng ta sẽ tìm hiểu về lệnh input() để nhận dữ liệu từ người dùng.

Tin học 10 - Bài 18
Quan sát hình ảnh trên, em dự đoán lệnh nhập dữ liệu input() có cú pháp và chức năng như thế nào?

+ Lệnh input() dùng để nhận dữ liệu do người dùng nhập vào từ bàn phím. Dữ liệu nhập vào sẽ được chương trình đọc và lưu vào một biến để xử lý sau này.
+ Cú pháp có thể là tên_biến = input("Dòng thông báo cho người dùng").

1. Các lệnh vào ra đơn giản

Trong Python, hai lệnh vào-ra cơ bản và phổ biến nhất là input() và print().

  • Lệnh input(): Dùng để nhập dữ liệu từ thiết bị vào chuẩn (thường là bàn phím).
  • Lệnh print(): Dùng để xuất dữ liệu ra thiết bị ra chuẩn (thường là màn hình).

Cú pháp của lệnh input():
<biến> = input(<Dòng thông báo>)

Lưu ý quan trọng: Mọi dữ liệu được nhập từ lệnh input() đều được coi là một xâu kí tự (string), kể cả khi bạn nhập vào một con số.

Lệnh input() cho phép nhập dữ liệu từ đâu? Giá trị được nhập sẽ là số hay xâu?

+ Lệnh input() cho phép nhập dữ liệu từ bàn phím. Giá trị trả về của lệnh này luôn luôn là một xâu kí tự.

Ví dụ:

# Nhập họ tên (xâu)
name = input("Nhập họ tên của bạn: ")
print("Xin chào", name)

# Nhập tuổi (vẫn là xâu)
age_str = input("Bạn bao nhiêu tuổi: ")
print("Tuổi của bạn là:", age_str)

2. Chuyển đổi kiểu dữ liệu cơ bản của Python

Nhận biết kiểu dữ liệu

Python có các kiểu dữ liệu cơ bản sau:

Kiểu dữ liệuTên kiểuVí dụMô tả
intSố nguyên10, -5, 100Lưu trữ các giá trị số nguyên (không có phần thập phân).
floatSố thực3.14, -2.5, 0.0Lưu trữ các giá trị số có phần thập phân.
strXâu ký tự (chuỗi)"Hello", '123'Lưu trữ các chuỗi ký tự trong dấu nháy đơn hoặc đôi.
boolLogic (Boolean)True, FalseLưu trữ giá trị đúng (True) hoặc sai (False).

Kiểm tra kiểu dữ liệu của biến

Trong Python, có cách nào để nhận biết được kiểu dữ liệu của một biến không?

Có, ta có thể dùng lệnh type() để nhận biết kiểu dữ liệu của một biến. Ví dụ, type(ten_bien) sẽ trả về kiểu dữ liệu của biến đó.

Vì input() luôn trả về xâu, chúng ta cần chuyển đổi kiểu dữ liệu nếu muốn thực hiện các phép toán số học. Python cung cấp các hàm trùng tên với kiểu dữ liệu để thực hiện việc này: int()float()str().

  • int(x): Chuyển x thành số nguyên. x có thể là số thực hoặc xâu chứa số nguyên.
  • float(x): Chuyển x thành số thực. x có thể là số nguyên hoặc xâu chứa số (nguyên hoặc thực).
  • str(x): Chuyển x thành xâu kí tự.
Giả sử có biến s với giá trị là xâu "123". Nếu muốn biến s có giá trị là số nguyên 123 chứ không phải là xâu "123" thì em phải làm gì?

Để chuyển xâu “123” thành số nguyên 123, ta sử dụng hàm int(). Cú pháp thực hiện là: s = int(s).

Nhập dữ liệu kiểu số

Để nhập một số nguyên hoặc số thực từ bàn phím, chúng ta phải kết hợp lệnh input() với hàm chuyển đổi tương ứng.

Dữ liệu nhập từ bàn phím bằng lệnh input() luôn là xâu kí tự. Vậy muốn nhập dữ liệu đầu vào là số nguyên hay số thực thì phải làm thế nào?

Chúng ta cần lồng lệnh input() bên trong hàm chuyển đổi kiểu dữ liệu:

+ Để nhập số nguyên: bien_so_nguyen = int(input("Thông báo"))

+ Để nhập số thực: bien_so_thuc = float(input("Thông báo"))

Câu hỏi củng cố

’Xác

a) Biểu thức này là một xâu ký tự. Kiểu dữ liệu là str, giá trị là "15 + 20 – 7".

b) Đây là một phép so sánh. 32 > 45 là sai. Kiểu dữ liệu là bool, giá trị là False.

c) Đây là một phép so sánh. 8 + 5 bằng 13. 13 != 13 là sai. Kiểu dữ liệu là bool, giá trị là False.

d) Đây là một phép so sánh. 1 == 2 là sai. Kiểu dữ liệu là bool, giá trị là False.

Mỗi lệnh sau sẽ trả lại giá trị nào?
a) str(150)
b) int("1110")
c) float("15.0")

a) str(150): Chuyển số 150 thành xâu, kết quả là “150”.

b) int("1110"): Chuyển xâu “1110” thành số nguyên, kết quả là 1110.

c) float("15.0"): Chuyển xâu “15.0” thành số thực, kết quả là 15.0.

Luyện tập

Những lệnh nào trong các lệnh sau sẽ báo lỗi?
a) int("12+45")
b) float(123.56)
c) float("123,5.5")

Các lệnh sẽ báo lỗi là a và c.
a) int("12+45"): Lỗi. Hàm int() không thể chuyển đổi một xâu chứa biểu thức toán học.

b) float(123.56): Lệnh này hợp lệ, kết quả là số thực 123.56.

c) float("123,5.5"): Lỗi. Hàm float() sử dụng dấu chấm . làm dấu ngăn cách phần thập phân, không phải dấu phẩy ,.

Vì sao khi nhập một số thực cần viết lệnh float(input())?

+ Vì lệnh input() luôn trả về dữ liệu dưới dạng xâu kí tự. Nếu người dùng nhập vào “9.5”, chương trình sẽ nhận được xâu “9.5” chứ không phải số thực 9.5.

+ Do đó, cần dùng hàm float() để chuyển đổi xâu kí tự đó thành số thực để có thể thực hiện các phép tính toán.

Vận dụng

1. Viết chương trình nhập giá trị ss là tổng số giây từ bàn phím. Thông báo ra màn hình thời gian ss giây này sau khi đổi thành thời gian tính bằng ngày, giờ, phút, giây

# Yêu cầu người dùng nhập tổng số giây
ss = int(input("Nhập tổng số giây: "))

# Lưu lại giá trị ban đầu để in ra
tong_giay_ban_dau = ss

# Tính toán
# 1 ngày = 86400 giây
ngay = ss // 86400
s_con_lai = ss % 86400

# 1 giờ = 3600 giây
gio = s_con_lai // 3600
s_con_lai = s_con_lai % 3600

# 1 phút = 60 giây
phut = s_con_lai // 60
giay = s_con_lai % 60

# In kết quả ra màn hình
print(tong_giay_ban_dau, "giây =", ngay, "ngày", gio, "giờ", phut, "phút", giay, "giây")

Ví dụ kết quả:
Nếu người dùng nhập 684500, chương trình sẽ in ra:
684500 giây = 7 ngày 22 giờ 8 phút 20 giây

2. Viết chương trình nhập ba số thực dương a, b, c và tính chu vi, diện tích của tam giác có độ dài các cạnh là a, b, c (biết rằng a, b, c thỏa mãn bất đẳng thức tam giác). Gợi ý: Dùng công thức Heron để tính diện tích.

– Theo công thức Heron, diện tích S của một tam giác có các cạnh a, b, c được tính bằng:
S = √([p(p-a)(p-b)(p-c)])
Trong đó p là nửa chu vi: p = (a + b + c) / 2.

– Đây là chương trình Python tương ứng:

# Nhập độ dài 3 cạnh từ bàn phím
a = float(input("Nhập độ dài cạnh a: "))
b = float(input("Nhập độ dài cạnh b: "))
c = float(input("Nhập độ dài cạnh c: "))

# Tính chu vi
chu_vi = a + b + c

# Tính nửa chu vi (p)
p = chu_vi / 2

# Tính diện tích theo công thức Heron
# Lưu ý: **0.5 tương đương với căn bậc hai (mũ 1/2)
dien_tich = (p * (p - a) * (p - b) * (p - c)) ** 0.5

# In kết quả
print("Chu vi của tam giác là:", chu_vi)
print("Diện tích của tam giác là:", dien_tich)

Câu hỏi trắc nghiệm tin học 10 bài 18 - Các lệnh vào ra đơn giản

Thời gian làm bài: 30 phút
Đáp án hiển thị sau khi nộp bài
Câu hỏi sẽ được hiển thị ngẫu nhiên
Vui lòng nhập họ và tên để bắt đầu làm bài

NB

Trong Python, lệnh nào được dùng để đưa dữ liệu ra màn hình?

NB

Lệnh input() trong Python dùng để làm gì?

TH

Kiểu dữ liệu của giá trị mà lệnh input() trả về luôn là gì?

TH

Đâu là cú pháp đúng để nhận dữ liệu từ người dùng và gán vào biến hoten?

NB

Để kiểm tra kiểu dữ liệu của một biến trong Python, ta dùng lệnh nào?

NB

Trong Python, kiểu dữ liệu int dùng để biểu diễn loại dữ liệu nào?

TH

Biểu thức 5 > 10 sẽ có kiểu dữ liệu và giá trị nào?

NB

Hàm nào dùng để chuyển đổi một giá trị sang kiểu số nguyên?

TH

Kết quả của lệnh int(25.8) là gì?

TH

Lệnh nào dưới đây sẽ gây ra lỗi?

VD

Để nhập một số thực từ bàn phím và gán cho biến diem, cách viết nào sau đây là đúng?

VD

Cho đoạn code sau:
x = input("Nhập số thứ nhất: ")
y = input("Nhập số thứ hai: ")
print(x + y)

Nếu người dùng nhập lần lượt là 5 và 10, kết quả in ra màn hình sẽ là gì?

VD

Lệnh int("5 + 2") sẽ trả về kết quả gì?

VD

Để tính căn bậc hai của biến p trong Python, ta có thể viết biểu thức nào?

VD

Trong chương trình đổi giây ra ngày, giờ, phút, giây, phép toán nào được dùng để tính số giây còn lại sau khi đã quy đổi ra phút?

VD

Một chương trình cần tính tổng của 3 số nguyên m, n, p được nhập từ bàn phím. Dòng lệnh nào sau đây KHÔNG thể thiếu để chương trình chạy đúng?

Một học sinh viết chương trình tính chỉ số BMI (Body Mass Index) như sau:
can_nang = input("Nhập cân nặng (kg): ")
chieu_cao = input("Nhập chiều cao (m): ")
bmi = can_nang / (chieu_cao * chieu_cao)
print("Chỉ số BMI của bạn là:", bmi)

Dựa vào đoạn code, hãy cho biết các nhận định sau là Đúng hay Sai.

TH Biến can_nang và chieu_cao sau khi nhập sẽ có kiểu dữ liệu là số thực (float).

VD Dòng lệnh tính bmi sẽ gây ra lỗi vì không thể thực hiện phép toán số học với dữ liệu kiểu xâu.

TH Để chương trình chạy đúng, cần thay lệnh input() bằng lệnh print().

VD Cần sửa code thành can_nang = float(input(...))chieu_cao = float(input(...)) để chương trình hoạt động chính xác.

Xem xét đoạn mã Python sau:
a = "20"
b = 22
c = str(b)
d = int(a)

Hãy cho biết các phát biểu dưới đây là Đúng hay Sai.

TH Biến c sau khi gán sẽ có giá trị là 22 và kiểu dữ liệu là số nguyên (int).

VD Giá trị của biểu thức d + b là 42.

VD Lệnh print(a + c) sẽ in ra màn hình giá trị 42.

NB Lệnh type(a) sẽ cho kết quả là <class 'int'>.

Một chương trình có đoạn mã sau để nhập tuổi của người dùng và thông báo sau 5 năm nữa người đó bao nhiêu tuổi:
tuoi_hien_tai = int(input("Bạn bao nhiêu tuổi? "))
thong_bao = "5 năm nữa, bạn sẽ " + tuoi_hien_tai + 5 + " tuổi."
print(thong_bao)

Hãy xác định các nhận định sau đây là Đúng hay Sai.

TH Dòng lệnh đầu tiên đảm bảo biến tuoi_hien_tai có kiểu dữ liệu là số nguyên.

VD Dòng lệnh thứ hai sẽ gây ra lỗi TypeError do cố gắng cộng một xâu kí tự với một số nguyên.

VD Nếu người dùng nhập "mười tám" vào lời nhắc, chương trình sẽ chạy không có lỗi.

VD Để sửa lỗi, dòng thứ hai có thể được viết là thong_bao = "5 năm nữa, bạn sẽ " + str(tuoi_hien_tai + 5) + " tuổi.".

Bảng xếp hạng

Chưa có kết quả nào.

Để lại một bình luận

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *