我在这里有这个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循环中,值是不同的。 这与嵌套循环有什么关系吗?
答案 0 :(得分:3)
你必须注意到
for i in range(spalte):
不是
的python等价物for i := 0 to spalte do
实际上python range(n)
遍历从0到n-1(不包括n)的每个值,而pascal循环从0到n(包括n)
这是对pascal程序最嵌套循环中缺少的begin
/ end
的补充
答案 1 :(得分:1)
[更新] :
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