INTRODUCTION
FLOW CONTROL
FUNCTIONS
DATATYPES
OBJECT & CLASS
Bài tập Python: Lập trình hướng đối tượng (OOP) trong Python Lập trình hướng đối tượng trong Python Class Variables trong Python Tìm hiểu về Methods trong Python Cách sử dụng phương thức __init__() trong Python Các biến Instance trong Python Tìm hiểu về Class Attributes trong Python Hàm Static Methods trong Python Phương thức __str__ trong Python Phương thức __repr__ trong Python Phương thức eq trong Python Tìm hiểu phương thức __hash__ trong Python Phương thức __bool__ trong Python Phương thức del trong Python Tìm hiểu về lớp Property trong Python Tìm hiểu về nạp chồng toán tử trong Python Trình Decorator Property trong Python Thuộc tính chỉ đọc trong Python Thuộc tính Delete trong Python Sử dụng super() trong Python Sử dụng __slots__ trong Python Cách sử dụng Protocol trong Python Sử dụng Enum aliases và @enum.unique trong Python Tùy chỉnh và mở rộng lớp Enum trong Python Cách sử dụng hàm Auto() của Python Single Responsibility Principle trong Python Nguyên tắc Đóng-Mở trong Python Nguyên tắc thay thế Liskov - LSP trong Python Interface Segregation Principle - ISP trong Python. Nguyên tắc đảo ngược sự phụ thuộc trong Python Đa kế thừa trong Python Tìm hiểu về các lớp mixin trong Python Mô tả Descriptors trong Python Phân biệt Data Descriptor và Non-data Descriptor trong Python Phương thức __new__ trong Python Tìm hiểu về Class Type trong Python Lớp Metaclass trong Python Ví dụ sử dụng metaclass trong Python Tìm hiểu về decorator dataclass trong Python Tìm hiểu về các ngoại lệ trong Python Ngoại lệ Raise trong Python Sử dụng câu lệnh raise from trong Python Ngoại lệ tùy chỉnh trong Python Module trong Python Package trong Python Class trong Python Hàm khởi tạo trong Python Kế thừa trong Python Đa kế thừa trong Python Setter và Getter trong Python Override trong Python Interface trong Python Bài tập Python: Module và Class
ADVANCED TOPICS
BỔ SUNG
PYTHON CĂN BẢN
CÁC CHỦ ĐỀ
BÀI MỚI NHẤT
MỚI CẬP NHẬT

Chương trình quản lý sinh viên bằng class trong Python

Hãy viết chương trình quản lý sinh viên bằng class trong Python, bằng cách sử dụng nội dung của bài tập quản lý sinh viên cơ bản, tức là chuyển sang sử dụng hướng đối tượng class để giải.

test php

Bài giải

-------------------- ######## --------------------

Tương tự, vì các bạn đã biết cách giải bài này rồi nên trong bài tập này mình sẽ hướng dẫn chuyển nó sang class trong Python thôi nhé.

test php

banquyen png
Bài viết này được đăng tại freetuts.net, không được copy dưới mọi hình thức.
  • Chuyển biến lưu trữ sinh viên thành một thuộc tính private __data
  • Chuyển tất cả các hàm thành phương thức, đồng thời sửa lại theo cấu trúc của class.

Các bước thực hiện chuyển sang class như sau:

Bước 1: Tạo một file student.py cùng cấp với file main.py

tao file student class JPG

Bài viết này được đăng tại [free tuts .net]

Bước 2: Mở file student.py lên, sau đó nhập nội dung như sau.

class Student:

    # Chứa dữ liệu sinh viên
    __data = []

    def addStudent(self):
        """Hàm thêm một sinh viên"""
        print("*** THÊM SINH VIÊN ***")

        # Cấu trúc lưu trữ một sinh viên
        infor = {
            'id' : '',
            'name' : ''
        }

        # Nhập ID, có kiểm tra trùng ID thì nhập lại
        print("Nhập ID sinh viên:")
        id = input()

        while True:
            student = self.findStudent(id)
            if student != False:
                print("ID này đã tồn tại, vui lòng nhập lại:")
                id = input()
            else:
                break

        infor['id'] = id

        # Nhập tên
        print("Nhập tên sinh viên:")
        infor['name'] = input()

        # Lưu vào danh sách sv
        self.listStudents.append(infor)


    def findStudent(self, id):
        """Hàm tìm một sinh viên"""
        for i in range(0, len(self.listStudents)):
            if self.listStudents[i]['id'] == id:
                # Trả về mảng gồm 2 phần tử,
                # 0 là vị trí tìm thấy và 1 là dữ liệu
                return [i, self.listStudents[i]]
        return False

    def deleteStudent(self):
        """Hàm xóa sih viên"""
        print("*** XÓA SINH VIÊN ***")
        print("Nhập ID sinh viên cần xóa:")
        id = input()

        student = self.findStudent(id)

        if student != False:
            self.listStudents.remove(student[1])
            print("Xóa sinh viên thành công")
        else :
            print("Không tìm thấy sinh viên cần xóa")

    def showStudents(self):
        """Hàm hiển thị danh sách sv"""
        print("*** DANH SÁCH SINH VIÊN HIỆN TẠI ***")
        for i in range(0, len(self.listStudents)):
            print("[",self.listStudents[i]['id'],"]", "[",self.listStudents[i]['name'],"]",)

Bước 3: Sửa lại file main.py như sau.

# HỌC PYTHON TAI FREETUTS.NET
# AUTHOR: CƯỜNG NGUYỄN

# Import thư viện student
import student

# CHƯƠNG TRÌNH CHÍNH

s = student.Student()

action = 0

while action >= 0:
    if action == 1:
        s.addStudent()
    elif action == 2:
        s.deleteStudent()
    elif action == 3:
        s.editStudent()
    elif action == 4:
        s.showStudents()

    print("Chọn chức năng muốn thực hiện:")
    print("Nhập 1: Thêm sinh viên")
    print("Nhập 2: Xóa sinh viên")
    print("Nhập 3: Sửa sinh viên")
    print("Nhập 4: Xem danh sách sinh viên")
    print("Nhập 0: Thoát khỏi chương trình")
    action = int(input())
    if action == 0:
        break

Như bạn thấy, chương trình chính chỉ thay đổi phần import và khai báo một đối tượng Student.

Còn class student thì chuyển mọi thứ sang cấu trúc của class như: Sử dụng thuộc tính self, khai báo biến __ data ở trạng thái private.

Chạy lên kết quả vẫn không có gì khác biệt.

chuong trinh quan ly sinh vien python JPG

Danh sách bài tập

Cùng chuyên mục:

Ý nghĩa của một hoặc hai dấu gạch dưới đứng đầu trong Python

Ý nghĩa của một hoặc hai dấu gạch dưới đứng đầu trong Python

Số phức trong Python

Số phức trong Python

Từ khóa super() trong Python

Từ khóa super() trong Python

Sử dụng Virtual Environment trong Python

Sử dụng Virtual Environment trong Python

Hướng dẫn xây dựng Command-Line Interface (CLI) bằng Quo trong Python

Hướng dẫn xây dựng Command-Line Interface (CLI) bằng Quo trong Python

Hướng dẫn toàn diện về module datetime trong Python

Hướng dẫn toàn diện về module datetime trong Python

Cách truy cập và thiết lập biến môi trường trong Python

Cách truy cập và thiết lập biến môi trường trong Python

Lớp dữ liệu (Data Classes) trong Python với decorator @dataclass

Lớp dữ liệu (Data Classes) trong Python với decorator @dataclass

Từ khóa yield trong Python

Từ khóa yield trong Python

Sự khác biệt giữa sort() và sorted() trong Python

Sự khác biệt giữa sort() và sorted() trong Python

Sử dụng Poetry để quản lý dependencies trong Python

Sử dụng Poetry để quản lý dependencies trong Python

Định dạng chuỗi Strings trong Python

Định dạng chuỗi Strings trong Python

Một tác vụ phổ biến khi làm việc với danh sách trong Python

Một tác vụ phổ biến khi làm việc với danh sách trong Python

Làm việc với các biến môi trường trong Python

Làm việc với các biến môi trường trong Python

Sự khác biệt giữa set() và frozenset() trong Python

Sự khác biệt giữa set() và frozenset() trong Python

Sự khác biệt giữa iterator và iterable trong Python

Sự khác biệt giữa iterator và iterable trong Python

Cách làm việc với file tarball/tar trong Python

Cách làm việc với file tarball/tar trong Python

Chuyển đổi kiểu dữ liệu trong Python

Chuyển đổi kiểu dữ liệu trong Python

Sự khác biệt giữa toán tử == và is trong Python

Sự khác biệt giữa toán tử == và is trong Python

Làm việc với file ZIP trong Python

Làm việc với file ZIP trong Python

Top