Подсчет строк и нумерация их - PullRequest
1 голос
/ 14 марта 2012

Другой вопрос.

Эта программа считает и нумерует каждую строку в коде, если у нее нет хэш-тега или строка не пуста.Я получил его для нумерации каждой строки, кроме хеш-тегов.Как я могу остановить его от подсчета пустых строк?

  def main():

    file_Name = input('Enter file you would like to open: ')

    infile = open(file_Name, 'r')

    contents = infile.readlines()
    line_Number = 0
    for line in contents:
        if '#' in line:
            print(line)
            if line == '' or line == '\n':
                print(line)
        else:
            line_Number += 1 
            print(line_Number, line)

    infile.close()

main()

Ответы [ 2 ]

3 голосов
/ 14 марта 2012

Вы проверяете, есть ли line == '' or line == '\n' в предложении if для '#' in line, где у него нет шансов быть True.По сути, вам нужно сместить if line == '' or line == '\n': влево:)

Кроме того, вы можете объединить два случая, поскольку вы выполняете одинаковые действия:

if '#' in line or not line or line == '\n':
    print line

Но на самом деле, почемуВам нужно будет печатать пустые строки или '\n'?

Редактировать: Если другие случаи, такие как line == '\t', должны обрабатываться одинаково, лучше всего использовать совет Тима и выполнить: if '#' in line or not line.strip().

0 голосов
/ 14 марта 2012

Вы можете пропустить пустые строки, добавив в начало цикла for следующее:

if not line:
    continue

В Python пустая строка оценивается как логическое значение True.В данном случае это означает, что пустые строки пропускаются, поскольку оператор if равен True только тогда, когда строка пуста.

Оператор continue означает, что код продолжится при следующем проходе цикла.Он не выполнит код после этого оператора, и это означает, что ваш код, который считает строки, пропущен.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...