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.
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:
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
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?
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?
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.
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)
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!
#!/usr/bin/python
import math
def pythagoras(a, b):
try:
return math.sqrt(a**2+b**2)
except:
return False
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'
Du hast die zeilen nicht richtig eingerueckt, das programm funktioniert so.
Nur wuerde ich math nicht importieren, sondern die Wurzel anders ziehen:
meinst du mich?Ich habe richtig eingerückt.Blackbird hat falsch eingerückt und ha anstatt == nur = geschrieben.Aber das passiert jedem mal.
Also das bringt mich trotzdem nicht weiter.Wie schaffe ich es das die werte die ich durch raw input eingebe an die funktion weiter geletitet werden und diese automatisch ausgeführt wird und mir c ausgibt???
Python Master 47 hat geschrieben:meinst du mich?Ich habe richtig eingerückt.
Nein, hast du nicht. if __name__ == '__main__': einzurücken ist von programmablauf doch völlig sinnlos. Ist das nicht erkennbar?
Python Master 47 hat geschrieben:Also das bringt mich trotzdem nicht weiter.Wie schaffe ich es das die werte die ich durch raw input eingebe an die funktion weiter geletitet werden und diese automatisch ausgeführt wird und mir c ausgibt???
Joe, könntest du dich registieren? Ich habe von dir schon viele gute Beiträge gelesen und wir (PythonDe-Krisenstab) überlegen, das Gast-Posten zu deaktivieren
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Python Master 47 hat geschrieben:Wie schaffe ich es das die werte die ich durch raw input eingebe an die funktion weiter geletitet werden und diese automatisch ausgeführt wird und mir c ausgibt???