Wurzel ziehen

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Python 47
User
Beiträge: 574
Registriert: Samstag 17. September 2005, 21:04

Wurzel ziehen

Beitragvon Python 47 » Sonntag 20. November 2005, 14:46

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

     
     
mfg

Thomas :-)
Benutzeravatar
Leonidas
Administrator
Beiträge: 16023
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Beitragvon Leonidas » Sonntag 20. November 2005, 14:52

raw_input("a= ") und math.sqrt() helfen dir weiter.
My god, it's full of CARs! | Leonidasvoice vs Modvoice
mawe
Python-Forum Veteran
Beiträge: 1209
Registriert: Montag 29. September 2003, 17:18
Wohnort: Purkersdorf (bei Wien [Austria])

Beitragvon mawe » Sonntag 20. November 2005, 14:54

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
Python 47
User
Beiträge: 574
Registriert: Samstag 17. September 2005, 21:04

Beitragvon Python 47 » Sonntag 20. November 2005, 15:09

@Leonidas ich kenne beide funktionen, weiß sie aber noch nicht richtig anzuwenden.


Wer kann mir weiterhelfen?
mfg



Thomas :-)
Benutzeravatar
Leonidas
Administrator
Beiträge: 16023
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Beitragvon Leonidas » Sonntag 20. November 2005, 15:16

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'
My god, it's full of CARs! | Leonidasvoice vs Modvoice
Gast

Beitragvon Gast » Sonntag 20. November 2005, 15:18

dir fehlt noch eine Funktion um deine Code abzurufen!!
Python 47
User
Beiträge: 574
Registriert: Samstag 17. September 2005, 21:04

Beitragvon Python 47 » Sonntag 20. November 2005, 15:48

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?
mfg



Thomas :-)
Benutzeravatar
Joghurt
User
Beiträge: 877
Registriert: Dienstag 15. Februar 2005, 15:07

Beitragvon Joghurt » Sonntag 20. November 2005, 16:20

Ähm?

Code: Alles auswählen

c = Pythagoras(a,b)
if c != None:
  print c
Python 47
User
Beiträge: 574
Registriert: Samstag 17. September 2005, 21:04

Beitragvon Python 47 » Sonntag 20. November 2005, 17:03

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?
mfg



Thomas :-)
Benutzeravatar
mitsuhiko
User
Beiträge: 1790
Registriert: Donnerstag 28. Oktober 2004, 16:33
Wohnort: Graz, Steiermark - Österreich
Kontaktdaten:

Beitragvon mitsuhiko » Sonntag 20. November 2005, 17:39

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 :)
Zuletzt geändert von mitsuhiko am Sonntag 20. November 2005, 17:44, insgesamt 2-mal geändert.
TUFKAB – the user formerly known as blackbird
Benutzeravatar
Joghurt
User
Beiträge: 877
Registriert: Dienstag 15. Februar 2005, 15:07

Beitragvon Joghurt » Sonntag 20. November 2005, 17:42

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)
Python 47
User
Beiträge: 574
Registriert: Samstag 17. September 2005, 21:04

Beitragvon Python 47 » Sonntag 20. November 2005, 19:50

sorry aber try und except kenn ich nicht.Wie kann man das lösen mit den sachen die ich kenn also mit meinem code
mfg



Thomas :-)
Benutzeravatar
mitsuhiko
User
Beiträge: 1790
Registriert: Donnerstag 28. Oktober 2004, 16:33
Wohnort: Graz, Steiermark - Österreich
Kontaktdaten:

Beitragvon mitsuhiko » Sonntag 20. November 2005, 21:38

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:
TUFKAB – the user formerly known as blackbird
Benutzeravatar
Leonidas
Administrator
Beiträge: 16023
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Beitragvon Leonidas » Montag 21. November 2005, 13:24

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 ;)
My god, it's full of CARs! | Leonidasvoice vs Modvoice
Python 47
User
Beiträge: 574
Registriert: Samstag 17. September 2005, 21:04

Beitragvon Python 47 » Montag 21. November 2005, 14:28

@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!!!
mfg



Thomas :-)

Wer ist online?

Mitglieder in diesem Forum: Bing [Bot], Google [Bot]