簡體   English   中英

如何使python for循環中的最后一個元素最后一次遞增

[英]How to make last element in python for loop increment one last time

在 Python 中:

ele = 0
for ele in range(0,4):
    print('-')
print(ele)

我意識到這最終會打印 3 而不是 4,這與 C 風格的 for 循環不同。 while選擇實現C風格的行為?

試試else else下的語句將在代碼退出循環后只執行一次

for ele in range(0,4):
    print('-')
else:
    ele=ele+1
print(ele)

輸出:

-
-
-
-
4

您可以使用enumerate()添加一個自變量來計算循環迭代次數:

N = 4
items = range(0, N)
i = 0
for i, x in enumerate(items, 1):
    print(i, ":", x)
print("number of loop iterations done:", i)

您應該確保在循環之前重置該值,因為它沒有設置為零,當循環甚至沒有迭代一次時。

以供參考:

for ele in range(param1, param2) ,這意味着param1 <= ele < param2

如果你想得到param2的值,你可能會改變比param2大的值。

ele = 0
for ele in range(0,4):
    print('-')
print(ele+1)

在 python 中, range 函數的工作方式不同,如果你想打印 N 次,試試這個:

ele = 0
for i in range(N):
    print("-")
print(ele)

也不是您可以采用的唯一打印方法,您還可以:

print("-\n"*(N-1) + "-" + ele)

range()函數以不同的方式工作:

  1. range(N) 表示從 0 到 N-1 的列表,即包含 N 個元素的列表
  2. range(A,B) 表示從整數 A 到整數 B 的列表
  3. range(A,B,k) 表示從整數 A 開始到 B 之前結束並以 k 為增量的列表

也可以參考官方文檔: docs.python.org/3/library/functions.html#func-range

希望這會有所幫助:D!

一個forrange大致相當於一個for名單上,也就是你的循環也可以寫成:

for ele in [0, 1, 2, 3]:
    print('-')

如果你想讓ele等於執行for指令后的循環次數,你也可以這樣寫:

for ele in [1, 2, 3, 4]:
    print('-')

可以使用range重寫為:

for ele in range(1, 5):
    print('-')

因為range是從第一個參數到第二個參數之前的數字。

暫無
暫無

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

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