und zwar habe ich bei meinem kleinen Projekt das Problem, dass mir die Funktion 'unit()' nicht die Einheit ausgibt, sondern anstelle dessen 'None' ausgibt.
Nach längeren rumprobieren weiß ich nicht wie ich das Problem beheben kann.
Übrigens bin ich gegenüber jeglicher Kritik, Verbesserungsvorschlägen und Anregungen offen.
Mfg
Reboot21
Code: Alles auswählen
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import sys, os, math
global ERRORMSG_ONELEFT, ERRORMSG_ONELEFT2
UNITS = ["mm", "cm", "dm", "m", "km", "ha"]
ERRORMSG_ONELEFT = "Es sollte nur ein Wert fehlen!"
ERRORMSG_ONELEFT2 = "Es kann nur ein fehlender Wert errechnet werden!"
#####################################################################
## Allgemeine - Funktionen ##
#####################################################################
def unit(n):
for i in range(0, len(UNITS)): # Von 0 bis zur Länge der Einheit-Liste ('Items')
if eingabe == UNITS[i]: # Falls 'eingabe' = das i'te Objekt in UNITS
if n == 1: # Falls potenz = 1
return UNITS[i]
elif n == 2: # Falls potenz = 2
return UNITS[i] + "²"
elif n == 3: # Falls potenz = 3
return UNITS[i] + "³"
def cls():
os.system('cls' if os.name=='nt' else 'clear')
def newLine(n):
for n in range(1, n+1):
print("")
###############################################################
## Menü - Funktionen ##
###############################################################
def menu(): # Hauptmenü
while 1:
print("Verfügbare Programme:\n\n"
"[1] Dreiecksberechnung\n"
"[2] Viereckberechnung\n"
"[3] Vieleckberechnung\n"
"[4] Kreisberechnung\n"
"[5] Körperberechnung\n\n"
"'q' eingeben, um das Programm zu beenden.\n")
eingabe = raw_input("Eingabe: ")
if eingabe == "q":
cls()
exit(0)
elif eingabe == "1":
cls()
dreieck()
break
elif eingabe == "2":
cls()
dreieck()
break
elif eingabe == "3":
cls()
dreieck()
break
elif eingabe == "4":
cls()
dreieck()
break
elif eingabe == "5":
cls()
dreieck()
break
else:
cls()
print("Der Befehl '%s' wurde nicht gefunden. bitte erneut eingeben.") % eingabe
newLine(1)
########################################################################
########################################################################
def dreieck(): # Dreiecksfunktion - Menü
while 1:
print("Verfügbare Dreiecksfunktionen:\n\n"
"[1] allgemeines Dreieck (Oberfläche)\n"
"[2] allgemeines Dreieck (Umfang)\n"
"[3] rechtwinkliges Dreieck (Seitenberechnung)\n\n"
"'m' eingeben um in das Hauptmenü zu kommen.\n"
"'q' eingeben, um das Programm zu beenden.\n")
eingabe = raw_input("Eingabe: ")
if eingabe == "q":
cls()
exit(0)
elif eingabe == "m":
cls()
menu()
elif eingabe == "1":
cls()
dreieck1(1)
break
elif eingabe == "2":
cls()
dreieck1(2)
break
elif eingabe == "3":
cls()
dreieck1(3)
break
else:
cls()
print("Der Befehl '%s' wurde nicht gefunden. bitte erneut eingeben.") % eingabe
newLine(1)
###################################################################
## Dreiecks - Funktionen ##
###################################################################
"""
mode 1 = allgemeines Dreieck (Oberfläche)
mode 2 = allgemeines Dreieck (Umfang)
mode 3 = rechtwinkliges Dreieck (Seitenberechnung)
"""
def dreieck1(mode, errormsg = "", einheit = ""):
########################################################################
########################################################################
if mode == 1: # Allgemeines Dreieck (Oberfläche)
while 1:
if errormsg == "":
newLine(0)
else:
print(errormsg + "\n")
eingabe = raw_input("Gebe bitte die benötigte Einheit ein:\n"
"Möglich: " + str(UNITS[0:len(UNITS)]) + "\n\n"
"Einheit: ")
cls()
A = int(raw_input("Gebe bitte die Oberfläche an:\n\nA = "))
cls()
g = int(raw_input("Gebe bitte die Grundseite an:\n\ng = "))
cls()
h = int(raw_input("Gebe bitte die Höhe an:\n\nh = "))
cls()
if g == 0 or g == 0.0: # Falls 'g' gesucht
if A == 0 or A == 0.0 or h == 0 or h == 0.0:
cls()
dreieck1(1, ERRORMSG_ONELEFT2) # 'dreieck1'-Funktion in 'modus 1' starten
break
else:
g = 2*A/h
cls()
print("g = " + str(g) + " " + str(unit(1)))
newLine(1)
dreieck()
break
elif A == 0 or A == 0.0: # Falls 'A' gesucht
if g == 0 or g == 0.0 or h == 0 or h == 0.0:
cls()
dreieck1(1, ERRORMSG_ONELEFT2)
break
else:
A = g*h/2
cls()
einheit = unit(2)
print("A = " + str(A) + " " + str(unit(2)))
newLine(1)
dreieck()
break
elif h == 0 or h == 0.0: # Falls 'h' gesucht
if A == 0 or A == 0.0 or g == 0 or g == 0.0:
cls()
dreieck1(1, ERRORMSG_ONELEFT2)
break
else:
h = 2*A/g
cls()
einheit = unit(1)
print("h = " + str(h) + " " + str(unit(1)))
newLine(1)
dreieck()
break
else:
cls()
dreieck1(1, ERRORMSG_ONELEFT)
break
cls()
########################################################################
########################################################################
elif mode == 2: # Allgemeines Dreieck (Umfang)
while 1:
if errormsg == "":
newLine(0)
else:
print(errormsg + "\n")
u = int(raw_input("Gebe bitte den Umfang an:\n\nu = "))
cls()
a = int(raw_input("Gebe bitte die Seite 'a' an:\n\na = "))
cls()
b = int(raw_input("Gebe bitte die Seite 'b' an:\n\nb = "))
cls()
c = int(raw_input("Gebe bitte die Seite 'c' an:\n\nc = "))
cls()
if u == 0 or u == 0.0: # Falls u gesucht
if a == 0 or a == 0.0 or b == 0 or b == 0.0 or c == 0 or c == 0.0:
cls()
dreieck1(2, ERRORMSG_ONELEFT2)
break
else:
u = a + b + c
cls()
print("u = " + str(u))
newLine(1)
dreieck()
break
elif a == 0 or a == 0.0: # Falls a gesucht
if u == 0 or u == 0.0 or b == 0 or b == 0.0 or c == 0 or c == 0.0:
cls()
dreieck1(2, ERRORMSG_ONELEFT2)
break
else:
a = u - b - c
cls()
print("a = " + str(a))
newLine(1)
dreieck()
break
elif b == 0 or b == 0.0: # Falls b gesucht
if u == 0 or u == 0.0 or a == 0 or a == 0.0 or c == 0 or c == 0.0:
cls()
dreieck1(2, ERRORMSG_ONELEFT2)
break
else:
b = u - a - c
cls()
print("b = " + str(b))
newLine(1)
dreieck()
break
elif c == 0 or c == 0.0: # Falls c gesucht
if u == 0 or u == 0.0 or b == 0 or b == 0.0 or a == 0 or a == 0.0:
cls()
dreieck1(2, ERRORMSG_ONELEFT2)
break
else:
c = a + b + c
cls()
print("c = " + str(c))
newLine(1)
dreieck()
break
else:
cls()
dreieck1(1, ERRORMSG_ONELEFT)
break
cls()
########################################################################
########################################################################
elif mode == 3: # rechtwinkliges Dreieck (Seitenberechnung)
while 1:
if errormsg == "":
newLine(0)
else:
print(errormsg + "\n")
c = int(raw_input("Gebe bitte die Seite 'c' an:\n\nc = "))
cls()
a = int(raw_input("Gebe bitte die Seite 'a' an:\n\na = "))
cls()
b = int(raw_input("Gebe bitte die Seite 'b' an:\n\nb = "))
cls()
if c == 0 or c == 0.0: # Falls c² gesucht
if a == 0 or a == 0.0 or b == 0 or b == 0.0:
cls()
dreieck1(2, ERRORMSG_ONELEFT2)
break
else:
c = math.sqrt(a^2 + b^2)
cls()
print("c = " + str(c))
newLine(1)
dreieck()
break
if a == 0 or a == 0.0: # Falls a² gesucht
if b == 0 or b == 0.0 or c == 0 or c == 0.0:
cls()
dreieck1(2, ERRORMSG_ONELEFT2)
break
else:
a = math.sqrt(c^2 - b^2)
cls()
print("b = " + str(b))
newLine(1)
dreieck()
break
if b == 0 or b == 0.0: # Falls b² gesucht
if a == 0 or a == 0.0 or c == 0 or c == 0.0:
cls()
dreieck1(2, ERRORMSG_ONELEFT2)
break
else:
b = math.sqrt(c^2 - a^2)
cls()
print("b = " + str(b))
newLine(1)
dreieck()
break
else:
cls()
dreieck1(1, ERRORMSG_ONELEFT)
break
cls()
########################################################################
########################################################################
if __name__ == "__main__":
menu ()