Kiểu dữ liệu Số (number)
Trong Python, các kiểu dữ liệu số được sử dụng để lưu trữ các giá trị số học. Python hỗ trợ ba kiểu dữ liệu số chính: int (số nguyên), float (số thực), và complex (số phức).
1. Số nguyên (int - Integer)
Phần tiêu đề “1. Số nguyên (int - Integer)”Định nghĩa
Phần tiêu đề “Định nghĩa”Số nguyên là các số không có phần thập phân. Chúng có thể là số dương, số âm, hoặc số không.
# Số nguyên dươngpositive_num = 100print(positive_num) # 100
# Số nguyên âmnegative_num = -50print(negative_num) # -50
# Số khôngzero = 0print(zero) # 0
# Kiểm tra kiểu dữ liệuprint(type(positive_num)) # <class 'int'>Số nguyên lớn
Phần tiêu đề “Số nguyên lớn”Python có thể xử lý số nguyên với độ lớn bất kỳ (chỉ giới hạn bởi bộ nhớ máy tính).
# Số nguyên rất lớnbig_number = 123456789012345678901234567890print(big_number)print(type(big_number)) # <class 'int'>Các hệ số khác nhau
Phần tiêu đề “Các hệ số khác nhau”Python hỗ trợ biểu diễn số nguyên ở nhiều hệ số khác nhau:
# Hệ thập phân (decimal - cơ số 10)decimal_num = 100print(decimal_num) # 100
# Hệ nhị phân (binary - cơ số 2) - bắt đầu bằng 0bbinary_num = 0b1010print(binary_num) # 10
# Hệ bát phân (octal - cơ số 8) - bắt đầu bằng 0ooctal_num = 0o12print(octal_num) # 10
# Hệ thập lục phân (hexadecimal - cơ số 16) - bắt đầu bằng 0xhex_num = 0xAprint(hex_num) # 10Chuyển đổi giữa các hệ số
Phần tiêu đề “Chuyển đổi giữa các hệ số”number = 255
# Chuyển sang nhị phân (binary)print(bin(number)) # 0b11111111
# Chuyển sang bát phân (octal)print(oct(number)) # 0o377
# Chuyển sang thập lục phân (hexadecimal)print(hex(number)) # 0xff2. Số thực (float - Floating Point)
Phần tiêu đề “2. Số thực (float - Floating Point)”Định nghĩa
Phần tiêu đề “Định nghĩa”Số thực là các số có phần thập phân. Python sử dụng dấu chấm . để phân cách phần nguyên và phần thập phân.
# Số thực dươngpositive_float = 3.14print(positive_float) # 3.14
# Số thực âmnegative_float = -2.5print(negative_float) # -2.5
# Số thực có phần thập phân bằng 0float_zero_decimal = 5.0print(float_zero_decimal) # 5.0
# Kiểm tra kiểu dữ liệuprint(type(positive_float)) # <class 'float'>Ký hiệu khoa học (Scientific Notation)
Phần tiêu đề “Ký hiệu khoa học (Scientific Notation)”# Sử dụng 'e' hoặc 'E' để biểu diễn lũy thừa của 10scientific_num = 3.14e2 # 3.14 × 10^2print(scientific_num) # 314.0
negative_exp = 2.5e-3 # 2.5 × 10^-3print(negative_exp) # 0.0025
big_scientific = 1.5E10 # 1.5 × 10^10print(big_scientific) # 15000000000.0Độ chính xác của số thực
Phần tiêu đề “Độ chính xác của số thực”Số thực trong Python có độ chính xác giới hạn (khoảng 15-17 chữ số thập phân).
# Ví dụ về độ chính xáca = 0.1 + 0.2print(a) # 0.30000000000000004 (không chính xác tuyệt đối)
# So sánh số thực nên dùng khoảng sai sốepsilon = 1e-10if abs(a - 0.3) < epsilon: print("Hai số gần bằng nhau") # Hai số gần bằng nhauCác giá trị đặc biệt
Phần tiêu đề “Các giá trị đặc biệt”# Vô cùng dương (infinity)positive_inf = float('inf')print(positive_inf) # inf
# Vô cùng âmnegative_inf = float('-inf')print(negative_inf) # -inf
# Không phải số (Not a Number)not_a_number = float('nan')print(not_a_number) # nan
# Kiểm tra vô cùngimport mathprint(math.isinf(positive_inf)) # Trueprint(math.isnan(not_a_number)) # True3. Số phức (complex - Complex Number)
Phần tiêu đề “3. Số phức (complex - Complex Number)”Định nghĩa
Phần tiêu đề “Định nghĩa”Số phức có dạng a + bj, trong đó:
alà phần thực (real part)blà phần ảo (imaginary part)jđại diện cho căn bậc hai của -1 (trong toán học thường dùngi)
# Tạo số phứccomplex_num = 3 + 4jprint(complex_num) # (3+4j)print(type(complex_num)) # <class 'complex'>
# Số phức với phần thực bằng 0imaginary_only = 5jprint(imaginary_only) # 5j
# Số phức với phần ảo bằng 0real_only = 7 + 0jprint(real_only) # (7+0j)Truy cập phần thực và phần ảo
Phần tiêu đề “Truy cập phần thực và phần ảo”complex_num = 3 + 4j
# Lấy phần thựcreal_part = complex_num.realprint(real_part) # 3.0
# Lấy phần ảoimag_part = complex_num.imagprint(imag_part) # 4.0Số phức liên hợp (Conjugate)
Phần tiêu đề “Số phức liên hợp (Conjugate)”complex_num = 3 + 4j
# Số phức liên hợp (đổi dấu phần ảo)conjugate = complex_num.conjugate()print(conjugate) # (3-4j)Tính toán với số phức
Phần tiêu đề “Tính toán với số phức”# Cộng, trừ, nhân, chiaz1 = 2 + 3jz2 = 1 + 2j
print(z1 + z2) # (3+5j)print(z1 - z2) # (1+1j)print(z1 * z2) # (-4+7j)print(z1 / z2) # (1.6-0.2j)
# Trị tuyệt đối (modulus)print(abs(z1)) # 3.6055512754639894. Chuyển đổi giữa các kiểu số
Phần tiêu đề “4. Chuyển đổi giữa các kiểu số”int() - Chuyển sang số nguyên
Phần tiêu đề “int() - Chuyển sang số nguyên”# Từ float sang int (bỏ phần thập phân)float_num = 3.14int_num = int(float_num)print(int_num) # 3
# Từ string sang intstr_num = "100"int_from_str = int(str_num)print(int_from_str) # 100
# Chuyển đổi từ hệ số khácbinary_str = "1010"decimal_from_binary = int(binary_str, 2) # Hệ nhị phânprint(decimal_from_binary) # 10
hex_str = "FF"decimal_from_hex = int(hex_str, 16) # Hệ thập lục phânprint(decimal_from_hex) # 255float() - Chuyển sang số thực
Phần tiêu đề “float() - Chuyển sang số thực”# Từ int sang floatint_num = 10float_num = float(int_num)print(float_num) # 10.0
# Từ string sang floatstr_num = "3.14"float_from_str = float(str_num)print(float_from_str) # 3.14
# Từ string với ký hiệu khoa họcscientific_str = "1.5e3"float_from_scientific = float(scientific_str)print(float_from_scientific) # 1500.0complex() - Chuyển sang số phức
Phần tiêu đề “complex() - Chuyển sang số phức”# Từ số thựcreal_num = 5complex_from_real = complex(real_num)print(complex_from_real) # (5+0j)
# Từ hai số (phần thực, phần ảo)complex_num = complex(3, 4)print(complex_num) # (3+4j)
# Từ stringstr_complex = "2+3j"complex_from_str = complex(str_complex)print(complex_from_str) # (2+3j)5. Các phép toán số học
Phần tiêu đề “5. Các phép toán số học”a = 10b = 3
# Cộngprint(a + b) # 13
# Trừprint(a - b) # 7
# Nhânprint(a * b) # 30
# Chia thực (luôn trả về float)print(a / b) # 3.3333333333333335
# Chia lấy phần nguyên (floor division)print(a // b) # 3
# Chia lấy phần dư (modulo)print(a % b) # 1
# Lũy thừaprint(a ** b) # 10006. Các hàm toán học hữu ích
Phần tiêu đề “6. Các hàm toán học hữu ích”# Giá trị tuyệt đốiprint(abs(-10)) # 10print(abs(-3.14)) # 3.14
# Làm trònprint(round(3.14159)) # 3print(round(3.14159, 2)) # 3.14 (làm tròn đến 2 chữ số thập phân)
# Giá trị lớn nhất, nhỏ nhấtprint(max(1, 5, 3, 9, 2)) # 9print(min(1, 5, 3, 9, 2)) # 1
# Lũy thừa (cách khác)print(pow(2, 3)) # 8print(pow(2, 3, 5)) # 3 (2^3 % 5 = 8 % 5 = 3)
# Tổngnumbers = [1, 2, 3, 4, 5]print(sum(numbers)) # 157. Module math - Các hàm toán học nâng cao
Phần tiêu đề “7. Module math - Các hàm toán học nâng cao”import math
# Hằng sốprint(math.pi) # 3.141592653589793print(math.e) # 2.718281828459045
# Làm tròn lên, xuốngprint(math.ceil(3.2)) # 4 (làm tròn lên)print(math.floor(3.8)) # 3 (làm tròn xuống)
# Căn bậc haiprint(math.sqrt(16)) # 4.0
# Lũy thừa và logaritprint(math.exp(2)) # 7.38905609893065 (e^2)print(math.log(10)) # 2.302585092994046 (ln(10))print(math.log10(100)) # 2.0 (log cơ số 10)
# Lượng giácprint(math.sin(math.pi / 2)) # 1.0print(math.cos(0)) # 1.0print(math.tan(math.pi / 4)) # 0.9999999999999999
# Chuyển đổi độ và radiandegrees = 180radians = math.radians(degrees)print(radians) # 3.141592653589793
radians = math.pidegrees = math.degrees(radians)print(degrees) # 180.08. Bài tập thực hành
Phần tiêu đề “8. Bài tập thực hành”Bài 1: Tính diện tích hình tròn
Phần tiêu đề “Bài 1: Tính diện tích hình tròn”import math
radius = float(input("Nhập bán kính: "))area = math.pi * radius ** 2print(f"Diện tích hình tròn: {area:.2f}")Bài 2: Chuyển đổi nhiệt độ
Phần tiêu đề “Bài 2: Chuyển đổi nhiệt độ”# Chuyển từ Celsius sang Fahrenheitcelsius = float(input("Nhập nhiệt độ Celsius: "))fahrenheit = (celsius * 9/5) + 32print(f"{celsius}°C = {fahrenheit}°F")
# Chuyển từ Fahrenheit sang Celsiusfahrenheit = float(input("Nhập nhiệt độ Fahrenheit: "))celsius = (fahrenheit - 32) * 5/9print(f"{fahrenheit}°F = {celsius:.2f}°C")Bài 3: Tính khoảng cách giữa hai điểm
Phần tiêu đề “Bài 3: Tính khoảng cách giữa hai điểm”import math
# Điểm A(x1, y1) và B(x2, y2)x1, y1 = 0, 0x2, y2 = 3, 4
distance = math.sqrt((x2 - x1)**2 + (y2 - y1)**2)print(f"Khoảng cách: {distance}") # 5.0Tổng kết
Phần tiêu đề “Tổng kết”- Python hỗ trợ 3 kiểu số: int, float, và complex
- Số nguyên có thể biểu diễn ở nhiều hệ số: nhị phân (0b), bát phân (0o), thập lục phân (0x)
- Số thực có thể dùng ký hiệu khoa học với
ehoặcE - Số phức có dạng
a + bj - Dùng
int(),float(),complex()để chuyển đổi giữa các kiểu - Module
mathcung cấp nhiều hàm toán học hữu ích