Как удалить дополнительные списки из вывода с помощью Python? - PullRequest
0 голосов
/ 08 апреля 2019

Я работаю над улучшением своих навыков кодирования, и делаю это, создавая функции, которые могут решать математические задачи.

Я пытаюсь создать простое уравнение: 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 списка перед ним.Почему я получаю несколько списков?

Ответы [ 4 ]

1 голос
/ 08 апреля 2019

Вам нужно переместить последний оператор печати из цикла. Сейчас он печатается с циклом для каждой итерации, но если вы хотите, чтобы он печатался только один раз, удалите отступ, чтобы он печатался только после завершения цикла:

def Sup(n):
    list = []
    for n in range (1,n+1):
        Sup = (1/n)
        list.append(Sup)
    # Move this print statement down
    print (list)
1 голос
/ 08 апреля 2019

Вы распечатываете многие списки, потому что у вас есть 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)
1 голос
/ 08 апреля 2019

Переместить print (list) из цикла:

def Sup(n):
    list = []
    for n in range (1,n+1):
        Sup = (1/n)
        list.append(Sup)
    print (list)
0 голосов
/ 08 апреля 2019

Вы вызываете print() внутри цикла for, что приводит к вызову print() на каждой итерации. Вы столкнулись с проблемой охвата, если хотите узнать подробности в Google. Если вы отменяете вызов вызова print() на один уровень, он будет находиться в области действия функции вместо области цикла и будет вызываться только после завершения цикла.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...