Python 循环给出了其他结果
我这里有一段python代码:Python 循环给出了其他结果,python,delphi,Python,Delphi,我这里有一段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
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循环中,值是不同的。
这与嵌套循环有关吗?[更新]基于@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
[更新]基于@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程序最嵌套循环中缺少的
开始
/结束
的补充您必须注意
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
的补充,因此,他缺少begin和end,因此循环中只有第一条语句?@valentin这很奇怪,然后我的编译器@ytl96875出了问题。你的python和pascal循环不等价。。。更多内容请看五月的回答否,您应该用两种语言中的一种来更改循环的最终值…因此,他缺少开始和结束,因此只有第一个语句在循环中?@valentin这很奇怪,然后我的编译器@ytl96875出了问题您的python和pascal循环不等效。。。更多内容请参见五月回答否,您应该在两个语言之一中更改循环的最终值。。。