Seite 1 von 3

Wurzel ziehen

Verfasst: Sonntag 20. November 2005, 14:46
von Python 47
Hallo!

Ich hab mir ein Programm geschrieben das den Satz des Pytagoras berechnet:

Code: Alles auswählen

def Pytagoras(a, b):
   if a<0:
      print 'Der Satz des Pytagoras funktioniert nur mit positiven Zahlen'
   elif b<0:
      'Der Satz des Pytagoras funktioniert nur mit positiven Zahlen'
   elif type (a) == type (str):
      print 'Der Satz des Pytagoras funktioniert nur mit Zahlen'
   elif type (b) == type (str):
      print 'Der Satz des Pytagoras funktioniert nur mit Zahlen'
   else:
      c=a**2+b**2
      return c
      
      
Aber wie ziehe ich nun die Wurzel aus a**2+b**2 und wie schaffe ich es das ich die Funktion nicht aufrufen muss sondern das auf den Bildschirm erscheint a= dann gebe ich a ein und dann kommt b= dann gebe ich b ein und die ausgabe ist dann c .

Und warum hat sich das Programm beklagt als ich den Code so geschrieben habe:

Code: Alles auswählen

def Pytagoras(a, b):
   if a<0 or b<0:
      print 'Der Satz des Pytagoras funktioniert nur mit positiven Zahlen'
   elif type (a) or type (b) == type (str):
      print 'Der Satz des Pytagoras funktioniert nur mit Zahlen'
   else:
      c=a**2+b**2
      return c

      
      

Verfasst: Sonntag 20. November 2005, 14:52
von Leonidas
raw_input("a= ") und math.sqrt() helfen dir weiter.

Verfasst: Sonntag 20. November 2005, 14:54
von mawe
Hi!

Statt math.sqrt(x) kann man auch x**0.5 verwenden :)
Bei Deiner 2. Fassung versuch mal

Code: Alles auswählen

elif (type(a) or type(b)) == type(str):
Gruß, mawe

Verfasst: Sonntag 20. November 2005, 15:09
von Python 47
@Leonidas ich kenne beide funktionen, weiß sie aber noch nicht richtig anzuwenden.


Wer kann mir weiterhelfen?

Verfasst: Sonntag 20. November 2005, 15:16
von Leonidas

Code: Alles auswählen

In [1]: import math
In [2]: math.sqrt(4)
Out[2]: 2.0
In [3]: user_text = raw_input('a = ')
a = 123
In [4]: user_text
Out[4]: '123'

Verfasst: Sonntag 20. November 2005, 15:18
von Gast
dir fehlt noch eine Funktion um deine Code abzurufen!!

Verfasst: Sonntag 20. November 2005, 15:48
von Python 47
Wie abzurufen??

Es hat alles geklappt mir raw_input und math.sqrt nur ein Problem hab ich noch: Wie schaffe ich es das wenn ich a und b eingegeben habe das dann sofort a und b an die Funktion gegeben werden und diese ausgeführt wird und als ausgabe c kommt?

Verfasst: Sonntag 20. November 2005, 16:20
von Joghurt
Ähm?

Code: Alles auswählen

c = Pythagoras(a,b)
if c != None:
  print c

Verfasst: Sonntag 20. November 2005, 17:03
von Python 47
Also mein Code sieht jetzt so aus:

Code: Alles auswählen

import math
user_Text = raw_input('a=')
user_Text= raw_input('b=')
 c = Pythagoras(a, b)
if c != None:
  print c
def Pytagoras(a, b):
   if (a<0 or b<0):
      print 'Der Satz des Pytagoras funktioniert nur mit positiven Zahlen'
   elif (type (a) or type (b)) == type(str):
      print 'Der Satz des Pytagoras funktioniert nur mit Zahlen'
   else:
      return math.sqrt(a**2+b**2)
Was ist daran noch falsch?Eigentlich ist doch die variabelnzuweisung von c
falsch weil ja bei einer Variablenzuweisung ein wert vom typ float oder integer sein muss und der andere die variable, oder?

Verfasst: Sonntag 20. November 2005, 17:39
von mitsuhiko

Code: Alles auswählen

import math

def pythagoras(a, b):
    try:
        return math.sqrt(a**2+b**2)
    except:
        

if __name__ = '__main__':
    a = raw_input('a=')
    b = raw_input('b=')
    try:
        c = pythagoras(int(a), int(b))
        print c
    except ValueError:
        print 'Der Satz des Pytagoras funktioniert nur mit positiven Zahlen'
    except TypeError:
        print 'Der Satz des Pytagoras funktioniert nur mit Zahlen'
//edit: lieber mit try/except :)

Verfasst: Sonntag 20. November 2005, 17:42
von Joghurt
Zur Erläuterung: Du musst Pythagoras erst "def"inieren, bevor du es aufrufen kannst.
Das "if __name__ == "__name__"" ist nur Konvention, damit du später einfach mit "import pythagoras" die Funktion pythagoras.Pythagoras importieren kannst (wenn die Datei "pythagoras.py" heisst)

Verfasst: Sonntag 20. November 2005, 19:50
von Python 47
sorry aber try und except kenn ich nicht.Wie kann man das lösen mit den sachen die ich kenn also mit meinem code

Verfasst: Sonntag 20. November 2005, 21:38
von mitsuhiko
Python Master 47 hat geschrieben:sorry aber try und except kenn ich nicht.Wie kann man das lösen mit den sachen die ich kenn also mit meinem code
try/except lernen :roll:

Verfasst: Montag 21. November 2005, 13:24
von Leonidas
blackbird hat geschrieben:try/except lernen :roll:
Ist wirklich nicht zu viel verlangt, da try/except wirklich ein Grundprinzip vieler Programmiersprachen ist. Das ist ja fast so als könnte man kein if ;)

Verfasst: Montag 21. November 2005, 14:28
von Python 47
@blackbird dein code funzt nicht.

Es muss so aussehen:

Code: Alles auswählen

import math

def pythagoras(a, b):
    try:
        return math.sqrt(a**2+b**2)
    except:
       if __name__ == '__main__':
          a = raw_input('a=')
          b = raw_input('b=')
    try:
        c = pythagoras(int(a), int(b))
        print c
    except ValueError:
        print 'Der Satz des Pytagoras funktioniert nur mit positiven Zahlen'
    except TypeError:
        print 'Der Satz des Pytagoras funktioniert nur mit Zahlen'
Das programm macht auch nichts es gibt keine a= oder b= auf den bildschirm aus und die funktion wird auch nicht automatisch aufgerufen!Das hilft mir auch nicht weiter!

Danke für die Hilfe!!!