Python 3.1 Problem

Hallo,
ich hab vor kurzem erst mit Python angefangen und hab ein kleines programm geschrieben aber irgendwas stimmt nicht und ich bekomm es nicht raus!
Hier ist erst mal das Programm selber:
print(„Gib -a- ein um Pi zu addieren“)
print(„Gib -b- ein um Pi abzuziehen“)
print(„Gib -c- ein um von Pi abzuziehen“)
print(„Gib -d- ein um mit Pi zu multiplizieren“)
print(„Gib -e- ein um durch Pi zu teilen“)
print(„Gib -f- ein um Pi zu teilen“)
print(„Gib -g- ein um Pi zu potenzieren“)
print(„Gib -h- ein um mit Pi zu potenzieren“)
print(„Gib -i- ein um die Wurzel aus Pi zu erhalten“)
print(„Gib -j- ein um Pi auf 250.000 Stellen anzuzeigen“)

pi = 3.1415926…
PI = float(pi)

v = input(„Jetzt bitte den Buchstaben eingeben:“)

if v == a:
ic = input(„Jetz die Zahl eingeben zu der Pi addiert werden soll:“)
I = float(ic)
J = (I)+PI
print(„Das ist das Ergebnis:“,J)
elif v == b:
k = input(„Jetzt die Zahl eingeben von welcher Pi abgezogen werden soll:“)
K = float(k)
L = (K)-PI
print(„Das ist das Ergebnis:“,L)
elif v == C:
s = input(„Jetzt die Zahl eingeben die von Pi abgezogen werden soll:“)
S = float(s)
T = PI-(S)
print(„Das ist das Ergebnis:“,T)
elif v == d:
m = input(„Jetz die Zahl eingeben mit der Pi multipliziert werden soll:“)
M = float(m)
N = (M)*PI
print(„Das ist das Ergebnias:“,N)
elif v == e:
o = input(„Jetzt die Zahl eingeben die durch Pi geteilt werden soll:“)
O = float(o)
P = (O)/PI
print(„Das ist das Ergebnis:“,P)
elif v == f:
q = input(„Jetzt die Zahl eingeben, die Pi teilen soll:“)
Q = float(q)
R = PI/(Q)
print(„Das Ergebnis ist:“,R)
elif v == g:
u = input(„Jetzt die Zahl eingeben mit der Pi potenziert werden soll:“)
U = float(u)
V = PI**(U)
print(„Das Ergebnis ist:“,V)
elif v == h:
w = input(„Jetzt die Zahl eingebn die mit Pi potenziert werden soll:“)
W = float(w)
X = (W)**PI
print(„Das ist das Ergebnis:“,X)
elif v == i:
Y = PI**0.5
print(„Das ist das Ergebnis:“,Y)
elif v == j:
print(„Pi auf 250.000 Nachkommastellen ist:“,pi)
else:
print(„Falscher Buchstabe!“)

Und das ist die Fehlermeldung:
Traceback (most recent call last):
File"C:…-rechner.py", line 19, in
if v == a:
NameError: name ‚a‘ is not defined

Vielen Dank für eure Hilfe
patgo

Hi,

erstmal zu deiner Fehlermeldung. Das a ist nicht als Variable deklariert, und damit nicht im Namensraum vertreten. Richtig wäre
if v==‚a‘:

Python ist eine geniale Programmiersprache, die du auch nutzen solltest.
Schreib alle Buchstaben in eine Liste z.B.

l = [a,b,c,d,f]
if v in l:
 print(v)

Gruß

Sorry kleine Nachbesserung: l = [‚a‘,‚b‘,‚c‘,‚d‘] die Buchstaben müssen nachtürlich ein char sein.

Hi,
vielen vielen Dank
Du löst mein Problem in 5 min wo ich 2 Stunden dran gessesen bin

Vieleicht kanst dumir ja noch eine Fraage beantworten? und zwar:

Ich hab jetz mehrere python programme und ich will eins schreiben wo ich per eingabe ein programm öffnen kann.
Also so mein ich
l = [„p1“,„p2“,„p3“]
if z in l:
Print(v)
if z == „p1“:
open „programm1“

Da ich nicht weiss, welches Betriebssystem du benutzt, hier mal beide Varianten > Linux:

#!/usr/bin/python
print(„Hallo“)

Jetzt willst du dieses Programm z.B ausführen in einem anderen Programm.

import os

if v=='p1':
 os.system("./hallo.py")

Wenn du die Umgebungsvariable des PythonInterpreters richtig gesetzt hast, dann dürfte das auch unter Windows funktionieren. Natürlich musst du alle Programme im gleichen Ordner haben > Windows:

#hallo.py
print(„Hallo“)

ausführen in einem anderen Programm.

import os

if v=='p1':
 os.system("hallo.py")

hab aber irgendwo mal gelesen, man soll nicht os.system verwenden sondern os.popen, welches fast genauso funktioniert. Auch interessant für dich, wäre die Funktion exec mit der du, deinem Pythonprogramm eine Funktion übergeben kannst.

Hier mal ein gutes Onlinebook zum nachschlagen > http://openbook.galileocomputing.de/python/

Auch sehr zu empfehlen ist das Buch „Einführung in Python“, welches speziell dafür ausgelegt ist, dir die Kniffe dieser Sprache näher zu bringen. z.B Code in C oder Java, der 30 Zeilen lang ist, bekommst du in Python mit ca. 5 Zeile Code hin. Schau dir mal ListCompehension und lambda-funktionen an.

Gruß

1 Like

Hi,
DANKE! Für deine Antworten und die Unterstützung

Gruß
patgo