e mới học về class các sếp cho e hỏi tí.
Đây là đoạn code e viết để tính điểm trung bình môn học, nhưng mà đến phần tính điểm trung bình chung của học sinh:
Diemtbhs = (Diemtb toán + Diemtb Lý + Diemtb Hóa)/3 thì e ko biết phải làm như thế nào.
Hỏi về class trong python
Up code lên đi bạn. Nhớ bỏ code vào markdown nhé.
Lần sau screenshot nhớ resize hình cho vừa với size của screenshot. Để phần trắng to thế kia thì khó nhìn lắm.
Đề bài bảo gì thì bạn lắp luôn công thức vào thôi chứ có gì đâu.
Gợi ý:
-
Bạn đang thể hiện mỗi môn trên code của bạn như thế nào? Qua class gì? Các thuộc tính của class đó gì?
-
Làm thế nào để lấy ra điểm trung bình của mỗi môn? Lấy qua thuộc tính/method nào?
nếu lắp công thức vào thì đơn giản nhưng như vậy e thấy nó dài dòng với cảm giác như ko đc khoa học.
Ý e là có cách nào mà thực hiện được theo kiểu:
Diemtbhs = (Toan.diemtb + Ly.diemtb + Hoa.diemtb)/3 không?
ý là trích xuất thuộc tính điểmtb của class Subject ấy. Nhưng mà Toan, Ly, Hoa lại là biến của hàm thôi nên e ko trích xuất đc thuộc tính diemtb. hjc
Bạn đăng code lên đi. Mình không muốn type lại đâu
Điều cần làm trước hết là bạn up ngay code lên bằng markdown cho mọi người có thể dễ dàng theo dõi, hơn nữa ai muốn giúp bạn lại phải hì hục gõ lại code của bạn à. No code no help. Thân
thanks, e cũng mới vào diễn đàn hôm qua nên cũng chưa rõ, để e xem bài hướng dẫn, còn code của e đây
No screenshot only, please
Ok bác e đang nghiên cứu cái markdown
class Subject:
"Day la class the hien mon hoc"
def __init__(self, diemchuyencan, diemheso1, diemthi):
self.diemchuyencan = diemchuyencan
self.diemheso1 = diemheso1
self.diemthi = diemthi
self.diemtbmon = self.diemchuyencan * 0.1 + \
self.diemheso1 * 0.3 + self.diemthi * 0.6
print(self.diemtbmon)
def monhoc(mon):
mon = Subject(int(input('Moi ban nhap diem chuyen can mon %r: ' % (mon))), int(input(
'Moi ban nhap diem he so 1 mon %r: ' % (mon))), int(input('Moi ban nhap diem thi mon %r: ' % (mon))))
monhoc('toan')
monhoc('Ly')
monhoc('Hoa')
thế này có được chưa các sếp
Môn bạn lưu ở đâu đấy
Thì bạn return cái môn của bạn ra là được mà.
def create_subject(name):
return Subject(...)
toan = create_subject('toan')
...
Đừng print(self.diemtbmon)
trong __init__
. Hãy vứt nó sang chỗ khác.
Môn trong cái hàm monhoc đó sếp
thanks. để e thử phát
Ok, return biến mon ra là được mà
thanks bác, e đang thử, mới học thấy khó sml
class Subject:
"Day la class the hien mon hoc"
def __init__(self, diemchuyencan, diemheso1, diemthi):
self.diemchuyencan = diemchuyencan
self.diemheso1 = diemheso1
self.diemthi = diemthi
self.diemtbmon = self.diemchuyencan * 0.1 + \
self.diemheso1 * 0.3 + self.diemthi * 0.6
# def monhoc(mon):
# mon = Subject(int(input('Moi ban nhap diem chuyen can mon %r: ' % (mon))), int(input(
#'Moi ban nhap diem he so 1 mon %r: ' % (mon))), int(input('Moi ban nhap diem thi mon %r: ' % (mon))))
def create_subject(name):
return Subject(int(input('Moi ban nhap diem chuyen can mon %r: ' % (name))), int(input(
'Moi ban nhap diem he so 1 mon %r: ' % (name))), int(input('Moi ban nhap diem thi mon %r: ' % (name))))
Toan = create_subject('Toan')
Ly = create_subject('Ly')
Hoa = create_subject('Hoa')
diemtbhs = (Toan.diemtbmon + Ly.diemtbmon + Hoa.diemtbmon)/3
print('Diem TB cua hoc sinh la: ',diemtbhs)
thanks các bác e làm được rồi, đúng là cái món lập trình này ý tưởng chắc là quan trọng nhất r. Cũng nghĩ đến return rồi mà ko nghĩ ra đc là làm như thế này. hjc