Also, ich habe jetzt folgende Funktionen:
Code: Alles auswählen
def Schreiben(a,b):
config = configparser.RawConfigParser()
config.add_section('Programm-Settings')
config.set('Programm-Settings', 'Ausgabedatei', b)
config.set('Programm-Settings', 'Dezimalzahl', a)
with open('Programm-Einstellungen.cfg', 'a') as configfile:
config.write(configfile)
Code: Alles auswählen
def Lesen():
config = configparser.RawConfigParser()
config.read('Pogramm-Einstellungen.cfg')
global Dezimalzahl
Dezimalzahl = config.getint('Programm-Settings', 'Dezimalzahl')
global Ausgabedatei
Ausgabedatei = config.get('Programm-Settings', 'Ausgabedatei')
Nun soll folgende Funktion den Wert für die Genauigkeit verwenden:
Code: Alles auswählen
def KatheteBerechnen (): #Funktion berechnet Kathetenlaenge
#Variablen: b: Kathete, c: Hypotenuse, a: errechnete Kathete
Lesen()
if Dezimalzahl == -1:
Dezimalzahl = int(input ("Genauigkeit in Nachkommastellen: "))
if Dezimalzahl < 0:
print ("Die Nachkommastellenanzahl muss größer oder gleich 0 sein")
return
elif Dezimalzahl >100:
print ("maximal 100 Nachkommastellen")
return
b = Decimal(str(locale.atof(input ("Kathetenlaenge: "))))
if NullCheck (b):
return
c = Decimal(str(locale.atof(input ("Hypotenusenlaenge: "))))
if NullCheck (c):
return
if c <= b:
print ("Hypotenusenlaenge kleiner als Kathetelaenge, Abbruch")
return
a = ((c*c)-(b*b)).sqrt().quantize(getcontext().power(Decimal('10.0'), -1 * Dezimalzahl))
Leider bekomme ich dauernd:
UnboundLocalError: local variable 'Dezimalzahl' referenced before assignment
Nun meine Fragen:
a) was mache ich falsch bzw. wie müsste das erfolgreiche auslesen aussehen?
b) wie kann ich beim configparser default-variablen setzen? (und wie überprüfe ich dann später in der funktion auf die default-variable?)
c) Tipps von eurer Seite?
Das mit den exceptions bei der Eingabe von Daten hab ich jetzt noch nicht dazugeschrieben, war mir bisher noch zu viel Arbeit