Hãy chỉnh sửa lại chương trình trên nêu bổ sung thêm điều kiện sau vào nhiệm vụ: Trong tệp kết quả đầu ra, thứ tự các vận động viên được ghi theo thứ tự giảm dần của điểm đánh giá.
Hãy chỉnh sửa lại chương trình trên nêu bổ sung thêm điều kiện sau vào nhiệm vụ: Trong tệp kết quả đầu ra, thứ tự các vận động viên được ghi theo thứ tự giảm dần của điểm đánh giá.
Quảng cáo
Trả lời:
def nhapDL(finp):
f = open(finp)
A = []
B = []
for line in f:
s = line.split()
A.append(s[0])
temp = s[1:len(s)]
temp = [float(x) for x in temp]
B.append(temp)
f.close()
return A, B
def diem_gk(d):
diem = sum(d) + d[0] + d[len(d) - 1]
diem = diem / (len(d) + 2)
return round(diem, 2)
def xuly(B):
kq = []
for i in range(len(B)):
diem = diem_gk(B[i])
kq.append(diem)
return kq
def ghiDL(fout, A, B):
f = open(fout, "w")
A, B = zip(*sorted(zip(A, B), key=lambda x: x[1], reverse=True))
for i in range(len(A)):
print(A[i], B[i], file=f)
f.close()
finp = "seagames.inp"
fout = "ketqua.out"
DS, Diem = nhapDL(finp)
Kq = xuly(Diem)
ghiDL(fout, DS, Kq)
Hot: Học hè online Toán, Văn, Anh...lớp 1-12 tại Vietjack với hơn 1 triệu bài tập có đáp án. Học ngay
- Trọng tâm Sử, Địa, GD KTPL 11 cho cả 3 bộ Kết nối, Chân trời, Cánh diều VietJack - Sách 2025 ( 38.000₫ )
- Sách - Sổ tay kiến thức trọng tâm Vật lí 11 VietJack - Sách 2025 theo chương trình mới cho 2k8 ( 45.000₫ )
- Sách lớp 11 - Trọng tâm Toán, Lý, Hóa, Sử, Địa lớp 11 3 bộ sách KNTT, CTST, CD VietJack ( 52.000₫ )
- Sách lớp 10 - Combo Trọng tâm Toán, Văn, Anh và Lí, Hóa, Sinh cho cả 3 bộ KNTT, CD, CTST VietJack ( 75.000₫ )
CÂU HỎI HOT CÙNG CHỦ ĐỀ
Lời giải
def is_prime(num):
"""Kiểm tra xem một số có phải là số nguyên tố hay không."""
if num <= 1:
return False
for i in range(2, int(num**0.5) + 1):
if num % i == 0:
return False
return True
def print_prime_numbers(n):
"""In ra n số nguyên tố đầu tiên."""
count = 0
num = 2
while count < n:
if is_prime(num):
print(num)
count += 1
num += 1
# Số nguyên n cần in ra dãy số nguyên tố đầu tiên
n = int(input())
# Gọi hàm in ra dãy số nguyên tố
print_prime_numbers(n)
Lời giải
# Đọc dữ liệu từ tệp điểm thi
with open("diemthi.inp", "r") as file:
data = file.readlines()
# Tạo danh sách lưu thông tin điểm thi của các thí sinh
scores = []
for line in data:
line = line.strip().split() # Tách dữ liệu trên mỗi dòng thành các từ
sbd = line[0] # Lấy số báo danh của thí sinh
diem1 = int(line[1]) # Lấy điểm bài 1
diem2 = int(line[2]) # Lấy điểm bài 2
diem3 = int(line[3]) # Lấy điểm bài 3
tong_diem = diem1 + diem2 + diem3 # Tính tổng điểm
scores.append((sbd, diem1, diem2, diem3, tong_diem)) # Thêm thông tin vào danh sách
# Sắp xếp danh sách giảm dần theo tổng điểm
scores.sort(key=lambda x: x[4], reverse=True)
# Ghi kết quả vào tệp ketqua.out
with open("ketqua.out", "w") as file:
for score in scores:
sbd = score[0]
diem1 = score[1]
diem2 = score[2]
diem3 = score[3]
tong_diem = score[4]
file.write(f"{sbd}\t{diem1}\t{diem2}\t{diem3}\t{tong_diem}\n")
Lời giải
Bạn cần đăng ký gói VIP ( giá chỉ từ 199K ) để làm bài, xem đáp án và lời giải chi tiết không giới hạn.