繁体   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