0

在 Python 中:

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

我意识到这最终会打印 3 而不是 4,这与 C 风格的 for 循环不同。是while实现 C 风格行为的选项吗?

4

6 回答 6

1

您可以添加一个自变量来计算循环迭代次数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)

您应该确保在循环之前重置该值,因为它没有设置为零,当循环甚至没有迭代一次时。

以供参考:

于 2020-03-23T08:21:27.790 回答
1

试试else。代码退出循环后,下面的语句else将只执行一次。

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

输出:

-
-
-
-
4
于 2020-03-20T07:58:28.833 回答
0

for带 a的Arange大致相当于for列表中的 a,即您的循环也可以写成:

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从第一个参数到第二个参数之前的数字。

于 2020-03-20T08:05:55.177 回答
0

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

如果你想获得 param2 的值,你可以将值更改为大于 param2。

于 2020-03-20T08:01:19.283 回答
0
ele = 0
for ele in range(0,4):
    print('-')
print(ele+1)
于 2020-03-20T08:01:59.093 回答
0

在 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!

于 2020-03-20T08:03:11.890 回答