Python cho Tin học trẻ · Bảng B (THCS)
Trong Scratch, em đã dùng Danh sách để làm gì?
| Scratch | Python |
|---|---|
| thêm 5 vào ds | ds.append(5) |
| phần tử 1 của ds | ds[0] |
| độ dài của ds | len(ds) |
| thay phần tử 1 của ds bằng 9 | ds[0] = 9 |
a = [3, 1, 4, 1, 5]
| Chỉ số | 0 | 1 | 2 | 3 | 4 |
|---|---|---|---|---|---|
| Giá trị | 3 | 1 | 4 | 1 | 5 |
| Chỉ số âm | -5 | -4 | -3 | -2 | -1 |
a[0] là 3, a[4] là 5a[-1] là phần tử cuối cùnga[5] → lỗi IndexError: list index out of rangea = [3, 1, 4, 1, 5] print(a[0], a[-1]) print(len(a)) a.append(9) print(a) a[0] = 7 print(a) b = [0] * 4 print(b)
3 5 5 [3, 1, 4, 1, 5, 9] [7, 1, 4, 1, 5, 9] [0, 0, 0, 0]
Đề: "Dòng 1 chứa n. Dòng 2 chứa n số nguyên a₁, a₂, …, aₙ."
n = int(input()) a = list(map(int, input().split())) print(*a)
5 3 1 4 1 5 3 1 4 1 5
print(*a) in các phần tử cách nhau dấu cách, không có ngoặc vuông.for x in a: print(x)
Dùng khi chỉ cần giá trị.
for i in range(n): print(i + 1, a[i])
Dùng khi cần biết vị trí.
i + 1.n = int(input()) a = list(map(int, input().split())) tb = sum(a) / n dem = 0 for x in a: if x > tb: dem += 1 print(dem)
Khi các giá trị nhỏ (ví dụ 0 ≤ aᵢ ≤ 1000): dùng cnt[v] = số lần giá trị v xuất hiện.
cnt = [0] * 1001 for x in a: cnt[x] += 1 print(cnt[3])
| Dãy a | 3 1 3 2 1 3 |
|---|---|
cnt[1] | 2 |
cnt[2] | 1 |
cnt[3] | 3 |
Input: dòng 1 là n (n ≤ 10⁵); dòng 2 là dãy n số nguyên.
Output: dãy theo thứ tự ngược lại.
| Input | Output |
|---|---|
5
3 1 4 1 5 | 5 1 4 1 3 |
Input: n (n ≤ 10⁵), dãy n số nguyên (|aᵢ| ≤ 10⁹).
Output: tổng các phần tử.
| Input | Output |
|---|---|
4
3 -1 4 10 | 16 |
sum(a).Input: n, dãy n số nguyên.
Output: số phần tử chẵn.
| Input | Output |
|---|---|
6
2 7 4 -6 9 0 | 4 |
Input: dòng 1 là n và x; dòng 2 là dãy n số.
Output: các vị trí (đánh số từ 1) có giá trị bằng x, hoặc -1 nếu không có.
| Input | Output |
|---|---|
6 2
2 5 2 7 2 1 | 1 3 5 |
3 9
1 2 3 | -1 |
Input: n, dãy n số nguyên.
Output: số phần tử lớn hơn trung bình cộng của dãy.
| Input | Output |
|---|---|
5
1 2 3 4 10 | 1 |
Input: n (n ≤ 10⁵), dãy n số (0 ≤ aᵢ ≤ 1000).
Output: số giá trị khác nhau, và giá trị xuất hiện nhiều lần nhất (nếu nhiều giá trị cùng nhiều nhất thì in giá trị nhỏ nhất).
| Input | Output |
|---|---|
7
3 1 3 2 1 3 2 | 3 3 |
4
5 5 2 2 | 2 2 |
| Em viết | Vấn đề |
|---|---|
a = map(int, input().split()) | quên list(...) → không dùng a[0] được |
print(a[n]) | chỉ số cuối là n - 1 |
for i in range(1, n): | bỏ sót a[0] |
in vị trí i | đề đánh số từ 1 → in i + 1 |
n = int(input()) a = list(map(int, input().split())) for i in range(n): ... a[i] ... print(*a)
a[-1]: phần tử cuốiappend, len, sum[0] * n: list n số 0cnt[x] += 1-1).