months = ['January',
'February',
'March',
'April',
'May',
'June',
'July',
'August',
'September',
'October',
'November',
'December']
checker = False
def valid_month(month):
for mon in months:
if mon.lower() == month.lower():
print mon
checker = True
print "out of the loop, checker = " + str(checker)
if checker is False:
print None
print valid_month("jaNuary")
Это должно только напечатать январь. Но по какой-то причине результат выглядит следующим образом:Python check for boolean
January
out of the loop, checker = True
None
шашка верно, то почему это проходит, если заявление? что «если контрольная панель False:»
Инициализация 'checker' вне функции - плохая идея, и она никогда ничего не возвращает. – jonrsharpe
«Нет» в конце напечатан, потому что 'valid_month (« jaNuary »)' возвращает None; не потому, что checker False. Вы печатаете возвращаемое значение функции. Если вы замените его на 'Checker is True', вы должны увидеть два' None's – Esref