# Πρόγραμμα Υπολογισμού Μέσου Όρου Βαθμολογίας Φοιτητή και Μαθήματος
 
# Εμφάνιση Μηνύματος Καλωσορίσματος
print("Καλώς Ήρθατε στο Πρόγραμμα Υπολογισμού Μέσου Όρου Βαθμολογίας \
Φοιτητή και Μαθήματος")
print()
# Αρχικοποίηση δυσδιάστατης λίστας Φοιτητών και Μαθηματών.
# Κάθε μία από τις 4 υπολίστες περιέχει τη βαθμολογία του αντίστοιχου 
# φοιτητή για 6 μαθήματα
lista_foititon_kai_bathmon=[[8,9,7,8,6,10], [7,8,6,5,4,7],
                            [7,9,8,9,8,10], [7,8,6,9,7,8]]
# Αρχικοποίηση της λίστας μέσου όρου φοιτητών και της λίστας μέσου όρου 
# μαθήματος με την τιμή [], δηλαδή την κενή λίστα
mesos_oros_foititi=[]
mesos_oros_mathimatos=[]
# Επανάληψη for, η μεταβλητή i θα λάβει διαδοχικά ως τιμή όλες τις τιμές 
# από 0 έως και 3 που αφορούν τους διαδοχικούς αύξοντες αριθμούς των φοιτητών
for i in  range(4):
    # Εκτύπωση στοιχείων φοιτητή 
    print("Ο Φοιτητής με αύξοντα αριθμό",i,"βαθμολογήθηκε στα μαθήματα με: ",end="")
    print()
    # Αρχικοποίηση αθροιστή βαθμών τρέχοντος φοιτητή με την τιμή 0
    athroisma_bathmon_foititi=0
    # Επανάληψη for, η μεταβλητή j θα λάβει διαδοχικά ως τιμή όλες τις τιμές
    # από 0 έως και 5 που αφορούν τους διαδοχικούς αύξοντες κωδικούς των μαθημάτων
    for j in range(6):
        # Εκτύπωση βαθμού μαθήματος j του φοιτητή i
        print(lista_foititon_kai_bathmon[i][j],end="  ")
        # Αύξηση αθροιστή βαθμών τρέχοντος φοιτητή κατά τιμή ίση με
        # το βαθμό j του φοιτητή i
        athroisma_bathmon_foititi= athroisma_bathmon_foititi+\
                                    lista_foititon_kai_bathmon[i][j]
    print()
    # Προσθήκη μέσου όρου φοιτητή i στη λίστα μέσων όρων φοιτητών
    mesos_oros_foititi.append(athroisma_bathmon_foititi/6)
    # Εκτύπωση μέσου όρου φοιτητή i και μέγιστου βαθμού που έλαβε
    print("Ο Mέσος Όρος της βαθμολογίας του είναι %.2f" %mesos_oros_foititi[i],\
          "ενώ ο μεγαλύτερος βαθμός που έχει λάβει είναι το",\
          # χρήση συνάρτησης max για εύρεση της μέγιστης βαθμολογίας του φοιτητή i
          max(lista_foititon_kai_bathmon[i]))
    print()
print()
# Επανάληψη for, η μεταβλητή j θα λάβει διαδοχικά ως τιμή όλες τις τιμές
#  από 0 έως και 5 που αφορούν τους διαδοχικούς αύξοντες αριθμούς των μαθημάτων
for j in range(6):
    # Αρχικοποίηση αθροιστή βαθμών τρέχοντος μαθήμστος με την τιμή 0.
    athroisma_bathmon_mathimatos=0
    # Επανάληψη for, η μεταβλητή i θα λάβει διαδοχικά ως τιμή όλες τις τιμές
    # από 0 έως και 3 που αφορούν τους διαδοχικούς αύξοντες αριθμούς των φοιτητών
    for i in  range(4):
        # Αύξηση αθροιστή βαθμών τρέχοντος φοιτητή κατά τιμή ίση
        # με το βαθμό j του φοιτητή i
        athroisma_bathmon_mathimatos= athroisma_bathmon_mathimatos+\
                                      lista_foititon_kai_bathmon[i][j]
    # Προσθήκη μέσου όρου μαθήματος j στη λίστα μέσων όρων μαθημάτων
    mesos_oros_mathimatos.append(athroisma_bathmon_mathimatos/4)
    # Εκτύπωση μέσου όρου μαθήματος j 
    print("O μέσος όρος βαθμολογίας στο μάθημα με κωδικό",j,"είναι %.2f" \
          %mesos_oros_mathimatos[j])   

# Εμφάνιση Μηνύματος Τέλους
print()
print("Ευχαριστούμε που χρησιμοποιήσατε το Πρόγραμμα Υπολογισμού \
Μέσου Όρου Βαθμολογίας Φοιτητή και Μαθήματος") 
