Viết chương trình nhỏ để thực hiện yêu cầu.
1. Khởi tạo các biến và gán giá trị cho mỗi kiểu dữ liệu sau: int, float, str, list
In ra màn hình địa chỉ biến, kiểu dữ liệu biến và giá trị biến.
Hãy thay đổi giá trị các biến trên và in lại địa chỉ của biến để quan
sát. Lưu ý cập nhật thay đổi giá trị list tên l với phương thức
l.append(value), l = list mới, là đổi ô nhớ cho l sang ô nhớ list mới
# Khởi tạo các biến
an_integer = 42 a_float =
3.14 a_string = "Hello,
world!" a_list = [1, 2, 3]
# In ra địa chỉ biến, kiểu dữ liệu và giá trị của chúng
print(f"an_integer: {id(an_integer)}, {type(an_integer)}, {an_integer}")
print(f"a_float: {id(a_float)}, {type(a_float)}, {a_float}")
print(f"a_string: {id(a_string)}, {type(a_string)}, {a_string}")
print(f"a_list: {id(a_list)}, {type(a_list)}, {a_list}")
# Thay đổi giá trị của các biến và in lại địa chỉ của chúng để quan sát
an_integer = 100 a_float = 2.71828 a_string = "Goodbye, world!"
a_list.append(4)
print(f"an_integer: {id(an_integer)}, {type(an_integer)}, {an_integer}")
print(f"a_float: {id(a_float)}, {type(a_float)}, {a_float}")
print(f"a_string: {id(a_string)}, {type(a_string)}, {a_string}")
print(f"a_list: {id(a_list)}, {type(a_list)}, {a_list}")
2. Khởi tạo biến number = biểu thức toán bất kỳ
Xét nếu biến number kiểu int thì in ra màn hình: Kết quả bạn có được là
số nguyên
Xét nếu biến number kiểu float thì in ra màn hình: Kết quả bạn có được
là số thực
isinstance(object, classinfo)
# Khởi tạo biến number với một biểu thức toán học bất kỳ
number = 2 + 3 * 4
# Xét kiểu dữ liệu của biến number và in ra kết quả tương ứng
if isinstance(number, int):
print("Kết quả bạn có được là số
nguyên") elif isinstance(number, float):
print("Kết quả bạn có được là số thực")
3. Nhập vào 3 giá trị ngày sinh, tháng sinh, năm sinh:
Xét nếu hợp lệ thì in ra ngày/tháng/năm hợp lệ, ngược lại in ra
ngày/tháng/năm không hợp lệ (ví dụ tháng 13 hay ngày 32 là không hợp
lệ)
# Nhập ngày, tháng và năm sinh day =
int(input("Nhập ngày sinh: ")) month =
int(input("Nhập tháng sinh: ")) year =
int(input("Nhập năm sinh: "))
# Xác định số ngày trong tháng
if month in [1, 3, 5, 7, 8, 10,
12]:
max_day = 31 elif
month in [4, 6, 9, 11]:
max_day = 30 elif month == 2: if year % 4 == 0 and (year
% 100 != 0 or year % 400 == 0): max_day = 29 else:
max_day = 28 else: print(f"Ngày/tháng/năm không hợp lệ:
{day}/{month}/{year}")
exit()
# Kiểm tra xem ngày sinh có hợp lệ hay không if day < 1 or day
> max_day: print(f"Ngày/tháng/năm không hợp lệ:
{day}/{month}/{year}") else: print(f"Ngày/tháng/năm hợp lệ:
{day}/{month}/{year}")
4. Nhập một số tiền bạn có là value. Giả sử và lãi suất ngân hàng là 5% mỗi
năm và lũy kế cộng dồn. Tính xem sau bao nhiêu năm bạn có số tiền hơn 5 t
value = float(input("Nhập số tiền ban đầu của bạn: "))
target_amount = 5000000000 # 5 tỷ đồng
interest_rate = 0.05 # 5% lãi suất hàng năm
years = 0 while value < target_amount: value +=
value * interest_rate years += 1 print("Số năm
cần để vượt qua 5 tỷ đồng là:", years)
5. Nhập số nguyên dương number. Xét number có là số nguyên tố hay
không?import math
def is_prime(number): if number < 2:
return False for i in range(2,
int(math.sqrt(number)) + 1): if number %
i == 0:
return False return True number =
int(input("Nhập số nguyên dương: "))
if is_prime(number): print(number, "là
số nguyên tố") else: print(number,
"không là số nguyên tố")
6. Nhập dãy N số nguyên dương. In ra các số nguyên tố có trong dãyimport
math
def is_prime(number): if number < 2:
return False for i in range(2,
int(math.sqrt(number)) + 1): if number %
i == 0:
return False
return True
N = int(input("Nhập số lượng phần tử trong dãy: "))
sequence = []
print("Nhập dãy số nguyên dương:")
for i in range(N): num =
int(input())
sequence.append(num)
print("Các số nguyên tố trong dãy:")
for num in sequence: if
is_prime(num): print(num)
7. Nhập họ và tên, tách lấy họ và in ra màn hình
full_name = input("Nhập họ và tên: ")
ho_ten = full_name.split()[0]
print("Họ: ", ho_ten)
8. Nhập ngày sinh date_of_birth. Xét xem date_of_birth có hợp lệ hay
không?import datetime date_of_birth = input("Nhập ngày sinh (dd/mm/yyyy): ")
try:
datetime.datetime.strptime(date_of_birth, "%d/%m/%Y")
print("Ngày sinh hợp lệ") except ValueError:
print("Ngày sinh không hợp lệ")
9. Nhập ngày sinh date_of_birth. Xét xem có chấp nhận được hay không? Nếu
OK có thể hãy chuẩn hóa cho hợp lệ đúng dạng dd/mm/yyyy.
import datetime date_of_birth = input("Nhập ngày sinh
(dd/mm/yyyy): ") try:
date_obj = datetime.datetime.strptime(date_of_birth, "%d/%m/%Y")
formatted_date = date_obj.strftime("%d/%m/%Y") print("Ngày sinh
hợp lệ và đã được chuẩn hóa:", formatted_date) except ValueError:
print("Ngày sinh không hợp lệ")
10.Nhập số nguyên N. Chương trình sẽ in ra tam giác Pascal có chiều cao N trên
màn hình.
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
def pascal_triangle(N):
triangle = [] for i in
range(N):
row = [1] * (i + 1) for j in range(1, i):
row[j] = triangle[i - 1][j - 1] + triangle[i - 1][j]
triangle.append(row) return triangle
N = int(input("Nhập chiều cao của tam giác Pascal: "))
triangle = pascal_triangle(N)
for row in triangle:
for num in row:
print(num, end=" ")
print()
11. Nhập text = input(“Nhập input của bạn:")
Dựa vào chuỗi text hãy xác định đó có thể là một trong các dữ liệu sau
đây hay không? Số nguyên, số thực, ngày tháng năm, other. def
check_data_type(text):
try:
int_value = int(text)
return "Số nguyên" except
ValueError:
try:
float_value = float(text)
return "Số thực" except
ValueError:
try:
date_obj = datetime.datetime.strptime(text, "%d/%m/%Y")
return "Ngày tháng năm" except ValueError:
return "Other"
text = input("Nhập input của bạn: ")
data_type = check_data_type(text)
print("Loại dữ liệu của", text, "là:", data_type)
12.Bắt Exception cho các bài 3, 10 để tránh ngắt chương trình khi người dùng
nhập dữ liệu sai sót
13.Đọc ghi file: tập tin text.
14.Đọc file csv dữ liệu=>danh sách, tự điển=>ghi vào file csv
15.Lập trình OOP quản lý các khóa học: sinh viên, khóa học, giảng viên
16. Lập trình OOP quản lý các khóa học: sinh viên(họ tên, năm sinh), khóa
học(tên môn học, số tín chỉ), giảng viên(họ tên, năm sinh)
Mỗi khóa học do một giảng viên dạy và có nhiều sinh viên học+điểm đánh
giá
Mỗi sinh viên có thể tham gia nhiều khóa học
Khởi tạo 3 GV, 5 SV, 3 khóa học
SV1 đăng ký 2 khóa học
SV2 đăng ký 2 khóa học
SV3 đăng ký 2 khóa học
In danh sách các khóa học của 1 SV In
danh sách sinh viên1 khóa học và điểm
class Student: def __init__(self, name,
year_of_birth): self.name = name
self.year_of_birth = year_of_birth
self.courses = []
def enroll_course(self, course):
self.courses.append(course)
def get_courses(self):
return self.courses class
Course: def __init__(self,
name, credit):
self.name = name
self.credit = credit
self.students = {}
def add_student(self, student, grade):
self.students[student] = grade
def get_students(self):
return self.students
class Lecturer: def __init__(self, name,
year_of_birth): self.name = name
self.year_of_birth = year_of_birth
# Khởi tạo giảng viên lecturer1 =
Lecturer("Nguyen Van A", 1980) lecturer2 =
Lecturer("Tran Thi B", 1975) lecturer3 =
Lecturer("Pham Van C", 1990)
# Khởi tạo sinh viên student1 =
Student("Nguyen Thi X", 2000) student2 =
Student("Tran Van Y", 2001) student3 =
Student("Pham Thi Z", 1999) student4 =
Student("Hoang Van K", 1998) student5 =
Student("Le Thi M", 1997)
# Khởi tạo khóa học course1 =
Course("Python Programming", 3) course2 =
Course("Data Structures", 4) course3 =
Course("Web Development", 2)
# Đăng ký khóa học cho sinh viên
student1.enroll_course(course1)
student1.enroll_course(course2)
student2.enroll_course(course1)
student2.enroll_course(course3)
student3.enroll_course(course2)
student3.enroll_course(course3)
# Thêm sinh viên và điểm vào khóa học
course1.add_student(student1, 8.5)
course1.add_student(student2, 7.8)
course2.add_student(student1, 9.2)
course2.add_student(student3, 8.9)
course3.add_student(student2, 7.5)
course3.add_student(student3, 8.2)
# In danh sách các khóa học của một sinh viên
print("Danh sách các khóa học của sinh viên:")
for course in student1.get_courses():
print(course.name)
# In danh sách sinh viên trong một khóa học và điểm
print("Danh sách sinh viên trong khóa học và điểm:")
for student, grade in course1.get_students().items():
print("Tên sinh viên:", student.name)
print("Điểm:", grade)
print()

Preview text:


Viết chương trình nhỏ để thực hiện yêu cầu.
1. Khởi tạo các biến và gán giá trị cho mỗi kiểu dữ liệu sau: int, float, str, list
In ra màn hình địa chỉ biến, kiểu dữ liệu biến và giá trị biến.
Hãy thay đổi giá trị các biến trên và in lại địa chỉ của biến để quan
sát. Lưu ý cập nhật thay đổi giá trị list tên l với phương thức
l.append(value),
l = list mới, là đổi ô nhớ cho l sang ô nhớ list mới
# Khởi tạo các biến an_integer = 42 a_float = 3.14 a_string = "Hello,
world!" a_list = [1, 2, 3]

# In ra địa chỉ biến, kiểu dữ liệu và giá trị của chúng
print(f"an_integer: {id(an_integer)}, {type(an_integer)}, {an_integer}")
print(f"a_float: {id(a_float)}, {type(a_float)}, {a_float}")
print(f"a_string: {id(a_string)}, {type(a_string)}, {a_string}")
print(f"a_list: {id(a_list)}, {type(a_list)}, {a_list}")

# Thay đổi giá trị của các biến và in lại địa chỉ của chúng để quan sát
an_integer = 100 a_float = 2.71828 a_string = "Goodbye, world!" a_list.append(4)
print(f"an_integer: {id(an_integer)}, {type(an_integer)}, {an_integer}")
print(f"a_float: {id(a_float)}, {type(a_float)}, {a_float}")
print(f"a_string: {id(a_string)}, {type(a_string)}, {a_string}")
print(f"a_list: {id(a_list)}, {type(a_list)}, {a_list}")

2. Khởi tạo biến number = biểu thức toán bất kỳ
Xét nếu biến number kiểu int thì in ra màn hình: Kết quả bạn có được là số nguyên
Xét nếu biến number kiểu float thì in ra màn hình: Kết quả bạn có được là số thực
isinstance(object, classinfo)
# Khởi tạo biến number với một biểu thức toán học bất kỳ number = 2 + 3 * 4
# Xét kiểu dữ liệu của biến number và in ra kết quả tương ứng
if isinstance(number, int):
print("Kết quả bạn có được là số
nguyên") elif isinstance(number, float):
print("Kết quả bạn có được là số thực")

3. Nhập vào 3 giá trị ngày sinh, tháng sinh, năm sinh:
Xét nếu hợp lệ thì in ra ngày/tháng/năm hợp lệ, ngược lại in ra
ngày/tháng/năm không hợp lệ (ví dụ tháng 13 hay ngày 32 là không hợp lệ)
# Nhập ngày, tháng và năm sinh day =
int(input("Nhập ngày sinh: ")) month =
int(input("Nhập tháng sinh: ")) year =
int(input("Nhập năm sinh: "))

# Xác định số ngày trong tháng
if month in [1, 3, 5, 7, 8, 10, 12]: max_day = 31 elif
month in [4, 6, 9, 11]:
max_day = 30 elif month == 2: if year % 4 == 0 and (year
% 100 != 0 or year % 400 == 0): max_day = 29 else:
max_day = 28 else: print(f"Ngày/tháng/năm không hợp lệ: {day}/{month}/{year}")
exit()
# Kiểm tra xem ngày sinh có hợp lệ hay không if day < 1 or day
> max_day: print(f"Ngày/tháng/năm không hợp lệ:
{day}/{month}/{year}") else: print(f"Ngày/tháng/năm hợp lệ: {day}/{month}/{year}")

4. Nhập một số tiền bạn có là value. Giả sử và lãi suất ngân hàng là 5% mỗi
năm và lũy kế cộng dồn. Tính xem sau bao nhiêu năm bạn có số tiền hơn 5 tỷ
value = float(input("Nhập số tiền ban đầu của bạn: "))
target_amount = 5000000000 # 5 tỷ đồng

interest_rate = 0.05 # 5% lãi suất hàng năm
years = 0 while value < target_amount: value +=
value * interest_rate years += 1 print("Số năm
cần để vượt qua 5 tỷ đồng là:", years)

5. Nhập số nguyên dương number. Xét number có là số nguyên tố hay
không?import math
def is_prime(number): if number < 2:
return False for i in range(2,
int(math.sqrt(number)) + 1): if number % i == 0:

return False return True number =
int(input("Nhập số nguyên dương: "))
if is_prime(number): print(number, "là
số nguyên tố") else: print(number,
"không là số nguyên tố")

6. Nhập dãy N số nguyên dương. In ra các số nguyên tố có trong dãyimport math
def is_prime(number): if number < 2:
return False for i in range(2,
int(math.sqrt(number)) + 1): if number % i == 0:
return False return True
N = int(input("Nhập số lượng phần tử trong dãy: ")) sequence = []
print("Nhập dãy số nguyên dương:") for i in range(N): num = int(input()) sequence.append(num)
print("Các số nguyên tố trong dãy:") for num in sequence: if is_prime(num): print(num)
7. Nhập họ và tên, tách lấy họ và in ra màn hình
full_name = input("Nhập họ và tên: ")
ho_ten = full_name.split()[0] print("Họ: ", ho_ten)
8. Nhập ngày sinh date_of_birth. Xét xem date_of_birth có hợp lệ hay
không?import datetime date_of_birth = input("Nhập ngày sinh (dd/mm/yyyy): ") try:
datetime.datetime.strptime(date_of_birth, "%d/%m/%Y")

print("Ngày sinh hợp lệ") except ValueError:
print("Ngày sinh không hợp lệ")

9. Nhập ngày sinh date_of_birth. Xét xem có chấp nhận được hay không? Nếu
OK có thể hãy chuẩn hóa cho hợp lệ đúng dạng dd/mm/yyyy.
import datetime date_of_birth = input("Nhập ngày sinh (dd/mm/yyyy): ") try:
date_obj = datetime.datetime.strptime(date_of_birth, "%d/%m/%Y")
formatted_date = date_obj.strftime("%d/%m/%Y") print("Ngày sinh
hợp lệ và đã được chuẩn hóa:", formatted_date) except ValueError:
print("Ngày sinh không hợp lệ")

10.Nhập số nguyên N. Chương trình sẽ in ra tam giác Pascal có chiều cao N trên màn hình. 1 1 1 1 2 1 1 3 3 1 1 4 6 4 1
def pascal_triangle(N): triangle = [] for i in range(N):
row = [1] * (i + 1) for j in range(1, i):
row[j] = triangle[i - 1][j - 1] + triangle[i - 1][j]
triangle.append(row) return triangle
N = int(input("Nhập chiều cao của tam giác Pascal: "))
triangle = pascal_triangle(N) for row in triangle: for num in row: print(num, end=" ") print()
11. Nhập text = input(“Nhập input của bạn:")
Dựa vào chuỗi text hãy xác định đó có thể là một trong các dữ liệu sau
đây hay không? Số nguyên, số thực, ngày tháng năm, other. def check_data_type(text): try: int_value = int(text)
return "Số nguyên" except ValueError: try:
float_value = float(text)
return "Số thực" except ValueError: try:
date_obj = datetime.datetime.strptime(text, "%d/%m/%Y")
return "Ngày tháng năm" except ValueError: return "Other"
text = input("Nhập input của bạn: ")
data_type = check_data_type(text)
print("Loại dữ liệu của", text, "là:", data_type)
12.Bắt Exception cho các bài 3, 10 để tránh ngắt chương trình khi người dùng
nhập dữ liệu sai sót
13.Đọc ghi file: tập tin text.
14.Đọc file csv dữ liệu=>danh sách, tự điển=>ghi vào file csv
15.Lập trình OOP quản lý các khóa học: sinh viên, khóa học, giảng viên
16. Lập trình OOP quản lý các khóa học: sinh viên(họ tên, năm sinh), khóa
học(tên môn học, số tín chỉ), giảng viên(họ tên, năm sinh)
Mỗi khóa học do một giảng viên dạy và có nhiều sinh viên học+điểm đánh giá
Mỗi sinh viên có thể tham gia nhiều khóa học
Khởi tạo 3 GV, 5 SV, 3 khóa học
SV1 đăng ký 2 khóa học
SV2 đăng ký 2 khóa học
SV3 đăng ký 2 khóa học
In danh sách các khóa học của 1 SV In
danh sách sinh viên1 khóa học và điểm
class Student: def __init__(self, name,
year_of_birth): self.name = name
self.year_of_birth = year_of_birth self.courses = []
def enroll_course(self, course):
self.courses.append(course)
def get_courses(self):
return self.courses class
Course: def __init__(self, name, credit): self.name = name self.credit = credit self.students = {}
def add_student(self, student, grade):
self.students[student] = grade
def get_students(self): return self.students
class Lecturer: def __init__(self, name,
year_of_birth): self.name = name
self.year_of_birth = year_of_birth
# Khởi tạo giảng viên lecturer1 =
Lecturer("Nguyen Van A", 1980) lecturer2 =
Lecturer("Tran Thi B", 1975) lecturer3 =
Lecturer("Pham Van C", 1990)
# Khởi tạo sinh viên student1 =
Student("Nguyen Thi X", 2000) student2 =
Student("Tran Van Y", 2001) student3 =
Student("Pham Thi Z", 1999) student4 =
Student("Hoang Van K", 1998) student5 =
Student("Le Thi M", 1997)
# Khởi tạo khóa học course1 =
Course("Python Programming", 3) course2 =
Course("Data Structures", 4) course3 =
Course("Web Development", 2)
# Đăng ký khóa học cho sinh viên
student1.enroll_course(course1)
student1.enroll_course(course2)
student2.enroll_course(course1)
student2.enroll_course(course3)
student3.enroll_course(course2)
student3.enroll_course(course3)
# Thêm sinh viên và điểm vào khóa học
course1.add_student(student1, 8.5)
course1.add_student(student2, 7.8)
course2.add_student(student1, 9.2)
course2.add_student(student3, 8.9)
course3.add_student(student2, 7.5)
course3.add_student(student3, 8.2)
# In danh sách các khóa học của một sinh viên
print("Danh sách các khóa học của sinh viên:")
for course in student1.get_courses(): print(course.name)
# In danh sách sinh viên trong một khóa học và điểm
print("Danh sách sinh viên trong khóa học và điểm:")
for student, grade in course1.get_students().items():
print("Tên sinh viên:", student.name)
print("Điểm:", grade) print()