Biến và nhập dữ liệu

Buổi 2

Python cho Tin học trẻ · Bảng B (THCS)

Buổi 2 – Biến và nhập dữ liệu1 / 29

Hôm nay em sẽ học

  1. Biến – chiếc hộp để cất giá trị
  2. Ba kiểu dữ liệu: số nguyên, số thực, chữ
  3. Nhập dữ liệu từ bàn phím bằng input()
  4. "Câu thần chú" nhập nhiều số trên một dòng
  5. In số thực làm tròn đẹp
Buổi 2 – Biến và nhập dữ liệu2 / 29

Khởi động: đoán kết quả

Không chạy máy, đoán xem mỗi dòng in ra gì?

print(17 // 5, 17 % 5)
print("ha" * 2 + "!")
print(2 ** 3 * 2)
print(100 % 7)
Buổi 2 – Biến và nhập dữ liệu3 / 29

Phần 1: Biến

Chiếc hộp có dán nhãn tên
Buổi 2 – Biến và nhập dữ liệu4 / 29

Biến – em đã gặp trong Scratch

ScratchPython
đặt diem thành 0diem = 0
thay đổi diem một lượng 5diem += 5
hiện giá trị diemprint(diem)
Biến giống một chiếc hộp có nhãn tên: nhãn là diem, bên trong đang chứa số 0.
Buổi 2 – Biến và nhập dữ liệu5 / 29

Tạo biến trong Python

ten = "An"
tuoi = 13
chieu_cao = 1.55
print(ten, tuoi, chieu_cao)
print(type(tuoi))
print(type(chieu_cao))
print(type(ten))
An 13 1.55
<class 'int'>
<class 'float'>
<class 'str'>
Dấu = nghĩa là gán: cất giá trị bên phải vào biến bên trái.
Buổi 2 – Biến và nhập dữ liệu6 / 29

Ba kiểu dữ liệu cơ bản

KiểuTên đầy đủVí dụ
intsố nguyên13, -7, 0, 2026
floatsố thực (có phần thập phân)1.55, 3.0, -0.5
strxâu ký tự (chữ)"An", "7A", "123"
"123" là chữ, không phải số! Có dấu nháy là chữ.
Buổi 2 – Biến và nhập dữ liệu7 / 29

Thay đổi giá trị của biến

diem = 0
diem = diem + 5
print(diem)
diem += 5
print(diem)
diem = diem * 2
print(diem)
5
10
20
  • Máy tính tính vế phải trước, rồi mới cất vào biến bên trái
  • diem += 5 là cách viết gọn của diem = diem + 5
  • Tương tự: -=, *=, //=, %=
Buổi 2 – Biến và nhập dữ liệu8 / 29

Đặt tên biến

ĐúngSaiVì sao sai
tongtổngcó dấu tiếng Việt
chieu_daichieu daicó khoảng trắng
so11sobắt đầu bằng chữ số
demprinttrùng tên lệnh của Python
Nên đặt tên có nghĩa: tong, dem, chieu_dai dễ hiểu hơn x, y, z.
Buổi 2 – Biến và nhập dữ liệu9 / 29

Hoán đổi hai biến

Trong Scratch phải dùng thêm biến tạm. Python làm trong một dòng:

a = 3
b = 8
a, b = b, a
print(a, b)
8 3
Buổi 2 – Biến và nhập dữ liệu10 / 29

Phần 2: Nhập dữ liệu

Máy tính hỏi – em trả lời
Buổi 2 – Biến và nhập dữ liệu11 / 29

Lệnh input()

ScratchPython
hỏi Tên em là gì? và đợiten = input()
trả lờibiến ten
ten = input()
print("Xin chao", ten)
Binh
Xin chao Binh
Khi chạy, chương trình dừng lại chờ em gõ rồi bấm Enter.
Buổi 2 – Biến và nhập dữ liệu12 / 29

Thí nghiệm: 5 + 3 = 53 ?!

a = input()
b = input()
print(a + b)
5
3
53

Tại sao lại là 53?

input() luôn trả về chữ. "5" + "3" là nối hai chữ thành "53".
Buổi 2 – Biến và nhập dữ liệu13 / 29

Đổi kiểu dữ liệu

LệnhÝ nghĩaVí dụ
int(...)đổi sang số nguyênint("5") → 5
float(...)đổi sang số thựcfloat("2.5") → 2.5
str(...)đổi sang chữstr(2026) → "2026"
a = int(input())
b = int(input())
print(a + b)
5
3
8
Buổi 2 – Biến và nhập dữ liệu14 / 29

Quy tắc vàng khi đi thi

Sai – bị chấm 0 điểm

n = int(input("Nhap n: "))
print("Ket qua la:", n * 2)

Đúng

n = int(input())
print(n * 2)
Máy chấm so sánh từng ký tự. Chỉ in đúng những gì đề yêu cầu, không in câu hỏi, không in lời dẫn.
Buổi 2 – Biến và nhập dữ liệu15 / 29

Câu thần chú: nhiều số trên một dòng

Đề thi hay cho: "Một dòng chứa hai số nguyên a, b cách nhau bởi dấu cách"

a, b = map(int, input().split())
BướcKết quả
input() đọc cả dòng"5 3"
.split() tách theo dấu cách["5", "3"]
map(int, ...) đổi từng phần thành số5 và 3
Buổi 2 – Biến và nhập dữ liệu16 / 29

Ví dụ: ba số trên một dòng

a, b, c = map(int, input().split())
print(a + b + c)
print(a * b * c)
2 3 4
9
24
Số biến bên trái phải bằng số lượng số trên dòng, nếu không Python báo lỗi ValueError.
Buổi 2 – Biến và nhập dữ liệu17 / 29

Phần 3: In số thực đẹp

Làm tròn đúng yêu cầu đề
Buổi 2 – Biến và nhập dữ liệu18 / 29

In số thực làm tròn

x = 10 / 3
print(x)
print(round(x, 2))
print(f"{x:.2f}")
print(f"{5:.2f}")
print(f"{2.345678:.3f}")
3.3333333333333335
3.33
3.33
5.00
2.346
  • f"{x:.2f}" luôn in đủ 2 chữ số sau dấu chấm
  • Đề yêu cầu "làm tròn k chữ số" → dùng :.kf
Buổi 2 – Biến và nhập dữ liệu19 / 29

Luyện tập

Từ hôm nay: mọi bài đều giống đề thi thật
Buổi 2 – Biến và nhập dữ liệu20 / 29

Cách đọc một đề bài

PhầnÝ nghĩa
InputDữ liệu chương trình phải đọc vào (bằng input())
OutputChương trình phải in ra những gì
Ví dụMột bộ dữ liệu mẫu để em kiểm tra
Giới hạnSố lớn tới đâu (ví dụ n ≤ 10⁹)
Chạy thử đúng ví dụ trong đề trước khi nộp bài!
Buổi 2 – Biến và nhập dữ liệu21 / 29

Bài 1 ★ – CHAO

Nhập tên của một bạn, in ra lời chào.

Input: một dòng chứa tên (không dấu).

Output: Xin chao <ten>!

InputOutput
AnXin chao An!
Minh AnhXin chao Minh Anh!
Buổi 2 – Biến và nhập dữ liệu22 / 29

Bài 2 ★ – TONG2

Tính tổng hai số nguyên.

Input: hai số nguyên a, b trên một dòng (|a|, |b| ≤ 10¹⁸).

Output: giá trị a + b.

InputOutput
3 -10-7
1000000000000000000 11000000000000000001
Buổi 2 – Biến và nhập dữ liệu23 / 29

Bài 3 ★ – HCN

Tính chu vi và diện tích hình chữ nhật.

Input: chiều dài, chiều rộng (số nguyên dương ≤ 10⁹) trên một dòng.

Output: chu vi và diện tích, cách nhau một dấu cách.

InputOutput
5 316 15
Buổi 2 – Biến và nhập dữ liệu24 / 29

Bài 4 ★★ – TBC

Tính trung bình cộng của ba số nguyên.

Input: ba số nguyên trên một dòng.

Output: trung bình cộng, làm tròn 2 chữ số thập phân.

InputOutput
1 2 42.33
2 2 22.00
Buổi 2 – Biến và nhập dữ liệu25 / 29

Bài 5 ★★ – DOIGIAY

Đổi n giây ra giờ, phút, giây.

Input: số nguyên n (0 ≤ n ≤ 86399).

Output: giờ, phút, giây cách nhau dấu cách.

InputOutput
37251 2 5
590 0 59
Buổi 2 – Biến và nhập dữ liệu26 / 29

Bài 6 ★★★ – DONGHO

Đồng hồ đang chỉ h giờ m phút. Sau t phút đồng hồ chỉ mấy giờ mấy phút?

Input: h, m, t trên một dòng (0 ≤ h ≤ 23, 0 ≤ m ≤ 59, 0 ≤ t ≤ 10⁹).

Output: giờ và phút.

InputOutput
23 50 200 10
8 0 15009 0
Gợi ý: đổi hết ra phút, cộng lại, rồi đổi ngược lại. Một ngày có 24 giờ.
Buổi 2 – Biến và nhập dữ liệu27 / 29

Tóm tắt buổi 2

Cần nhớViết thế nào
Tạo / đổi biếndiem = 0, diem += 5
Nhập một sốn = int(input())
Nhập nhiều số một dònga, b = map(int, input().split())
In 2 chữ số thập phânprint(f"{x:.2f}")
Hoán đổia, b = b, a
Không bao giờ viết input("Nhap n: ") trong bài thi.
Buổi 2 – Biến và nhập dữ liệu28 / 29

Bài về nhà

  1. Nhập bán kính r (số thực). In chu vi và diện tích hình tròn (π = 3.14), làm tròn 2 chữ số.
  2. Nhập số tiền n (chia hết cho 1000). Đổi ra nhiều tờ 500 000 nhất, phần còn lại đổi tờ 200 000, còn lại đổi tờ 100 000. In 3 số tờ.
InputOutput
20000004 0 0
18000003 1 1
Buổi 2 – Biến và nhập dữ liệu29 / 29
← → chuyển slide · F toàn màn hình