Почему выводит none в консоль??? (python 3.7.8)
Знаю, что если убрать print во второй строке эта вещь уходит.
def is_year_leap():
year_input = str(input(print('Enter year: ')))
year_div = int(year_input) % 4
if year_div == 0:
print('{} is leap year.'.format(year_input))
else:
return print('{} year is not leap year'.format(year_input))
is_year_leap()
Кто нибудь может объяснить почему выводит эту ошибку???
Ответы (3 шт):
В вашем коде input берет аргумент print('Enter year: '), функция print печатает Enter year: , а потом input печатает значение функции print, которая возвращает None. Так же input возвращает тип str, поэтому не нужно прописывать str()
def is_year_leap():
year_input = input('Enter year: ')
year_div = int(year_input) % 4
if year_div == 0:
print('{} is leap year.'.format(year_input))
else:
print('{} year is not leap year'.format(year_input))
is_year_leap()
смотрим строку year_input = str(input(print('Enter year: ')))
str- убираем, т.к. результат и такstryear_input = input(print('Enter year: '))так как вы написали, это все равно что:
val = print('Enter year: ')input(val)посмотрите что такое
valprint(val)пишем так:
year_input = input('Enter year: ')
В строке
return print('{} year is not leap year'.format(year_input))
вы возвращаете то, что возвращает функция print(), а функция print() всегда возвращает None.
Вы наверно хотели вернуть строку — значит, удалите print из команды return и добавите еще одно return:
if year_div == 0:
return '{} is leap year.'.format(year_input)
else:
return '{} year is not leap year'.format(year_input)