2016-04-08 2 views
-1

Ich bin neu in Python und und derzeit lernen, Def-Funktionen richtig zu verwenden.Brauchen Sie Hilfe, schreiben ein Python über definierte Funktion mit Terminal Run

mein def Code in Sublime Text folgt:

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 

aber wenn ich Terminals verwenden (in Mac) diesen Code ausführen können, in diesen Fehler kommen:

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

ich jede schätzen würde Hilfe bei meinen Fehlern habe ich gemacht.

+0

Regel 1: Lesen Sie den Fehler Botschaft. Es sagt '-bash: Syntaxfehler ...'. Sie versuchen, Python-Code in einer anderen Sprache auszuführen, z. B. Bash. – cdarke

Antwort

7

Sie können eine Python-definierte Funktion nicht direkt vom Terminal ausführen. In diesem Fall würden Sie den Interpreter wahrscheinlich in demselben Ordner ausführen, in dem sich Ihr Skript befindet, indem Sie python im Terminal eingeben.

Dann startet Python (wenn es installiert ist und rechts Aliasing). Sie können die Funktion dann importieren, indem Sie den Dateinamen importieren. Nehmen wir an, Ihre Funktion ist unter der Datei myfunction.py gespeichert. Dann:

import myfunction (without the .py) 

Dann geben:

>> myfunction.quadratic(a, b, c) 

und Sie sollten erhalten Sie Ihre Antwort an Sie zurückgeschickt.

Wenn Sie Ihren Skript direkt aus dem Terminal laufen Sie an der Eingabefunktion oder sys.argv Funktion und nach dem Umschreiben auszuführen Skript mit

$ python myfunction.py 

bearbeiten aussehen sollen: in gibt es auch einige Fehler Ihr Code, andere Antworten :)

1

ich weiß über den mac bash nicht viel, aber shoudln't den Anruf sein: Sie

python quadratic(1,2,1) 
0

mindestens 2 Syntaxfehler in Ihrem Code bekam ... korrigierte Code:

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 

nach

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

if-Anweisung hat falschen Gedankenstrich und enthält einen Fehler:

if d = 0:

nach Diese Fehler werden korrigiert. Sie können Ihren Code direkt von Sublime aus ausführen (cmd + b)