У меня есть следующая функция, вторая функция count_forbid(a)
может работать только один раз. В этом примере он подсчитывает правильное значение слова, которое не содержит буквы 'c'
, но для y
оно возвращает ноль. Таким образом, это означает, что код может сделать только правильный первый раз и для все другого времени возврата нуль:Функция работает правильно только в первый раз, когда она называется
import string
fin = open('words.txt')
def forbid_or_not(word,forb):
for letter in word:
if letter in forb:
return False
return True
def count_forbid(a):
count = 0
for line in fin:
word1 = line.strip()
if forbid_or_not(word1,a):
count += 1
return count
x = count_forbid('c')
y = count_forbid('d')
Вместо того, чтобы использовать менеджер контекста вы просто «вручную» открытые и можете закрыть файл. – syntonym
Конечно, но это зависит от того, что вы бдительны и всегда забудьте закрыть его. Вот почему менеджеры контекста - такая хорошая конструкция, они делают это для вас и позволяют вам беспокоиться о более важных вещах :-). –
WOW, супер эффективный, большое спасибо. –