Trường ĐH Công nghệ – Đại học Quốc gia Hà Nội
Nhiệm vụ: Viết chương trình tính tổng tiền cho một hóa đơn.
| # | Tên | Số lượng | Đơn giá ($) | Thành tiền ($) |
|---|---|---|---|---|
| 1 | Book A | 1 | 10.0 | 10.0 |
| 2 | Book B | 2 | 2.5 | 5.0 |
Trong ví dụ trên:
Dùng type(...) để xem kiểu của biến hoặc giá trị
>>> type(5)
<class 'int'>
>>> x = [1, 2, 3]
>>> type(x)
<class 'list'>
Gán giá trị cho biến bằng toán tử =
x = 5 # gán cơ bản
a = b = c = 5 # gán cùng giá trị
x, y, z = 1, 2.5, "Python" # gán nhiều giá trị
>>> x = 5
>>> type(x)
<class 'int'>
>>> x = "Hello"
>>> type(x)
<class 'str'>
Ép kiểu: Chuyển đổi giá trị của một kiểu sang kiểu khác
s = "5" # s là str
x = int(s) # x là int
y = float(x) # y là float
def f():
x = 10 # cục bộ
print(x)
f()
print(x) # lỗi
y = 20 # toàn cục
def g():
print(y)
g()
print(y) # ok
Biểu thức = tổ hợp toán tử và toán hạng tạo ra giá trị.
3 + 5
2 * (3 + 4)
(a + b) / 2 > 10 and (a*b) % 2 == 0
| Toán tử | Mô tả |
|---|---|
| + | Cộng |
| - | Trừ |
| * | Nhân |
| / | Chia thường |
| // | Chia lấy nguyên |
| % | Chia lấy dư |
| ** | Lũy thừa |
>>> 3 + 5
8
>>> 10 - 2 * 3
4
>>> 7 / 2
3.5
>>> 7 // 2
3
>>> 7 % 2
1
>>> 2 ** 3
8
| Toán tử | Kết quả |
|---|---|
| == | So sánh bằng |
| != | So sánh khác |
| < | Nhỏ hơn |
| <= | Nhỏ hơn hoặc bằng |
| > | Lớn hơn |
| >= | Lớn hơn hoặc bằng |
⚠️ Với số thực: dùng math.isclose(a, b) thay cho ==.
>>> 3 == 5
False
>>> 3 != 5
True
>>> 3 < 5
True
>>> 3 <= 3
True
>>> 3 > 5
False
>>> 3 >= 3
True
Chuỗi: so sánh từng ký tự theo mã Unicode.
>>> "apple" < "banana"
True
>>> "Apple" < "apple" # chữ hoa < chữ thường
True
>>> "abc" < "abcd" # chuỗi ngắn hơn < chuỗi dài hơn
True
List/Tuple: so sánh từng phần tử từ trái sang phải.
>>> [1, 2, 3] == [1, 2, 3]
True
>>> (1, 2) != (1, 2, 0)
True
>>> [1, 2, 3] < [1, 2, 4]
True
>>> (1, 2) < (1, 2, 0)
True
>>> [1, 2, 3] < [1, 2]
False
>>> a = True
>>> b = False
>>> a and b
False
>>> a or b
True
>>> not a
False
a = 10 # 1010 (nhị phân)
b = 4 # 0100
print(a & b) # 1010 & 0100 = 0000 -> 0
print(a | b) # 1010 | 0100 = 1110 -> 14
print(~a) # bit NOT của a -> -11 (dạng bù 2)
print(a ^ b) # 1010 ^ 0100 = 1110 -> 14
print(a >> 2) # 1010 >> 2 = 0010 -> 2
print(a << 2) # 1010 << 2 = 101000 -> 40
a = 10
b = a # b = 10
print(b)
b += a # b = b + a = 20
print(b)
b -= a # b = b - a = 10
print(b)
b *= a # b = b * a = 100
print(b)
b <<= a # dịch trái rồi gán
print(b) # 102400
>>> x = 24
>>> y = 20
>>> lst = [10, 20, 30, 40, 50]
>>> x in lst
False
>>> y in lst
True
>>> x not in lst
True
>>> y not in lst
False
>>> "Hello" in "Hello World"
True
>>> "Python" not in "Hello World"
True
| Thứ tự | Tên | Toán tử |
|---|---|---|
| 1 | Ngoặc | (), [], {} |
| 2 | Lũy thừa | ** |
| 3 | Cộng/Trừ đơn | -a, +a, ~a |
| 4 | Nhân, Chia | /, *, //, % |
| 5 | Cộng & Trừ | +, - |
| Thứ tự | Tên | Toán tử |
|---|---|---|
| 6 | Dịch bit | <<, >> |
| 7 | AND bit | & |
| 8 | XOR bit | ^ |
| 9 | OR bit | | |
| 10 | So sánh | >=, <=, >, < |
| 11 | Bằng/Khác | ==, != |
| 12 | Gán | =, +=, -=, ... |
| 13 | Đồng nhất & Thành viên | is, in, ... |
| 14 | Logic | and, or, not |
Điều kiện trong câu lệnh rẽ nhánh / vòng lặp
if (score >= 5) and (absence < 3):
print("Qua môn")
x = 0
while x < 10:
x += 1
Điều kiện trong danh sách
squares = [x**2 for x in range(10) if x % 2 == 0]
Biểu thức trong hàm
def square(x):
return x**2
Biểu thức phức tạp
ok = max(a, b, c) > 10 and (a + b) % 2 == 0
>>> name = input("Nhập tên của bạn: ")
Nhập tên của bạn: Alice
>>> print("Xin chào,", name, "! Chào mừng bạn!")
Xin chào, Alice ! Chào mừng bạn!
>>> x, y = input("Nhập 2 số: ").split()
Nhập 2 số: 10 20
>>> print("Số thứ nhất:", x)
Số thứ nhất: 10
>>> print("Số thứ hai:", y)
Số thứ hai: 20
>>> n = int(input("Có bao nhiêu bông hoa? "))
Có bao nhiêu bông hoa? 5
>>> print(n)
5
>>> price = float(input("Giá mỗi bông hoa: "))
Giá mỗi bông hoa: 2.5
>>> print(price)
2.5
>>> n = input("Nhập số: ")
Nhập số: 5
>>> print(n * 2) # lặp chuỗi, không phải nhân số
55
>>> price = int(input("Giá: ")) # nhập 2.5 sẽ gây lỗi
Giá: 2.5
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ValueError: invalid literal for int() with base 10: '2.5'
>>> name = input("Nhập tên: ")
Nhập tên: Alice
>>> print("Xin chào,", name, "! Chào mừng bạn!")
Xin chào, Alice ! Chào mừng bạn!
>>> name = "UET-FIT"
>>> age = 30
>>> print("Xin chào, tôi là {} và {} tuổi.".format(name, age))
Xin chào, tôi là UET-FIT và 30 tuổi.
>>> import datetime
>>> today = datetime.date.today()
>>> print(f"Hôm nay: {today:%d-%m-%Y}")
Hôm nay: 05-03-2024
>>> name = "UET-FIT"
>>> age = 30
>>> print(f"Xin chào, tôi là {name}, {age} tuổi.")
Xin chào, tôi là UET-FIT, 30 tuổi.