Изменение функции main
from collections import Counter
def sleight_of_hand(k2, matrix):
c = Counter(int(x) for row in matrix for x in row if x != ".")
return sum(x <= k2 for x in c.values())
def main():
k2 = 2 * int(input())
matrix = (input() for _ in range(4))
result = sleight_of_hand(k2, matrix)
print(result)
if __name__ == "__main__":
main()
Мне сказали, что def main() - лишняя промежуточная функция, и код можно сразу написать под if __name__ == '__main__'
Но если я его пишу после if __name__ == '__main__' код перестает работать. Как исправить ошибку?
Ответы (1 шт):
Автор решения: Сергей
→ Ссылка
Вот вам перенесенный код, ещё и под PEP-8 исправленный. Так как вы свой переделанный не привели, то ошибку не укажу. Сравнивайте и смотрите, что у вас не так было.
И @eri и @Stanislav Volodarskiy правы, первый код лучше, если не учитель так потребовал, то лучше не менять.
from collections import Counter
def sleight_of_hand(k2, matrix):
c = Counter(int(x) for row in matrix for x in row if x != ".")
return sum(x <= k2 for x in c.values())
if __name__ == "__main__":
k2 = 2 * int(input())
matrix = (input() for _ in range(4))
result = sleight_of_hand(k2, matrix)
print(result)