Почему постоянно выводит None?

Введите число до 1018: None1 0 как убрать NONE

n = int(input(print("Введите число до 1018:")))
list = [i for i in range(1,n + 1)]
if n <= 1018:
    print(str(list).count('5'))
else: print("ERROR!")

Ответы (2 шт):

Автор решения: Dmitriy Novikov
ls = [i for i in range(1,n + 1)]
if n <= 1018:
    print(str(ls).count('5'))
else: print("ERROR!")

str(list) - вы используете зарезервированнео поле и получаете '[]'

→ Ссылка
Автор решения: Zhihar

функция print ничего не возвращает, поэтому по питоновским правилам считается, что она возвращает None

функция input в качестве параметра может принимать текст, который она выводит своими силами

когда вы делаете код

input(print(текст))

происходит следующее:

  1. функция print выводит текст и возвращает None

  2. функция input берет то, что вернула функция print, т.е. None, и выводит на экран

поэтому вы и видите None на экране

поэтому используйте просто

input(текст)

если же вы использовали print, тогда код должен был бы выглядеть так:

print(текст, end='')
input()
→ Ссылка