Уведомления

Группа в Telegram: @pythonsu

#1 Янв. 30, 2016 13:23:06

Vlad_Ki
Зарегистрирован: 2016-01-22
Сообщения: 69
Репутация: +  1  -
Профиль   Отправить e-mail  

Не могу понять в чем ошибка.

Добрый день. Написал программу которая с помощью модуля random собирает предложения по кускам из списков. Программа полностью работает до того, как я вставляю обработку исключения NameError в последний блок кода. Ошибку пишет следующую:

  File "./ex_3.py", line 34
    
                     ^
SyntaxError: unexpected EOF while parsing
Причем линия 34 это пустая, последняя линия. Там ничего не написано. Переводчик сказал что это “неожиданный конец файла во время разбора”? но что неожиданного в пустой строке я не знаю.)
Прошу помощи. Заранее спасибо.
#!/usr/bin/env python3
import random
import sys
# собвственно списки
a = ["Товарищи!", "C другой стороны", "Равным образом", "Не следует, однако, забывать, что",
     "Таким образом", "Повседневная практика показывает, что"]
b = ["реализация намеченных плановых заданий", "рамки и место обучения кадров", "постоянный количественный рост и сфера нашей активности",
     "сложившаяся структура организации", "новая модель организационной деятельности", "дальнейшее развитие различных форм деятельности"]
c = ["играет важную роль в формировании", "требуют от нас анализа", "требуют определения и уточнения", "способствует подготовке и реализации",
     "обеспечивает широкому кругу специалистов участие в формировании", "помогает выполнить важные задания по разработке"]
d = ["существенных финансовых и административных условий", "дальнейших направлений развития", "системы массового участия",
     "позиций, занимаемых участниками в отношении поставленных задач", "новых предложений", "направлений прогрессивного развития"]
# тут он проверяет есть ли аргумент
# и если нет то задает количество предложений = 5
x = 0
try:
    if len(sys.argv) < 2:
        y = 5
    else:
        y = int(sys.argv[1])
except ValueError:
    print("Введите число!")
# выводит заданное количество предложений но не больше 10
try:
    while x < y:
        if y > 10:
            print("Максимальное число аргумента = 10")
            break
        A = random.choice(a)
        B = random.choice(b)
        C = random.choice(c)
        D = random.choice(d)
        print(A, B, C, D)
        x += 1
except NameError:



lol developer

Отредактировано Vlad_Ki (Янв. 30, 2016 13:30:26)

Офлайн

#2 Янв. 30, 2016 13:52:06

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 8312
Репутация: +  568  -
Профиль   Отправить e-mail  

Не могу понять в чем ошибка.

except NameError:
этим программа не может кончиться.
Вот тут же вы правильно сделали
except ValueError:
    print("Введите число!")

Если нечем завершить инструкцию пишите pass



Отредактировано FishHook (Янв. 30, 2016 13:52:43)

Офлайн

#3 Янв. 30, 2016 13:54:32

Vlad_Ki
Зарегистрирован: 2016-01-22
Сообщения: 69
Репутация: +  1  -
Профиль   Отправить e-mail  

Не могу понять в чем ошибка.

Спасибо огромное!) Я думал он просто обработает исключение для того что бы сообщение ошибки не выскочило и закончит программу.)



lol developer

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version