01/10/2018, 16:37

Hỏi về class trong python

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.

HK boy viết 18:38 ngày 01/10/2018

Up code lên đi bạn. Nhớ bỏ code vào markdown nhé.

Làm sao để có thể hiển thị syntax highlighting bằng markdown? Các bạn phải đánh dấu ``` như ví dụ dưới đây Chú ý, dấu ``` được tạo ra bởi nút nằm bên trái số 1 trên bàn phím, nút này sẽ là ~ khi bấm giữ Shift Ví dụ cho C Nội dung: ``` void main() { } ``` Và đừng quên ``` ở cuối Kết quả void main() { } Ví dụ cho Pascal Nội dung: ``` Program HelloWorld; Begin WriteLn('Hello world!') {no ";" is required after the last statement of a block - adding one adds a "null stateme…

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.


Diemtbhs = (Diemtb toán + Diemtb Lý + Diemtb Hóa)/3

Đề 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?

Huy Tran viết 18:41 ngày 01/10/2018

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

HK boy viết 18:53 ngày 01/10/2018

Bạn đăng code lên đi. Mình không muốn type lại đâu

Quân viết 18:41 ngày 01/10/2018

Đ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

Huy Tran viết 18:47 ngày 01/10/2018

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

Quân viết 18:37 ngày 01/10/2018

No screenshot only, please

Huy Tran viết 18:50 ngày 01/10/2018

Ok bác e đang nghiên cứu cái markdown

Huy Tran viết 18:51 ngày 01/10/2018
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')
Huy Tran viết 18:38 ngày 01/10/2018

thế này có được chưa các sếp

Quân viết 18:45 ngày 01/10/2018

Môn bạn lưu ở đâu đấy

HK boy viết 18:53 ngày 01/10/2018

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.

Huy Tran viết 18:42 ngày 01/10/2018

Môn trong cái hàm monhoc đó sếp

Huy Tran viết 18:40 ngày 01/10/2018

thanks. để e thử phát

Quân viết 18:40 ngày 01/10/2018

Ok, return biến mon ra là được mà

Huy Tran viết 18:50 ngày 01/10/2018

thanks bác, e đang thử, mới học thấy khó sml

Huy Tran viết 18:37 ngày 01/10/2018
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

Bài liên quan
0