01/10/2018, 14:03

Giúp mình phần python này với

class Students():
  name = "";
  mark1 = 0;
  mark2 = 0;
  def __init__(self, name):
    self.name = name
  def __init__(self, mark1): 
		self.mark1 = mark1
  def __init__(self, mark2):
    self.mark2 = mark2
  def enter_name(name):
    name = input("enter_name: ")
    print 'Your name:', name
  def progress(mark1):
    mark1 = input("Your mark1: " )
    print "Your mark1: ", mark1
  def final(mark2):
    mark2 = input("Your mark2: " )
    print "Your mark2: ", mark2
  def total(mark1,mark2 ):
    print "Total mark: ", mark1 + mark2
   
  enter_name(name)
  progress(mark1)
  final(mark2)
  total(mark1,mark2)

ở phần print "Total mark: ", mark1 + mark2
mình k biết cách lấy giá trị của mark1 và mark2 ở trên. Mong mọi người giúp đỡ.

Đoàn Trọng Hiếu viết 16:08 ngày 01/10/2018

bác đăng code Python kiểu này là chịu thua luôn =)) không có ngoặc {} mà viết thẳng hàng như này nguy hiểm quá :v

Hung Nguyen viết 16:05 ngày 01/10/2018

print ("Total mark: ", self.mark1 + self.mark2)
Nhưng đây là hàm bạn đã đưa mark1,mark2 là input mà?

Trần Hoàng viết 16:17 ngày 01/10/2018

mình là newbie, ý mình làm bài này là. nhập tên, nhập điểm 1, nhập điểm 2 và tự in ra kết quả điểm trung bình…nhưng lúc in ra điểm trung bình, thì k lấy kết quả của 2 điểm trên. hazz

Đoàn Trọng Hiếu viết 16:15 ngày 01/10/2018

Xem qua thì có thể chương trình chạy ko như mong muốn là do tên parameter trùng với tên biến trong phương thức của bạn.
Có nghĩa là khi bạn nhập điểm thì điểm đó được lưu vào biến mark1, mark2 trong phương thức nhập thôi, còn biến mark1, mark2 của class Student thì chưa được gán => tính tổng điểm của Student sẽ ko ra kết quả.

=> Solution: bạn nên phân biệt rõ biến của phương thức và biến của class, nếu không kiểm soát được thì nên đặt tên parameter khác tên biến của class cho an toàn =))

Note: Mình chưa từng viết code Python bao giờ và cũng chưa test thử solution nên comment chỉ mang tính tham khảo =))

Phat.Le viết 16:13 ngày 01/10/2018

Ý bài này của bạn là sao nhỉ, cảm thấy các method nó không liên quan với class, bạn nói rõ xem là bạn muốn làm gì

class Student(object):
    name =None
    mark_1 = None
    mark_2= None
    
    def __init__(self,name,mark1,mark2):
           self.name = name
           self.mark_1 =  mark1
           self.mark_2 = mark2
    def total(self):
        print 'Total: '+str(self.mark_1+self.mark_2)+ ' Name: '+ self.name

if __name__ == '__main__':
    stu =  Student('Your name', 10, 9.5)
    stu.total()
 
Bài liên quan
0