Python cho Tin học trẻ · Bảng B (THCS)
while: lặp khi chưa biết trước số lầnbreak – thoát vòng lặp, continue – bỏ qua một lượtfor, khi nào dùng whileMỗi ngày em bỏ heo 2000 đồng. Bao nhiêu ngày thì đủ 50 000 đồng?
while.| Scratch | Python |
|---|---|
| lặp lại cho đến khi < đủ tiền > | while tien < 50000: |
| liên tục | while True: |
tien = 0 ngay = 0 while tien < 50000: tien += 2000 ngay += 1 print(ngay)
25
printtien = 0 while tien < 50000: print("Bo heo...")
Quên tăng tien → điều kiện luôn đúng → chạy mãi không dừng!
while True: x = int(input()) if x == 0: break if x < 0: continue print(x * 2) print("Het")
3 6 -4 5 10 0 Het
break: thoát hẳn vòng lặpcontinue: bỏ phần còn lại, sang lượt tiếp| Tình huống | Dùng |
|---|---|
| Biết trước số lần: n số, từ 1 đến n | for |
| Lặp đến khi một điều kiện xảy ra | while |
| Lặp mãi, tự quyết định lúc dừng | while True + break |
Gửi A đồng, lãi suất r% mỗi năm (tiền lãi cộng vào gốc). Sau ít nhất bao nhiêu năm số tiền đạt ít nhất B?
Input: A, r, B trên một dòng (0 < A < B ≤ 10⁹, 1 ≤ r ≤ 100).
Output: số năm.
| Input | Output |
|---|---|
100 10 200 | 8 |
A = A * (100 + r) / 100Input: số nguyên n (0 ≤ n ≤ 10¹⁸).
Output: số chữ số của n.
| Input | Output |
|---|---|
2026 | 4 |
7 | 1 |
0 | 1 |
n //= 10 thì n mất một chữ số. Cẩn thận với n = 0!Bắt đầu từ n: nếu n chẵn thì chia 2, nếu n lẻ thì nhân 3 cộng 1. Sau bao nhiêu bước thì n bằng 1?
Input: n (1 ≤ n ≤ 10⁶). Output: số bước.
| Input | Output |
|---|---|
6 | 8 |
1 | 0 |
Input: số nguyên S (1 ≤ S ≤ 10¹²).
Output: n nhỏ nhất sao cho 1 + 2 + … + n lớn hơn S.
| Input | Output |
|---|---|
10 | 5 |
1 | 2 |
Máy nghĩ một số từ 1 đến 100. Em đoán, máy trả lời Lớn hơn / Nhỏ hơn / Đúng rồi! và cho biết em đã đoán bao nhiêu lần.
import random bi_mat = random.randint(1, 100)
input("Em doan: ").Có cách nào luôn luôn đoán đúng số từ 1 đến 100 trong tối đa 7 lần?
Nhập các số nguyên, mỗi số một dòng, kết thúc khi gặp số 0 (không tính số 0).
Output: tổng và số lớn nhất. Có ít nhất một số khác 0.
| Input | Output |
|---|---|
3
-7
12
0 | 8 12 |
-5
-2
0 | -7 -2 |
while dieu_kien: ... while True: ... if muon_dung: break
while: lặp trong khi điều kiện đúngbreak thoát, continue bỏ qua lượtfor| Input | Output |
|---|---|
10 (bài 1) | 1 1 2 3 5 8 |
10 (bài 2) | 16 |