Python chiều thứ 7, ngày 17-03-2018: Luyện tập với hàm và list

huyhuy17

Link dữ liệu tự tạo | Sample data link

The knowledge will be used: Python function , Python list , Python loop


StudentList = [
    ["Trần Mai Ngô", 10, 8.56],
    ["Lý Quốc Tuân", 11, 1.95],
    ["Nguyễn Minh Phú", 1, 9.56],
    ["Lê Nhân Tô", 6, 1.24],
    ["Hồ Đức Trịnh", 4, 2.77],
    ["Hà Vinh Khoa", 5, 0.98],
    ["Đinh Thắm Tăng", 6, 6.65],
    ["Lâm Dung Kha", 12, 3.21],
    ["Lý Ngô Sa", 1, 9.44],
    ["Đinh Tú Tăng", 4, 8.81],
    ["Phan Thủy Tuân", 5, 6.24],
    ["Hồ Tú Kim", 8, 9.70],
    ["Tăng Dung Thắgn", 8, 0.03],
    ["Nguyễn Lê Thắm", 1, 0.11],
    ["Hồ Nhung Mai", 11, 1.28],
    ["Phạm Sa Nguyễn", 10, 4.84],
    ["Tăng Tiến Đào", 8, 5.38],
    ["Dương Kha Thắm", 10, 8.34],
    ["Đào Đinh Tiến", 7, 6.31],
    ["Đào Cường Nam", 3, 2.00],
    ["Phùng Thu Tăng", 4, 3.51],
    ["Đào Triệu Thắgn", 1, 9.66],
    ["Hoàng Dương Đặng", 11, 6.63],
    ["Hồ Thủy Phong", 3, 8.73],
    ["Đỗ Mai Thu", 11, 1.50],
    ["Hà Kim Tô", 12, 5.03],
    ["Vũ Nhân Minh", 9, 9.84],
    ["Lý Minh Tăng", 4, 2.21],
    ["Đào Thi Hoàng", 10, 8.61],
    ["Tăng Phùng Lý", 11, 1.89],
    ["Phạm Lâm Lý", 3, 6.23],
    ["Phạm Phùng Trần", 10, 3.48],
    ["Đỗ Minh Nhân", 5, 4.72],
    ["Trần Thắgn Dung", 4, 4.61],
    ["Phạm Đức Bửu", 6, 7.33],
    ["Nguyễn Trinh Cường", 9, 4.79],
    ["Mai Lâm Tăng", 10, 4.61],
    ["Đặng Thắm Lê", 3, 5.73],
    ["Trương Dương Thanh", 7, 9.12],
    ["Đào Sinh Tăng", 3, 0.75],
    ["Lê Hiền Hải", 9, 1.02],
    ["Ngô Hải Đỗ", 11, 8.10],
    ["Đào Phú Dương", 6, 5.71],
    ["Dương Kim Phong", 6, 8.67],
    ["Vương Tú Tuân", 9, 7.74],
    ["Đoàn Thắm Triệu", 8, 6.45],
    ["Hồ Cường Thảo", 3, 3.94],
    ["Trương Bửu Lâm", 4, 3.78],
    ["Hà Lê Khang", 4, 3.78],
    ["Trịnh Thị Đào", 3, 5.74],
    ["Phan Đỗ Khang", 2, 2.02],
    ["Hoàng Thị Triệu", 4, 6.90],
    ["Đoàn Lý Hồ", 5, 9.55],
    ["Hà Phùng Vân", 5, 4.96],
    ["Đào Thắgn Trần", 9, 2.17],
    ["Phan Hoàng Đoàn", 3, 7.01],
    ["Hoàng Thi Hoàng", 10, 1.34],
    ["Đỗ Bùi Kha", 5, 1.31],
    ["Phùng Loan Đinh", 12, 3.01],
    ["Đinh Như Loan", 7, 6.72],
    ["Trịnh Phan Đặng", 7, 4.24],
    ["Nguyễn Thắgn Hòa", 7, 2.32],
    ["Đinh Tâm Phong", 7, 8.66],
    ["Nguyễn Thu Hồ", 4, 2.73],
    ["Vương Mai Thi", 2, 0.81],
    ["Đỗ Phạm Vũ", 2, 6.21],
    ["Hoàng Nhân Tăng", 1, 2.39],
    ["Đặng Vũ Trịnh", 10, 8.89],
    ["Trần Phong Ngọc", 2, 1.01],
    ["Đoàn Quốc Trịnh", 2, 9.63],
    ["Trần Cường Phan", 6, 7.95],
    ["Lê Lê Nhân", 5, 3.25],
    ["Đoàn Phùng Thảo", 4, 0.72],
    ["Trần Thắm Đoàn", 2, 0.45],
    ["Đỗ Hải Tăng", 12, 5.11],
    ["Trương Đặng Phùng", 5, 4.77],
    ["Lâm Vũ Tâm", 9, 2.48],
    ["Phùng Cường Mai", 6, 4.70],
    ["Lý Nhàn Vân", 11, 0.97],
    ["Mai Thủy Tú", 3, 6.06],
    ["Phạm Tuân Thắgn", 4, 9.59],
    ["Trương Thu Hữu", 3, 6.31],
    ["Tăng Ngọc Quốc", 6, 3.12],
    ["Hồ Trương Phan", 3, 3.90],
    ["Lý Ngọc Đức", 4, 9.84],
    ["Ngô Triệu Khoa", 5, 1.44],
    ["Vương Minh Hồ", 3, 6.04],
    ["Vương Tăng Nhung", 5, 8.05],
    ["Dương Hữu Trung", 9, 1.04],
    ["Phạm Sa Dung", 4, 3.08],
    ["Mai Hiền Lý", 5, 5.62],
    ["Tăng Trịnh Tăng", 6, 7.88],
    ["Ngô Phan Phú", 2, 3.72],
    ["Lâm Đặng Thi", 3, 5.03],
    ["Lâm Thắgn Trần", 9, 0.83],
    ["Hồ Thị Dương", 5, 0.07],
    ["Dương Sa Long", 9, 9.39],
    ["Đặng Vũ Mai", 10, 8.02],
    ["Bùi Thi Tuân", 12, 6.82],
    ["Phan Loan Đinh", 3, 2.67],
]
# studentList is a list of students which follow format [[studentName, grade, score ], [studentName, grade, score ]]
#1. Make the function print the highest score
#2. Make the function print the lowest score
#3. Make the function print the students who has lowest score
#4. Make the function print the students who has highest score
#5. Make the function count the number of students in each grade (1-12)
#6. Make the function calculate the average score of all student
#7. Make the function calculate the average score of each grade
#8. Make the function count the number of student has score above 8
#9. Make the function count and print student has score smaller than 5
#10. Make the function count the number of student who has score larger than 8 and study in grade 10
# (A) Tạo menu có 10  mục, với người dùng nhập vào là bao nhiêu (từ 1 tới 10) nếu nhập vào só nào thì gọi và in ra kết quả của 10 hàm đã viết ở trên 
#Viết thêm hàm tìm kiếm học sinh vị trí trong danh sách 
#Viết hàm thêm học sinh  
#Viết hàm tìm kiếm học sinh có điểm só nằm trong khoảng a,b (với a,b là do người dùng nhập vào)
#Đưa những hàm vừa viết vào chương trình A

Code ví dụ các í


def studentToStr(student):
    return "Học sinh: {:20} | Điểm số :{:4} | Khối:{:4}".format(student[0],student[2],student[1])
def highestScore (students):
    scores = []
    for st in students:
        scores.append(st[2])
    maxs =max(scores)
    return maxs

def lowestScore (students):
    scores = []
    for st in students:
        scores.append(st[2])
    mins =min(scores)
    return mins


def listHighestScoreStudent(students):
    maxs = highestScore(students)
    text = ""
    count  = 0
    for st in students:
        if st[2] ==maxs:
            count +=1
            text+= '\n' + studentToStr(st)
    print("Có {} đạt được điểm {} là".format(count,maxs))
    print(text)
listHighestScoreStudent(StudentList)



def listLowestScoreStudent(students):
    mins = lowestScore(students)
    text = ""
    count  = 0
    for st in students:
        if st[2] ==mins:
            count +=1
            text+= '\n' + studentToStr(st)
    print("Có {} đạt được điểm {} là".format(count,mins))
    print(text)
listLowestScoreStudent(StudentList)


def countOfGrade (num, stList):
    count = 0
    for st in stList:
        if st[1] ==num :
            count +=1
    return count

def countEachGrade ():
    for i in range(12):
        c =countOfGrade(i+1, StudentList)
        print("Có {} học sinh học khối {}".format(c,i+1))
countEachGrade()

def averageScore (stList):
    total = 0
    for st in stList:
        total += st[2]
    return total/len(stList)

print("Điểm trung bình của học sinh VN là: {}".format(averageScore(StudentList)))

def averageOfGrade (num, stList):
    total = 0
    count = 0
    for st in stList:
        if st[1] ==num :
            count +=1
            total += st[2]
    return total/count

def averageOfEachGrade():
    for i in range(12):
        a = averageOfGrade(i + 1, StudentList)
        print("Diểm trung bình khối {} là: {}".format(i+1,a ))
averageOfEachGrade()

menu ="""1. Make the function print the highest score
2. Make the function print the lowest score
3. Make the function print the students who has lowest score
4. Make the function print the students who has highest score
5. Make the function count the number of students in each grade (1-12)
6. Make the function calculate the average score of all student
7. Make the function calculate the average score of each grade
8. Make the function count the number of student has score above 8
9. Make the function count and print student has score smaller than 5
10.Add new student 
11.View student at index ?
"""
order = ""
while True :
    print(menu)
    order = input("What you want?")
    if order =="0" :
        break
    elif order == "1":
        print(highestScore(StudentList))
    elif order=="11":
        print(studentToStr(StudentList[int(input("Bạn muốn xem học sinh thứ mấy"))]))

Trả lời