2013-11-06 3 views
1

У меня есть некоторый код, в котором бросает ошибку (я использую repl.it)Python для постановки дает ошибку недопустимый синтаксис со списком

import random 
students = ['s1:0','s2:0','s3:0'] 
while True: 
    print'\n'*50 
    print'Ticket Machine'.center(80) 
    print'-'*80 
    print'1. Clear Student Ticket Values'.center(80) 
    print'2. Draw Tickets'.center(80) 
    menu = raw_input('-'*80+'\nChoose an Option: ') 
    if menu == '1': 
     print'\n'*50 
     print'CLEARED!' 
     students = ['s1:0','s2:0','s3:0'] 
     raw_input('Press enter to return to the main menu!') 
    elif menu == '2': 
     tickets = [] 
     print'\n'*50 
     times = int(raw_input('How many tickets to draw? ') 
     for a in students: 
      for i in range(a.split(':')[1]): 
       tickets.append(a.split(':')[0]) 
     for b in range(1,times+1): 
      print str(b) + '. ' + random.choice(tickets) 
    else:  
     print'\n'*50 
     print'That was not an option!' 
     raw_input('Press enter to return to the main menu!') 

Но он бросает эту ошибку:

File "<stdin>", line 19 
    for a in students: 
        ^
SyntaxError: invalid syntax 

Я планирую использовать это в классе, но я не могу использовать его до тех пор, пока ошибка не будет исправлена, также имена студентов были удалены по соображениям конфиденциальности.

+1

Ваш редактор должен сообщить вам, почему. Если нет, попробуйте другое. –

+0

отсутствует) в конце строки raw_input – suspectus

+0

Подсказка: полезным методом при поиске синтаксических ошибок является комментирование фрагментов кода до тех пор, пока больше не будет синтаксических ошибок. Затем начните сдавать код. Если вы сокращаете примерно половину каждый раз («bisection»), вы довольно быстро спускаетесь к линии. [Это общий совет. Более конкретный совет в Python всегда смотрит на линию или два выше.] – DSM

ответ

7

Отсутствует ')' в строке выше 19.

+0

Derp, я думаю, я пропустил ключ XD –

1

Вы пропустили закрывающую скобку предыдущей строки:

times = int(raw_input('How many tickets to draw? ') # two open parentheses, one closed 

Это вызывает синтаксическую ошибку только на следующей строке, потому что это законно, чтобы расширить скобки выражение по mutliple линий. Ошибка заключается в том, что оператор for не может отображаться в таком выражении. Если вы добавите ) в строку расчета times, ваш код должен работать.

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