2015-09-07 4 views
0

Я довольно новичок в python 3, но я делаю простую программу, где я могу выбрать класс ученика и выбрать отображение своих оценок на основе средних значений, наивысшего балла и т. д. ... то, что я хотел бы знать, - это то, как я могу вернуться к началу кода, чтобы я мог выбрать другой класс и chceck другой набор информации, например. Класс B-средний балл. Мне хотелось бы знать, как я мог вернуться к началу кода. Спасибо за ваше время, я это ценю.python как вернуться к началу кода

Примечание Я разрезал части кода

import csv 
print("1 for Class A\n2 for Class B\n3 for Class C") 
choosen=int(input()) 
class_a = open('class_a.txt') 
class_b = open('class_b.txt') 
class_c = open('class_c.txt') 
if choosen == 1: 
    print("1 for for alphabetical orderwith each students highest score\n2 for highest score, highest to lowest\n3 for average score, highest to lowest") 
    cho_two=int(input()) 
    csv_a = csv.reader(class_a) 
    a_list = [] 
    for row in csv_a: 
     row[3] = int(row[3]) 
     row[4] = int(row[4]) 
     row[5] = int(row[5]) 
     minimum = min(row[3:5]) 
     row.append(minimum) 
     maximum = max(row[3:5]) 
     row.append(maximum) 
     average = sum(row[3:5])//3 
     row.append(average) 
     a_list.append(row[0:9]) 
    if cho_two == 1: 
     alphabetical = [[x[0],x[6]] for x in a_list] 
     print("\nCLASS A\nEach students highest by alphabetical order \n") 
     for alpha_order in sorted(alphabetical): 
      print(alpha_order) 
      class_a.close() 
    elif cho_two == 2: 
     print("\nCLASS A\nThe highest score to the lowest \n") 
     for high_scr in sorted(highest_score,reverse = True): 
      print(high_scr) 
      class_a.close()   
    elif cho_two == 3: 
     average_score = [[x[8],x[0]] for x in a_list] 
     print("\nCLASS A\nThe average score from highest to lowest \n") 
     for ave_scr in sorted(average_score,reverse = True): 
      print(ave_scr) 
      class_a.close() 

Пример кода под управлением

1 for Class A 
2 for Class B 
3 for Class C 
1 
1 for for alphabetical orderwith each students highest score 
2 for highest score, highest to lowest 
3 for average score, highest to lowest 
1 

CLASS A 
Each students highest by alphabetical order 

['Bob', 2] 
['Hamza', 6] 
['James', 5] 
['Jane', 0] 
['John', 3] 
['Kate', 3] 
+3

как насчет 'while-loop' вокруг всего кода? –

+0

Или как насчет ввода этого кода в функцию? – ForceBru

ответ

3

Общепринятым способом в Python является использование while True: в цикле до бесконечности, а затем просто использовать break когда вы хотите выйти из цикла и закончить программу (или продолжить код, который вы размещаете вне цикла).

while True: 
    # Run code 
    if code_should_end: 
     break 

Заменить if code_should_end с тем, что вы хотите, чтобы вызвать конец, будь то пользовательский ввод или что-то другое. Он также может быть где угодно в вашем цикле, ему не нужно просто быть в конце.

Смежные вопросы