2016-04-08 23 views
-1

ile tanımlanan işlev hakkında bir python yazarken yardıma ihtiyacım var python'da yeniyim ve şu anda def işlevlerini doğru şekilde kullanmayı öğreniyorum.Terminal Çalıştırıcısı

takip ediyor Sublime Text benim def kodu:

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 

Bu kodu çalıştırmak için (Mac) Terminal kullandığınızda, bu hatanın girer ama:

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

herhangi seviniriz hatalarımın yardımıyla yardım etmeliydim.

+0

Kural 1: hatayı oku mesaj. -bash diyor: sözdizimi hatası ... '. Python kodunu farklı bir dilde, yani Bash'de çalıştırmaya çalışıyorsunuz. – cdarke

cevap

7

Doğrudan bir python tanımlı işlevi terminalden çalıştıramazsınız. Bu durumda, muhtemelen tercümanı, betiğiniz ile aynı klasörde çalıştırmak isteyebilirsiniz, terminalde python yazarak.

Daha sonra python başlatılır (takılıysa ve takma doğruysa). Daha sonra, dosya adını içe aktararak işlevi içe aktarabilirsiniz. Fonksiyonunuzun myfunction.py dosyasının altında saklandığını varsayalım. Ardından:

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

ve size cevap size iade almalısınız:

import myfunction (without the .py) 

Sonra yazın.

doğruca giriş fonksiyonu veya sys.argv fonksiyonu bakmak gerekir terminalden kodunuzu çalıştırabilir istiyorsanız ve

$ python myfunction.py 

düzenlemek ile komut yürütme yeniden sonra

: bazı hatalar da vardır kodunuzu,

1

çağrıyı mac bash hakkında fazla bilgi sahibi, ama shoudln't yok olması diğer cevaplar :) bkz:

python quadratic(1,2,1) 
0

size Kodunuzdaki en az 2 dizimi hataları var ... düzeltilmiş kodu:

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 

sonra

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

ifade bir hata yanlış girinti vardır ve içeriyorsa:

if d = 0:

sonra Bu hatalar düzeltildi, kodunuzu doğrudan Sublime'den çalıştırabilirsiniz (cmd + b)