2016-04-08 11 views
-1

私はPythonには新しく、現在def関数を正しく使うことを学んでいます。ターミナル・ランで定義された関数に関するPythonを書くのに助けが必要

崇高なテキストでの私のデフコードは以下の通りです:

def quadratic(a,b,c): 
    if not isinstance(a,(int,float)): 
     raise TypeError('bad operand type') 
    if not isinstance(b,(int,float)): 
     raise TypeError('bad operand type') 
    if not isinstance(c,(int,float)): 
     raise TypeError('bad operand type') 
    d = b ** 2 - 4 * a * c 
     if d < 0: 
      print('no result!') 
     if d = 0: 
      x1 = -b/(2 * a) 
      x2 = x1 
      return x1,x2 
     else: 
      x1 = (-b + math.sqrt(d))/(2 * a) 
      x2 = (-b - math.sqrt(d))/(2 * a) 
      return x1,x2 

が、私はこのコードを実行するためには(Macで)ターミナルを使用する場合、このエラーに入って来る:

Frank-s-Macbook-Pro:Coding frank$ quadratic(1,2,1) 
-bash: syntax error near unexpected token `1,2,1' 

私はいずれかをいただければ幸いです私は間違いを援助したに違いありません。

+0

ルール1:エラーを読みますメッセージ。 '-bash:syntax error ... 'と表示されます。 Pythonコードを別の言語、つまりBashで実行しようとしています。 – cdarke

答えて

7

端末から直接Python定義関数を実行することはできません。この場合、おそらく、あなたのスクリプトと同じフォルダにインタプリタを実行したいのは、端末にpythonと入力することです。

それから、pythonが起動します(もしそれがインストールされ、別名が正しい場合)。その後、ファイル名をインポートして関数をインポートできます。あなたの関数がファイルmyfunction.pyの下に保存されているとしましょう。その後:

>> myfunction.quadratic(a, b, c) 
を、あなたはあなたの答えはあなたに戻って取得する必要があります。

import myfunction (without the .py) 

次に入力します。

あなたは、端末から直接スクリプトを実行したい場合は、入力機能またはsys.argvの機能でかつ

$ python myfunction.py 

編集でスクリプトを実行書き換えた後になります。 に多少の誤差もありますあなたのコード、他の回答:)

1

私はマックのbashについて多くを知っているが、通話が可能shoudln'tません参照してください。

python quadratic(1,2,1) 
0

あなたは文が間違ってインデントを持っており、誤りが含まれている場合

d = b ** 2 - 4 * a * c

def quadratic(a,b,c): 
    if not isinstance(a,(int,float)): 
     raise TypeError('bad operand type') 
    if not isinstance(b,(int,float)): 
     raise TypeError('bad operand type') 
    if not isinstance(c,(int,float)): 
     raise TypeError('bad operand type') 
    d = b ** 2 - 4 * a * c 
    if d < 0: 
     print('no result!') 
    if d == 0: 
     x1 = -b/(2 * a) 
     x2 = x1 
     return x1,x2 
    else: 
     x1 = (-b + math.sqrt(d))/(2 * a) 
     x2 = (-b - math.sqrt(d))/(2 * a) 
     return x1,x2 

if d = 0:

後、あなたのコード内の少なくとも2つの構文エラーを得た... は、コードを修正しましたこれらのエラーは修正されているので、Sublime(cmd + b)からコードを直接実行することができます

関連する問題