循环给出其他结果

2024-05-15 04:30:15 发布

您现在位置:Python中文网/ 问答频道 /正文

我这里有python代码:

spalte=5
for x in range(spalte):
    print x 
    print spalte 
    for i in range(spalte-1):
        print i 
        print spalte-1

以及pascal/delphi循环:

spalte=5
for x := 0 to spalte do
begin
  writeln(x);
  writeln(spalte);
  for i := 0 to (spalte-1) do
    writeln(i);
    writeln(spalte-1);
end;

我从python循环中得到了正确的值,但是在pascal循环中,值是不同的。 这和嵌套循环有关吗?你知道吗


Tags: to代码inforrangedoend嵌套循环
2条回答

[更新]基于@Amxx观察:

for x := 0 to spalte-1 do
begin
  writeln(x);
  writeln(spalte);
  for i := 0 to (spalte-1-1) do
    begin
      writeln(i);
      writeln(spalte-1);
    end;
end;

您的pascal代码等同于:

for x in range(spalte+1):
    print x 
    print spalte
    for i in range(spalte):
        print i 
    print spalte-1

你必须注意到这一点

for i in range(spalte):

不是python的等价物

for i := 0 to spalte do

实际上,pythonrange(n)遍历从0到n-1(不包括n)的每个值,而pascal循环从0到n(包括n)


这是对pascal程序最嵌套的循环中缺少的begin/end的补充

相关问题 更多 >

    热门问题