У меня есть этот код, где я пытаюсь подсчитать количество:возвращающиеся особенности из файла, питон
- строк кода в .py скрипт
- for_loops («для») - while_loops ("а ")
- if_statements (" если ")
- определения функций (" DEF ")
- знаки умножения (" *"
- знаки деления ("/"
- знаки сложения («+»)
- вычитательные знаки («-»)
На математических знаков код работает, но когда код ищет если заявления возвращает 2, когда есть один, что является основной проблемой, но это заставляет меня думать, что я написал цикл for неправильно, что может вызвать больше проблем позже. Как это я не знаю, как напечатать Автор линии, которая идет вверх, как [] вместо имени автора
Код:
from collections import Counter
FOR_=0
WHILE_=0
IF_=0
DEF_=0
x =input("Enter file or directory: ")
print ("Enter file or directory: {0}".format(x))
print ("Filename {0:>20}".format(x))
b= open(x)
c=b.readlines()
d=b.readlines(2)
print ("Author {0:<18}".format(d))
print ("lines_of_code {0:>8}".format((len (c))))
counter = Counter(str(c))
for line in c:
if ("for ") in line:
FOR_+=1
print ("for_loops {0:>12}".format((FOR_)))
for line in c:
if ("while ") in line:
WHILE_+=1
print ("while_loops {0:>10}".format((WHILE_)))
for line in c:
if ("if ") in line:
IF_+=1
a=IF_
print ("if_statements {0:>8}".format((a)))
for line in c:
if ("def ") in line:
DEF_+=1
print ("function_definitions {0}".format((DEF_)))
print ("multiplications {0:>6}".format((counter['*'])))
print ("divisions {0:>12}".format((counter['/'])))
print ("additions {0:>12}".format((counter['+'])))
print ("subtractions {0:>9}".format((counter['-'])))
Файл считывается из:
'''Dumbo
Author: Hector McTavish'''
for for for # Should count as 1 for statement
while_im_alive # Shouldn't count as a while
while blah # But this one should
if defined # Should be an if but not a def
def if # Should be a def but not an if
x = (2 * 3) + 4 * 2 * 7/1 - 2 # Various operators
Любая помощь будет высоко ценится
Вам действительно нужно использовать более описательные имена переменных. –