0% found this document useful (0 votes)
28 views12 pages

Init - : Class Def

python in loop

Uploaded by

huuduongbpqn
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
28 views12 pages

Init - : Class Def

python in loop

Uploaded by

huuduongbpqn
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd

import math

class SinhVien:
def __init__(self, id, name, sex, age, diemToan, diemLy, diemHoa):
# Hàm khởi tạo cho đối tượng SinhVien với các thuộc tính cơ bản
self._id = id
self._name = name
self._sex = sex
self._age = age
self._diemToan = diemToan
self._diemLy = diemLy
self._diemHoa = diemHoa
self._diemTB = 0
self._hocLuc = ""

class QuanLySinhVien:
listSinhVien = []

def generateID(self):
# Hàm tạo ID tự động tăng dần cho sinh viên mới
maxId = 1
if [Link]() > 0:
maxId = max(sv._id for sv in [Link]) + 1
return maxId

def soLuongSinhVien(self):
# Hàm trả về số lượng sinh viên hiện có trong danh sách
return len([Link])

def nhapSinhVien(self):
# Hàm nhập thông tin sinh viên mới từ người dùng
svId = [Link]()
name = input("Nhap ten sinh vien: ")
sex = input("Nhap gioi tinh sinh vien: ")
age = int(input("Nhap tuoi sinh vien: "))
diemToan = float(input("Nhap diem toan: "))
diemLy = float(input("Nhap diem Ly: "))
diemHoa = float(input("Nhap diem Hoa: "))
sv = SinhVien(svId, name, sex, age, diemToan, diemLy, diemHoa)
[Link](sv)
[Link](sv)
[Link](sv)

def updateSinhVien(self, ID):


# Hàm cập nhật thông tin sinh viên dựa trên ID
sv = [Link](ID)
if sv is not None:
name = input("Nhap ten sinh vien: ")
sex = input("Nhap gioi tinh sinh vien: ")
age = int(input("Nhap tuoi sinh vien: "))
diemToan = float(input("Nhap diem toan: "))
diemLy = float(input("Nhap diem Ly: "))
diemHoa = float(input("Nhap diem Hoa: "))
sv._name = name
sv._sex = sex
sv._age = age
sv._diemToan = diemToan
sv._diemLy = diemLy
sv._diemHoa = diemHoa
[Link](sv)
[Link](sv)
else:
print(f"Sinh vien co ID = {ID} khong ton tai.")

def sortByID(self):
# Hàm sắp xếp danh sách sinh viên theo ID tăng dần
[Link](key=lambda x: x._id)

def sortByName(self):
# Hàm sắp xếp danh sách sinh viên theo tên tăng dần
[Link](key=lambda x: x._name)

def sortByDiemTB(self):
# Hàm sắp xếp danh sách sinh viên theo điểm trung bình tăng dần
[Link](key=lambda x: x._diemTB)

def findByID(self, ID):


# Hàm tìm kiếm sinh viên theo ID
for sv in [Link]:
if sv._id == ID:
return sv
return None

def findByName(self, keyword):


# Hàm tìm kiếm sinh viên theo tên, trả về danh sách sinh viên khớp với
từ khóa
return [sv for sv in [Link] if [Link]() in
sv._name.upper()]

def deleteById(self, ID):


# Hàm xóa sinh viên khỏi danh sách theo ID
sv = [Link](ID)
if sv is not None:
[Link](sv)
return True
return False
def tinhDTB(self, sv):
# Hàm tính điểm trung bình cho sinh viên
diemTB = (sv._diemToan + sv._diemLy + sv._diemHoa) / 3
sv._diemTB = round(diemTB, 2)

def xepLoaiHocLuc(self, sv):


# Hàm xếp loại học lực cho sinh viên dựa trên điểm trung bình
if sv._diemTB >= 8:
sv._hocLuc = "Gioi"
elif sv._diemTB >= 6.5:
sv._hocLuc = "Kha"
elif sv._diemTB >= 5:
sv._hocLuc = "Trung Binh"
else:
sv._hocLuc = "Yeu"

def showSinhVien(self, listSV):


# Hàm hiển thị danh sách sinh viên ra màn hình console
print("{:<8} {:<18} {:<8} {:<8} {:<8} {:<8} {:<8} {:<8} {:<8}"
.format("ID", "Name", "Sex", "Age", "Toan", "Ly", "Hoa", "Diem
TB", "Hoc Luc"))
for sv in listSV:
print("{:<8} {:<18} {:<8} {:<8} {:<8} {:<8} {:<8} {:<8} {:<8}"
.format(sv._id, sv._name, sv._sex, sv._age, sv._diemToan,
sv._diemLy,
sv._diemHoa, sv._diemTB, sv._hocLuc))
print("\n")

def getListSinhVien(self):
# Hàm trả về danh sách sinh viên hiện tại
return [Link]

# Để chạy thử:
qlsv = QuanLySinhVien()
[Link]() # Nhập thông tin sinh viên
[Link]([Link]()) # Hiển thị danh sách sinh viên

# Bài tập 8.1: Xây dựng lớp tam giác với dữ liệu thành phần là chiều dài ba
# cạnh của tam giác, mầu sắc; các hàm thành phần gồm hàm tính chu vi, diện
# tích tam giác, hàm hiển thị thông tin về tam giác ra màn hình, hàm hiển thị
loại
# của tam giác như: Tam giác cân, vuông, vuông cân, đều hay tam giác thường.

class TamGiac:
def __init__(self, a, b, c, color):
self.a = a
self.b = b
self.c = c
[Link] = color

def chu_vi(self):
return self.a + self.b + self.c

def dien_tich(self):
s = (self.a + self.b + self.c) / 2
return (s * (s - self.a) * (s - self.b) * (s - self.c)) ** 0.5

def loai_tam_giac(self):
if self.a == self.b == self.c:
return "Tam giác đều"
elif self.a == self.b or self.b == self.c or self.a == self.c:
if self.a ** 2 + self.b ** 2 == self.c ** 2 or self.a ** 2 +
self.c ** 2 == self.b ** 2 or self.b ** 2 + self.c ** 2 == self.a ** 2:
return "Tam giác vuông cân"
else:
return "Tam giác cân"
elif self.a ** 2 + self.b ** 2 == self.c ** 2 or self.a ** 2 + self.c
** 2 == self.b ** 2 or self.b ** 2 + self.c ** 2 == self.a ** 2:
return "Tam giác vuông"
else:
return "Tam giác thường"

def kiemtra(self):
if self.a + self.b > self.c and self.a + self.c > self.b and self.b +
self.c > self.a:
return "3 canh tren tao thanh hinh tam giac"
else:
return "3 canh tren khong tao thanh hinh tam giac"
def hien_thi_thong_tin(self):
print("Chiều dài các cạnh:", self.a, ",", self.b, ",", self.c)
if [Link]() == "3 canh tren tao thanh hinh tam giac":
print("kiem tra tam giac:", [Link]())
print("Màu sắc:", [Link])
print("Chu vi:", self.chu_vi())
print("Diện tích:", self.dien_tich())
print("Loại tam giác:", self.loai_tam_giac())
else:
print("kiem tra tam giac:", [Link]())

tg = TamGiac(3, 1, 1, "Đỏ")
tg.hien_thi_thong_tin()
# Bài tập 8.2: Xây dựng lớp hình tròn với dữ liệu thành phần là bán
kính của

# hình tròn và các hàm thành phần gồm: Hàm tính chu vi; hàm tính diện tích
# của hình tròn; hàm hiển thị thông tin về đường tròn đó.
import math

class HinhTron:
def __init__(self, ban_kinh):
self.ban_kinh = ban_kinh

def chu_vi(self):
return 2 * [Link] * self.ban_kinh

def dien_tich(self):
return [Link] * self.ban_kinh ** 2

def hien_thi_thong_tin(self):
print("Bán kính của hình tròn:", self.ban_kinh)
print("Chu vi của hình tròn:", self.chu_vi())
print("Diện tích của hình tròn:", self.dien_tich())

ht = HinhTron(5)
ht.hien_thi_thong_tin()

# Bài tập 8.3: Xây dựng lớp điểm để biểu diễn các điểm trong không gian hai

# chiều với dữ liệu thành phần gồm: Tọa độ x, tọa độ y và mầu sắc của điểm;
# các hàm thành phần gồm:
# – Hàm khởi tạo dữ liệu điểm.
# – Hàm hiển thị thông tin điểm .
# – Hàm tinhTien(int x): Tịnh tiến điểm đó theo trục hoành.
# – Hàm tinhTien(int x, int y): Tịnh tiến trục đó theo cả hai hướng Ox, Oy.
# – Hàm khoangCach(): Tính khoảng cách của điểm đó so với gốc tọa độ O(0,0).
import math

class Diem:
def __init__(self, x, y, color):
self.x = x
self.y = y
[Link] = color

def hien_thi_thong_tin(self):
print("Tọa độ của điểm: ({}, {})".format(self.x, self.y))
print("Màu sắc của điểm:", [Link])

def tinh_tien(self, x_tt, y_tt=None):


if y_tt is None:
self.x += x_tt
else:
self.x += x_tt
self.y += y_tt

def khoang_cach(self):
return [Link](self.x ** 2 + self.y ** 2)

d = Diem(3, 4, "Đỏ")
d.hien_thi_thong_tin()
d.tinh_tien(2, 3)
d.hien_thi_thong_tin()
print("Khoảng cách của điểm đến gốc tọa độ:", d.khoang_cach())

# Bài tập 8.4: Xây dựng lớp toán học với dữ liệu thành phần gồm n số; các
# hàm thành phần gồm:
# – tinhTong(*nso): Hàm tính tổng n số.
# – tinhTrungBinh(*nso): Hàm tính trung bình cộng của n số.
# – timMax(*nso): Hàm tìm số lớn nhất của n số.
# – timMin(*nso): Hàm tìm số nhỏ nhất của n số.
# – hienThi(): Hàm hiển thị thông tin về n số ra màn hình
class ToanHoc:
def __init__(self, *nso):
[Link] = nso

def tinh_tong(self):
return sum([Link])

def tinh_trung_binh(self):
return sum([Link]) / len([Link])

def tim_max(self):
return max([Link])

def tim_min(self):
return min([Link])

def hien_thi(self):
print("Danh sách các số:", [Link])
print("Tổng các số:", self.tinh_tong())
print("Trung bình cộng các số:", self.tinh_trung_binh())
print("Số lớn nhất:", self.tim_max())
print("Số nhỏ nhất:", self.tim_min())

th = ToanHoc(1, 2, 3, 4, 5)
th.hien_thi()
#dem so chu cai va chu so trong chuoi nhap vao

def demsochuso_chucai(string):
count_so = 0
count_chu = 0
for char in string:
if [Link]():
count_so += 1
for char in string:
if [Link]():
count_chu += 1
return (count_so, count_chu)

def main():
string = input("Enter a string: ")
count_so, count_chu = demsochuso_chucai(string)
print("so chu so trong chuoi la: ", count_so)
print("so chu cai trong chuoi la: ", count_chu)
if __name__ == "__main__":
main()

#tao ra tro choi keo-bua-bao

import random

class Rock_paper_scissors:
def __init__(self, rounds):
[Link] = rounds
self.current_round = 0
self.player_wins = 0
self.computer_wins = 0
[Link] = ['rock', 'paper', 'scissors']

def get_computer_choice(self):
return [Link]([Link])

def find_round_winner(self, player_choice, computer_choice):


if player_choice == computer_choice:
return 'draw'
elif (player_choice == 'rock' and computer_choice == 'scissors') or \
(player_choice == 'scissors' and computer_choice == 'paper') or \
(player_choice == 'paper' and computer_choice == 'rock'):
self.player_wins += 1
return 'player'
else:
self.computer_wins += 1
return 'computer'
def check_game_winner(self):
if self.player_wins > self.computer_wins:
return 'player'
elif self.player_wins < self.computer_wins:
return 'computer'
else:
return 'draw'

def play_round(self, player_choice):


if self.current_round < [Link]:
self.current_round += 1
computer_choice = self.get_computer_choice()
round_winner = self.find_round_winner(player_choice,
computer_choice)
print(f"Round {self.current_round}: Player chose {player_choice},
Computer chose {computer_choice}.{round_winner.capitalize()} wins this
round.") # capitalize() : in cho dep
if self.current_round == [Link]:
game_winner = self.check_game_winner()
print(f"Game over! The winner of the game is:
{game_winner.capitalize()}")
else:
print("The game has already ended.")

n = 5
game = Rock_paper_scissors(n)
print("Welcome to Rock, Paper, Scissors!")
print("5 round:")
for i in range(5):
player_choice = input("Enter your choice (rock, paper, or scissors): ")
game.play_round(player_choice)
print()

#tao hinh kim cuong với chieu cao nhap vao


height = int(input("Enter the height of the diamond: "))
for i in range(height // 2 + 1):
spaces = " " * (height // 2 - i)
stars = "*" * (2 * i + 1)
print(spaces + stars)
for i in range(height // 2, 0, -1):
spaces = " " * (height // 2 - i + 1)
stars = "*" * (2 * i - 1)
print(spaces + stars)

# Tạo danh sách 20 phần tử ngẫu nhiên từ 0 đến 1


# Đếm số lần xuất hiện liên tiếp lớn nhất
import random

# Tạo danh sách 20 phần tử ngẫu nhiên từ 0 đến 1


random_list = [[Link]() for _ in range(20)]

# In danh sách
print("Danh sách phần tử ngẫu nhiên từ 0 đến 1:")
print(random_list)

# Đếm số lần xuất hiện liên tiếp lớn nhất


max_count = 0
current_count = 1

for i in range(1, len(random_list)):


if random_list[i] == random_list[i - 1]:
current_count += 1
else:
max_count = max(max_count, current_count)
current_count = 1

max_count = max(max_count, current_count)

print("Số lần xuất hiện liên tiếp lớn nhất:", max_count)

You might also like