2012-03-25 11 views
0

Pythonの無限ながら、関数の内部ループどんなに私はこの関数で無限ループを得続けるしようと何

At the top of i is 0 
At the top of i is 0 
... 

ありがとう:私は、スクリプトを実行すると

# Excercise 33 - LPTHW 

i = 0 
numbers = [] 

#Ec 1 
#numb = 6 
#iplus = 10 

def theloop(numb): 
     global i 
     #i = 0 
     #number = [] 
     while i < numb: 
      print "At the top of i is %d" % i 
      numbers.append(i) 

      i = i + 1 
      print "Numbers now: ", numbers 
      print "At the bottom i is %d" % i 

     print "The numbers: " 

     for num in numbers: 
      print num 

theloop(7) 

それだけで印刷を続けますあらかじめ。

+4

これは*実行中のスクリプトですか?ここで私にとってうまくいくからです。 –

+0

これは私のために働く。 – satoru

+0

Python 3でスクリプトを実行します(印刷構文を修正してください)。ここでうまく動作します。 numbers.Append()が何か変なことをしていない限り、あなたが何を記述するかは起こりません。押し込みを確認してください。 – Thomas

答えて

2

あなたのコードは書かれているように私には役立ちますが、タブとスペースが混在するために奇妙な字下げがあるようです。私は.readlinesを使用してスクリプトを読んだとき、あなたはこれを見ることができます:

' def theloop(numb):\n', 
' \t\tglobal i\n', 
' \t\t#i = 0\n', 
'   #number = []\n', 
' \t\twhile i < numb:\n', 
'  \t\t\tprint "At the top of i is %d" % i\n', 
'  \t\tnumbers.append(i)\n', 
' \n', 
'  \t\ti = i + 1\n', 

は、だから私はどこでも4つのスペースに切り替えて、別の碁を持つお勧めします。 printステートメントとappend/incrementステートメントの間のタブ数の違いに注意してください。

+0

ありがとう@DSMが問題でした。また、あなたの洞察のためにJames、Satoru&Thomasに感謝します。 – jdorfman

0

次の行後のインデント間違いがあるようにこれが見えます:同様ジェームズは、あなたがそれを貼り付けたとして、あなたは正しいインデントを持っているかどうかを確認する場合がありますので、それは、ここだけで正常に動作した

while i < numb: 
     print "At the top of i is %d" % i 
     numbers.append(i) 

あなたの実際のコードのレベル。

1

あなたがこのようにスクリプトを実行しようとして混合スペースとタブをした場合:

python -tt yourscript.py ##this will raise error if you've mixed spaces and tabs 

これは私があなたのスクリプトを実行した後に取得していますし、それは無限ではないものです。

At the top of i is 0 
Numbers now: [0] 
At the bottom i is 1 
At the top of i is 1 
Numbers now: [0, 1] 
At the bottom i is 2 
At the top of i is 2 
Numbers now: [0, 1, 2] 
At the bottom i is 3 
At the top of i is 3 
Numbers now: [0, 1, 2, 3] 
At the bottom i is 4 
At the top of i is 4 
Numbers now: [0, 1, 2, 3, 4] 
At the bottom i is 5 
At the top of i is 5 
Numbers now: [0, 1, 2, 3, 4, 5] 
At the bottom i is 6 
At the top of i is 6 
Numbers now: [0, 1, 2, 3, 4, 5, 6] 
At the bottom i is 7 
The numbers: 
0 
1 
2 
3 
4 
5 
6 
+0

私は '-tt'大きなヒントを使い始めるでしょう。 – jdorfman

関連する問題