簡體   English   中英

給定前 10 個數字的范圍,從開始數字迭代到結束數字並打印當前數字和前一個數字的總和

[英]Given a range of first 10 numbers, Iterate from start number to the end number and print the sum of the current number and previous number

我正在嘗試為上述問題編寫 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

看起來是第 5 行中的一個簡單語法錯誤。

您在打印 function 末尾缺少右括號“)”。

例如:

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)''' function 來代替存儲的范圍列表。

  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

快樂編碼!

sum = 0
for idx in range(10):
    print(f'current number = {idx}')
    if idx != 0:
        sum += idx
        print(f'cumul. sum = {sum}')

歡迎來到 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]

在將范圍、過濾器和 map 轉換為迭代器之前,這在 python 2 中曾經更容易。

for i in range(1,10+1):
   print(i+i-1, end=' ')

在這里它從 1 迭代到 10 包括在內。 它打印 i 的當前值與 i-1 的前一個值之和的值

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM