Форум сайта python.su
1) какой лучший выбор алгоритма для этой задачи,
2) щас как бы правильно сформулировать вопрос, допустим я пропускаю каждую строку через цыкл
for i in range(len(x))
if x[i][:3] == 'def' and '#' != x[i-1][0]
def powers(a): return a, a**2, a**3 # функция вычисляет сумму всех переданных чисел def sum_all(*args): return sum(args) def matrix(): pass # функция возвращает количество переданных аргументов def count_args(*args): return len(args) def mean(*args): total = 0.0 count = 0 for i in args: if type(i) in (int, float): total += i count += 1 if count == 0: return 0.0 else: return total / count def greet(name, *args): args = (name,) + args return f'Hello, {" and ".join(args)}!' # функция вычисляет факториал переданного числа def fact(n): res = 1 for i in range(1, n + 1): res *= i return res
with open(input(), 'r', encoding='UTF-8') as f: x = [i.strip() for i in f] d = [] for i in range(len(x)): if x[i][:3] == 'def' and '#' not in x[i - 1]: d.append(x[i][4:x[i].find('(')]) print(*d if len(d) > 0 else ['Best Programming Team'], sep='\n')
Отредактировано Meacronacer (Авг. 24, 2021 15:48:19)
Офлайн
Meacronacerиспользуйте функции строк startswith
Meacronacerестевенно , если вы сравниваете с передыщей строкой то очевидно нужно начинать не с первого(нулевой индекс) элемента, а с второго(первый индекс). при этом не стоит забывать что первая строка может начинаться с def(тоесть вводить доп. проверку первого элемента).
но такой вариант не проходит говорит что я выходжу из ренджа
флаг=False
для стока в файле:
если строка начинается с #:
флаг=True
продолжить.
иначе:
если стока начинается с 'def' и флаг ==False:
все плохо, коментарий отсутвует.
флаг=False
[code python][/code]
Отредактировано PEHDOM (Авг. 24, 2021 21:50:55)
Офлайн
MeacronacerКонечный автомат надо делать в подобных задачах.
1) какой лучший выбор алгоритма для этой задачи,
Отредактировано py.user.next (Авг. 25, 2021 01:36:01)
Офлайн