Python: учитывая диапазон первых 10 чисел, выполните итерацию от начального номера до конечного номера и выведите сумму текущего номера и предыдущего номера - PullRequest
1 голос
/ 13 апреля 2020

Попытка написать код PYTHON для вышеуказанной проблемы и получение кода ошибки - оцените помощь:

num = list(range(10))
previousNum = 0
for i in num:
    sum = previousNum + i
    print('Current Number '+ str(i) + 'Previous Number ' + str(previousNum) + 'is ' + str(sum)
    previousNum=i

Это ошибка, которую я получаю:

Файл "", строка 6 previousNum = i ^ SyntaxError: неверный синтаксис

Ответы [ 3 ]

1 голос
/ 13 апреля 2020

Выглядит как простая синтаксическая ошибка в строке 5.

Вам не хватает закрывающей скобки ")" в конце вашей функции печати.

Например:

num = list(range(10))
previousNum = 0
for i in num:
    sum = previousNum + i
    print('Current Number '+ str(i) + 'Previous Number ' + str(previousNum) + 'is ' + str(sum)) # <- This is the issue.
    previousNum=i

Кроме того, вот 3 указателя для улучшения вашего кода, которые могут быть полезны для вас:

  1. Во-первых, Python использует случай змеи для своего языка, как описано в PEP8 , поэтому вместо ввода «previousNum» следует использовать «предыдущий_нум», поэтому мы начнем с этого.

  2. Хранение list(range(1)) в этом случае не требуется. Вы можете просто использовать функцию `` range (10) '' 'вместо сохраненного списка диапазонов.

  3. f строки гораздо более читабельны способы выполнения конкатенации строк (добавление строк вместе).

С этим ваш код будет выглядеть так:

previous_num = 0
for i in range(10):
    sum = previous_num + i
    print(f'Current number {i} Previous Number {previous_num} is {sum}')
    previous_num = i

Удачного кодирования!

0 голосов
/ 13 апреля 2020

Добро пожаловать в Stackoverflow. Всегда есть функционал python:

>>> list(map( lambda x: x[0] + x[1], zip(range(0,10), range(1,11))))
[1, 3, 5, 7, 9, 11, 13, 15, 17, 19]

Или если вы имели в виду совокупную сумму предшественников, например, уменьшение:

>>> [sum(range(xs)) for xs in range(1,11)]
[0, 1, 3, 6, 10, 15, 21, 28, 36, 45]

Раньше было проще в python 2, до того, как диапазон, фильтр и карта были превращены в итераторы.

0 голосов
/ 13 апреля 2020
sum = 0
for idx in range(10):
    print(f'current number = {idx}')
    if idx != 0:
        sum += idx
        print(f'cumul. sum = {sum}')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...