2011-08-04 14 views
1

私はPythonを学ぼうとしているので、簡単なプログラムを書いています。私はプログラムで使用したい2つの関数を定義するためにこれらの2ビットのコードを書いていましたが、両方とも彼らが望むことをしますが、IDLEにペーストしようとすると2番目のdefに構文エラーがあると言います。これは何ですか?ここ 構文Pythonで複数の関数を定義しようとするとエラーが発生しますか?

はコードです:通常期待

def print_seq1(number): 

    number = input("Pick a number: ") 

    print " " 
    while number != 1: 
     if number%2==0: 
      print number 
      number = number/2 
     else: 
      print number 
      number = number*3 + 1 
    print number 
    print " " 
    choice = 0 

def print_seq2(number): 

     number = input("Pick a number: ") 
     print " " 
     while number != 1: 
      if number%2==0: 
       print number, 
       number = number/2 
      else: 
       print number, 
       number = number*3 + 1 
     print number 
     print " " 
     choice = 0 
+0

構文エラーはどこですか? –

+0

インデント問題、そうですか? – Santa

+0

これをIDLEにコピー/ペーストすると、構文エラーが発生しない –

答えて

1

インタラクティブ通訳(別名REPL、単に「通訳」、および他の多くの用語)のみの単一のトップレベルの文の(関数定義、クラス定義、グローバル割り当て、ループ、...)を一度に行うことができます。あなたはそれを2つ与え、それは混乱している。最初にdefを入力し、空白行を入力して実際に入力を実行し、次に第2のdefを入力してみてください。

0

貼り付けを行うと、コードの書式が混乱し、機能を貼り付けたり貼り付けた後に正しくインデントしたりすることがあります。

+0

誤ったインデントは厳密には構文エラーですが、エラーメッセージでは別のラベルが明示されているため、構文エラーについてはインデントエラーが発生しません。 – delnan

+0

私はIDLEのコードを試しましたが、ポスターが示唆していました。 – anijhaw

関連する問題