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
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 :-)
-
mawe
- Python-Forum Veteran
- Beiträge: 1209
- Registriert: Montag 29. September 2003, 17:18
- Wohnort: Purkersdorf (bei Wien [Austria])
Sonntag 20. November 2005, 14:54
Hi!
Statt math.sqrt(x) kann man auch x**0.5 verwenden

Bei Deiner 2. Fassung versuch mal
Gruß, mawe
-
Python 47
- User
- Beiträge: 574
- Registriert: Samstag 17. September 2005, 21:04
Sonntag 20. November 2005, 15:09
@Leonidas ich kenne beide funktionen, weiß sie aber noch nicht richtig anzuwenden.
Wer kann mir weiterhelfen?
mfg
Thomas :-)
-
Leonidas
- Administrator
- Beiträge: 16024
- Registriert: Freitag 20. Juni 2003, 16:30
-
Kontaktdaten:
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
-
Python 47
- User
- Beiträge: 574
- Registriert: Samstag 17. September 2005, 21:04
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 :-)
-
Joghurt
- User
- Beiträge: 877
- Registriert: Dienstag 15. Februar 2005, 15:07
-
Python 47
- User
- Beiträge: 574
- Registriert: Samstag 17. September 2005, 21:04
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 :-)
-
mitsuhiko
- User
- Beiträge: 1790
- Registriert: Donnerstag 28. Oktober 2004, 16:33
- Wohnort: Graz, Steiermark - Österreich
-
Kontaktdaten:
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
-
Joghurt
- User
- Beiträge: 877
- Registriert: Dienstag 15. Februar 2005, 15:07
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
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 :-)
-
mitsuhiko
- User
- Beiträge: 1790
- Registriert: Donnerstag 28. Oktober 2004, 16:33
- Wohnort: Graz, Steiermark - Österreich
-
Kontaktdaten:
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

TUFKAB – the user formerly known as blackbird
-
Leonidas
- Administrator
- Beiträge: 16024
- Registriert: Freitag 20. Juni 2003, 16:30
-
Kontaktdaten:
Montag 21. November 2005, 13:24
blackbird hat geschrieben:try/except lernen

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
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 :-)