2015-04-25 77 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程序的最嵌套循環