首页 > 解决方案 > 给定前 10 个数字的范围,从开始数字迭代到结束数字并打印当前数字和前一个数字的总和

问题描述

我正在尝试为上述问题编写 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

这是我得到的错误:

File "<ipython-input-40-6f1cd8f8f1d7>", line 6
    previousNum=i
              ^
SyntaxError: invalid syntax

标签: pythonloopsrange

解决方案


看起来是第 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 使用 Snake case 作为其语言,如PEP8中所述,因此您应该使用“previous_num”而不是输入“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

快乐编码!


推荐阅读