2015-04-25 145 views
0

我有这样的Python代码在这里:循环给其他结果

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

与帕斯卡尔/德尔福循环这里:

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的循环,但在帕循环得到正确的价值观这些值是不同的。 这与嵌套循环有什么关系?

回答

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 
+0

因此,他错过了开始和结束,所以只有第一个语句是在循环? –

+0

@jakekimds,是 – valentin

+0

@valentin这很奇怪,然后我的编译器出现了一些问题http://prntscr.com/6y5xtk – ytl96875

3

你必须注意到

for i in range(spalte): 

不蟒蛇当量

for i := 0 to spalte do 

事实上通过每个值蟒range(n)运行从0到n-1(不含n)的同时帕斯卡循环从0到n(包括正)


这是除了用于缺少begin/end在你的pascal程序的最嵌套循环