2017年12月25日 星期一

b021: 指考分發

b021: 指考分發

"""
T大資工系一直是國內各高中對資訊領域有興趣的學生心目中
的第一志願,它的錄取標準是這樣的,首先比各科的總分,
同分的情況下再比數學的分數。現在給你一群學生的指考成績,
請你排出他們錄取的優先順序。

輸入說明:
第一行有一個正整數 N (1<=N<=100),
代表有 N 位學生的成績,接下來有 N 行的資料,
每行一開始有一個正整數,代表他的編號,接下來有5個整數,
代表國文、英文、數學、物理、化學這五科的成績,
每科成績最低0分,最高100分。

輸出說明:
請依照總分、數學的順序,排出這些學生的優先順序,並依序輸出他們的編號。

範例輸入:
5
1 91 73 87 71 67
2 50 57 65 92 90
3 92 87 76 49 48
4 61 46 51 92 55
5 99 59 52 63 95
範例輸出 :

1
5
2
3
4
"""
# Add elements to empty lists.
#elements[0].append(1)
#elements[0].append(2)

#elements[1].append(3)
#elements[1].append(4)
#elements[i].append(j)
"""
students = [
        ('john', 'A', 15),
        ('jane', 'B', 12),
        ('dave', 'B', 10),
]
sorted(students, key = lambda x : x[2])   # sort by age
"""
#print()
#max1=[]
#max1=[i[::-1] for i in elements[::-1]]
#print(max(max1))

#print()
#print(elements)
#for sublist in reversed(elements):
#    print (list(reversed(sublist)))

from operator import itemgetter
def list2D_print(a):
    for i in range(len(a)):
        for j in range(len(a[i])):
            print((a[i][j]),',',end=' ')
        print()

# Create a list.
elements = []

# Append empty lists in first two indexes.

X=int(input("輸入一個正整數 N (1<=N<=100) -> "))

for i in range(0,X):
    elements.append([i+1])

sum1=0
for i in range(0,X):
    for j in range(0,5):
        print("請輸入第",j+1,"科的成績",end='')        
        X=int(input(", 成績 : "))
        elements[i].append(X)
        sum1=sum1+X
        
    print()
    sum1="{:.2f}".format(sum1/5)
    elements[i].append(sum1)
    sum1=0
    if j<=4 and i<=(X-1) :
        print("換另一學生成績輸入")

print(list2D_print(elements))


max1=[]
max1=[i[::-1] for i in elements[::-1]]

y=[]
y=sorted(max1, key=itemgetter(0))
print(list2D_print(y))








====================== RESTART: F:/Python_APSC/b021.py ======================
輸入一個正整數 N (1<=N<=100) -> 5
請輸入第 1 科的成績, 成績 : 100
請輸入第 2 科的成績, 成績 : 89
請輸入第 3 科的成績, 成績 : 89
請輸入第 4 科的成績, 成績 : 78
請輸入第 5 科的成績, 成績 : 99

換另一學生成績輸入
請輸入第 1 科的成績, 成績 : 78
請輸入第 2 科的成績, 成績 : 87
請輸入第 3 科的成績, 成績 : 99
請輸入第 4 科的成績, 成績 : 87
請輸入第 5 科的成績, 成績 : 87

換另一學生成績輸入
請輸入第 1 科的成績, 成績 : 78
請輸入第 2 科的成績, 成績 : 76
請輸入第 3 科的成績, 成績 : 87
請輸入第 4 科的成績, 成績 : 78
請輸入第 5 科的成績, 成績 : 78

換另一學生成績輸入
請輸入第 1 科的成績, 成績 : 76
請輸入第 2 科的成績, 成績 : 78
請輸入第 3 科的成績, 成績 : 98
請輸入第 4 科的成績, 成績 : 89
請輸入第 5 科的成績, 成績 : 78

換另一學生成績輸入
請輸入第 1 科的成績, 成績 : 78
請輸入第 2 科的成績, 成績 : 78
請輸入第 3 科的成績, 成績 : 67
請輸入第 4 科的成績, 成績 : 98
請輸入第 5 科的成績, 成績 : 98

換另一學生成績輸入
1 , 100 , 89 , 89 , 78 , 99 , 91.00 , 
2 , 78 , 87 , 99 , 87 , 87 , 87.60 , 
3 , 78 , 76 , 87 , 78 , 78 , 79.40 , 
4 , 76 , 78 , 98 , 89 , 78 , 83.80 , 
5 , 78 , 78 , 67 , 98 , 98 , 83.80 , 
None
79.40 , 78 , 78 , 87 , 76 , 78 , 3 , 
83.80 , 98 , 98 , 67 , 78 , 78 , 5 , 
83.80 , 78 , 89 , 98 , 78 , 76 , 4 , 
87.60 , 87 , 87 , 99 , 87 , 78 , 2 , 
91.00 , 99 , 78 , 89 , 89 , 100 , 1 , 
None
>>> 


2D list Sort

from operator import itemgetter

matrix = [ [4,5,6], [1,2,3], [7,0,9]]
print(matrix)
y=[]
y=sorted(matrix, key=itemgetter(1))
print(matrix)
print(y)


===== == RESTART: F:/Python_APSC/b021-1.py === === ===
[[4, 5, 6], [1, 2, 3], [7, 0, 9]]
[[4, 5, 6], [1, 2, 3], [7, 0, 9]]
[[7, 0, 9], [1, 2, 3], [4, 5, 6]]
>>> 



沒有留言:

張貼留言

Messaging API作為替代方案

  LINE超好用功能要沒了!LINE Notify明年3月底終止服務,有什麼替代方案? LINE Notify將於2025年3月31日結束服務,官方建議改用Messaging API作為替代方案。 //CHANNEL_ACCESS_TOKEN = 'Messaging ...