Новичок здесь и искал ответ на этот вопрос. Работа над вопросом Project Euler и попытка добавить значения функции в список с помощью list.append, однако в список ничего не добавляется, и я не уверен, почему. Любая помощь приветствуется.
import math
import logging
%config Application.log_level = "INFO"
input = 600851475143
factlist = []
def factors(i):
for i in range(1, int(math.sqrt(input)) + 1):
if (input%i == 0):
factlist.append()
print(i)
Пробовали определять список внутри и вне цикла, но безрезультатно.
Более того: вы действительно где-то вызываете функцию?
Привет, Луи, да, вот как я его отформатировал, он просто не перенесен сюда. Я вызываю функцию дальше.






Вам необходимо передать элемент, который вы хотите добавить, в качестве параметра в append.
Передайте правильный аргумент:
if (input%i == 0):
factlist.append(i) #<- i added
print(i)
И, конечно, вам нужно где-то вызвать свою функцию
Привет, Нильс. Я пробовал это, однако когда я «распечатываю» список, он все еще не содержит значений.
Тогда вы, вероятно, никогда не вызовете свою функцию.
Как я сказал в комментарии, вам нужно где-то вызвать функцию, и вам также нужно указать аргумент для append:
import math
import logging
%config Application.log_level = "INFO"
input_ = 600851475143
def factors(input_):
factlist = []
for i in range(1, int(math.sqrt(input_)) + 1):
if (input_%i == 0):
factlist.append(i)
factlist = factors(input_)
Более того, не используйте имя input для переменной, поскольку это функция Python.
аааааааааааааааааааааааааааааааааааааааааааа Ноль минуты назад в секрете, поэтому для того, чтобы функция действительно выводила какие-либо данные, мне нужно вызвать ее отдельно, а не просто «запустить» код, в котором я определяю коэффициент! Понятно :) Большое спасибо, ребята! Я никогда раньше не занимался программированием по-настоящему, так что все это для меня в новинку.
Во-первых, отступ неправильный: оператор
ifдолжен иметь больший отступ, чемfor, аfor- больше, чемdef.