LINUX.ORG.RU

Python ругается на двоеточия

 , ,


0

1

На знаю что и делать. Писал как-то программу и бац! Интерпретатор начал ругаться на двоеточия. Фрагмент кода следующий:

while True:
    inp=input('')
    if inp=='start':
        start=time.time()
        print(start)
    if inp=='stop':
        stop=time.time()
        worktime=stop-start
        worktimeall+=worktime
        print(worktimeall)
    if inp=='end':
        end=time.time()
        alltime=end-start
        print(alltime)

Ошибка invalid syntax. Причем ему не нравится именно двоеточие в последнем if. Указывает именно этот номер линии:

  File "eff.py", line 23
    if inp=='end':
                 ^
SyntaxError: invalid syntax
В чем проблема, не подскажете? Питон3.3



Последнее исправление: calvuscaput (всего исправлений: 1)
Ответ на: комментарий от anonymous

Ну в емаксе я не знаю как это сделать. Да и что это даст? Пробелы нормально выставлены. Уже тыщу раз проверял.

calvuscaput
() автор топика

скопипастил, у меня не ругается

anonymous
()

используй pylint или ide на свой вкус

anonymous
()
Ответ на: комментарий от expelled

Да, точно, вспомнил. У меня проблема была, что он после этого не запускался через ./script.py, а в коде пофиг. Беру своё предположение обратно.

Deleted
()
Ответ на: комментарий от expelled

Только что переписал фрагмент с проблемным if с использованием табов в idle. Я везде табы ставлю и действительно там были пробелы. Это я в емаксе затупил. Но даже теперь не работает. Магия какая-то...

calvuscaput
() автор топика
Ответ на: комментарий от expelled

Вангую использование, и табов, и пробелов, в качестве отступов.

Вангую фимоз головного мозга дезигнера. Это ж так трудно было сделать табы и пробелы равнозначными разделителями. Где то читал, что этот идиот теперь считает, что конструкции типа map/foreach «вредны» для читаемости и собирается их выпиливать, Lol

nuboquest
()
Ответ на: комментарий от nuboquest

Каждый следит в истории как умеет, а некоторым еще и пофигу чем следить..

expelled ★★
()

и сделай elsif(или как оно там) вместо второго и третьего if'a

Bad_ptr ★★★★★
()
Ответ на: комментарий от calvuscaput

А ты переделай еще раз :)
Если ты жмешь клавишу Tab, то это еще не значит что ты вставляешь символ табуляции. Может твои IDE заменяют таб на пробелы, только одна IDE на 4 пробела, а другая на 8, а третья на 2. Ну ты понял..
Вообщем нучись заставлять свои IDE отображать пробельные символы.

expelled ★★
()

йос, не думал что такая жо.. в этом питоне

kiotoze ★★★★
()
Ответ на: комментарий от nuboquest

Это ж так трудно было сделать табы и пробелы равнозначными разделителями.

У первой строки отступ 1 таб, у второй 4 пробела. На каком уровне находится вторая строка по отношению к первой?

mix_mix ★★★★★
()
Ответ на: комментарий от mix_mix

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

nuboquest
()
Ответ на: комментарий от nuboquest

тухлая идея была изначально делать зависимость кода от форматирования.

идея может тухлая (предположим что тухлая), но зато в данном случае она сработа отлично! :-)

то есть: твой кривоотформатированный код не получил жизнь

user_id_68054 ★★★★★
()
Последнее исправление: user_id_68054 (всего исправлений: 1)
Ответ на: комментарий от user_id_68054

твоей кривоотформатированный код не получил жизнь

А нормальные посоны и не пишут на этом говне, поэтому им не страшно.

nuboquest
()
Ответ на: комментарий от nuboquest

А нормальные посоны и не пишут на этом говне, поэтому им не страшно.

да, да.. расскажи нам тут :-) ...

ведь для нормальных пацанов это такая большая проблема — нормально форматировать код и не смешивать пробелы и табы?

:-D

# P.S.: тебе интерпретатор ОДОЛЖЕНИЕ сделал что отказался запускать программу с недочётом.. а ты почему-то решил что косяк не твой, и что мол лучше бы проверки не было бы.. нет, дружок — косяк всё-таки твой, и скажи спасибо интерпретатору что он не позволил тебе запустить это (а иначе бы ты ни когда бы и не исправил бы этот недочёт)..

user_id_68054 ★★★★★
()
Последнее исправление: user_id_68054 (всего исправлений: 1)
Ответ на: комментарий от nuboquest

> твой кривоотформатированный код не получил жизнь

А нормальные посоны и не пишут на этом говне, поэтому им не страшно.

если бы существовал бы компилятор\инетрпретатор который бы не только форматирование проверял бы, ...

...а ещё и проверял бы программу на наличие других глупостей (и всячески мешал бы запускаться программам, которые с глупостями) — то независимо от того как «нормальные посоны» относились бы к этому компилятору\инетрпретатору — это было бы невероятное достижение человечества, так как программы подскочили бы в своём качестве.

впрочем, RUST быть-может вполне подойдёт на эту роль (но хотя к форматированию он не придерается, а жаль)

user_id_68054 ★★★★★
()
Последнее исправление: user_id_68054 (всего исправлений: 3)
Ответ на: комментарий от user_id_68054

Ну так вообще это я писал, а не тот к кому ты обращаешься). А выбор питона основан на простоте освоения. Мне не нужны супер-пупер сложные программы, а простые скриптики для личных нужд. Для этого питон идеально подходит.

calvuscaput
() автор топика
Ответ на: комментарий от calvuscaput

Ну так вообще это я писал, а не тот к кому ты обращаешься)

да.. чёт прям жестоко я перепутал :-) .

старческий маразм уже у меня, не иначе%)

user_id_68054 ★★★★★
()
Последнее исправление: user_id_68054 (всего исправлений: 1)
Ответ на: комментарий от nuboquest

Где то читал, что этот идиот теперь считает, что конструкции типа map/foreach «вредны» для читаемости и собирается их выпиливать, Lol

map функция, и её не выпилят. foreach в Python нет. Что читал-то, журнал «Мурзилка»?

Virtuos86 ★★★★★
()

Галочка в трейсбеке указывает _точно_ на место ошибки. То что там нет видимого символа, не повод валить вину на оператор ":".

Virtuos86 ★★★★★
()
Ответ на: комментарий от Virtuos86

foreach в Python нет

Кстати, нет особой разницы, есть она или нет в языке, она реализуется в несколько строк. Не понятно, какие там проблемы в питоне с ее реализацией. Идеологические штоле?

nuboquest
()
Ответ на: комментарий от nuboquest

А нахрен она нужна)? В питоне итераторы во все поля, там и map, и for, и подавляющее большинство подобных функций и конструкций работают, как foreach. Она же так работает?

Virtuos86 ★★★★★
()
Ответ на: комментарий от Virtuos86

Думаю, foreach — более общий случай. Просто применяем данное действие к каждоум из элементов. Что делать с каждым из элементов, определятеся как раз в этой функции. В принципе, она анологисна map, но вызывается только ради побочных эффектов, как правило. map может заменить ее, но это оверхед по памяти, лишняя работа для GC. Причем тут итераторы, ваще хз, можно дергать зубы через жопу, а смысл?

nuboquest
()
Ответ на: комментарий от nuboquest

можно было приравнять один таб к четырем пробелам

А можно к одному. Так и порешали.

no-such-file ★★★★★
()
Ответ на: комментарий от nuboquest

Причем тут итераторы

При том, что в питоне нет нормальных лямбд. Поэтому map используется очень редко, а foreach вообще нет. С другой стороны итераторы/генераторы гораздо мощнее, чем тупой apply в цикле.

no-such-file ★★★★★
()
Последнее исправление: no-such-file (всего исправлений: 1)
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.