ich bin neu in Python und neu hier, also hallo =)
Ich komme aber gleich zum Punkt: Ich möchte einen Taschenrechner programmieren, glaube aber nicht, dass der Thread in das wissenschaftliche Forum gehört, da es sich eher um Schwierigkeiten mit der Python Syntax handelt. Es ist sicher nichts, was nicht lösbar ist.
An einer Stelle sollen Logarithmen berechnet werden. Anstatt vorher auswählen, welche Basis man nimmt, ob es sich also um log, lg, ln, ... handelt, möchte ich die Eingabe frei gestalten. Das heißt, es soll eine Zahl eingegeben werden. Um bei Fehleingaben nicht abzubrechen, verwende ich try, sodass man eine Meldung erhält "Bitte eine Zahl eingeben Blabla", wenn der input nicht float ist. Es soll aber Ausnahmen, z. B. e als Eingabe geben, so dass der eingegebenen Zahl dann der Wert math.exp(1) zugewiesen wird. Ich bekomme aber die untenstehende Fehlermeldung. Habt ihr eine Idee?
Danke schon mal für eure Zeit.
Das funktioniert (ohne die e-Ausnahme):
Code: Alles auswählen
import math
print('log a (b) [Log a zur Basis b]')
while True:
try:
a = float(input('a = '))
break
except ValueError:
print('Zahl, bitte.')
while True:
try:
b = float(input('Basis = '))
break
except ValueError:
print('Zahl, bitte.')
print(math.log(a,b))
Code: Alles auswählen
while True:
try:
b = float(input('Basis = '))
break
except ValueError:
if b == e:
b = math.exp(1)
else:
print('Zahl, bitte.')
Code: Alles auswählen
Traceback (most recent call last):
File "/Users/fil3000/PycharmProjects/python3_buch/2_while/Rechner 2.0.py", line 13, in <module>
b = float(input('Basis = '))
ValueError: could not convert string to float: 'e'
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/Users/fil3000/PycharmProjects/python3_buch/2_while/Rechner 2.0.py", line 16, in <module>
if b == e:
NameError: name 'b' is not defined