Я работаю над улучшением своих навыков кодирования, и делаю это, создавая функции, которые могут решать математические задачи.
Я пытаюсь составить простое уравнение: S = 1/n, где n может быть любым целым числом > 0. Я настроил код так, чтобы на выходе отображался список результатов.
def Sup(n):
list = []
for n in range (1,n+1):
Sup = (1/n)
list.append(Sup)
print (list)
Sup(4)
[1.0]
[1.0, 0.5]
[1.0, 0.5, 0.3333333333333333]
[1.0, 0.5, 0.3333333333333333, 0.25]
Однако мне удалось это сделать, я хотел бы получить только один список, показывающий, для чего нужен результат, когда n = 1,2,3,4. Окончательный список - это то, что я хочу иметь, а не 3 списка до него. Почему я получаю несколько списков?
Не используйте одно и то же имя для функции и переменной. Выглядит некрасиво и в худшем случае глючит.
хорошая мысль, спасибо за предложение!
Уберите print (list)
из цикла:
def Sup(n):
list = []
for n in range (1,n+1):
Sup = (1/n)
list.append(Sup)
print (list)
Вам нужно переместить последний оператор печати из цикла. Прямо сейчас он печатается с циклом для каждой итерации, но если вы хотите, чтобы он печатался только один раз, удалите отступ, чтобы он печатался только после завершения цикла:
def Sup(n):
list = []
for n in range (1,n+1):
Sup = (1/n)
list.append(Sup)
# Move this print statement down
print (list)
Вы распечатываете множество списков, потому что у вас есть оператор print
внутри в цикле. Таким образом, каждый список печатается. Чтобы напечатать только окончательный список, вычеркните оператор print
, чтобы он вышел из цикла.
def Sup(n):
list = []
for n in range (1,n+1):
Sup = (1/n)
list.append(Sup)
print (list) # out-dented!
Sup(4)
Вы вызываете print()
внутри цикла for
, что приводит к вызову print()
на каждой итерации. Вы столкнулись с проблемой области действия, если вы хотите получить более подробную информацию в Google. Если вы уменьшите отступ вызова print()
на один уровень, он будет находиться в области действия функции, а не в области цикла, и будет вызываться только после завершения цикла.
вы печатаете внутри цикла.