Damit das Ergebniss in der Konsole erkennbar wird, brauchst du kein sleep!Ich denke, du meinst, das das Programm sich nicht sofort beenden soll, wenn du es kompilierst und dann mit cmd aufrufst, dazu brauchst du:
import os
os.system('pause')
einfaches Progr. zur geometr. Berechnung: Hilfe, plz
-
- User
- Beiträge: 670
- Registriert: Sonntag 15. Januar 2006, 18:42
- Wohnort: Celle
- Kontaktdaten:
Ein einfaches
tuts auch.
Code: Alles auswählen
raw_input()
--- Heiko.
sry, ich hab die vorherigen einträge übersehen! ich werds morgen sofort einbauen, Danke!Danke, jetzt versteh ichs
Jetzt brauche ich nur noch sleep
MfG,
Craven
[code]q = 'q = %s; print q %% repr(q)'; print q % repr(q) [/code]
Hi,
Ich hab jetzt eine neue Version von dem script fertig:
MfG,
Craven
Ich hab jetzt eine neue Version von dem script fertig:
Code: Alles auswählen
ein = raw_input('---> ')
from math import pi
import os
if ein == "Zylinder": # steht für Zylinder
print """
Zylinder
"""
zhoehe = float(raw_input("Höhe "))
zradius = float(raw_input("Radius "))
zvolumen = zradius**2 * zhoehe * pi
# print "%d * %d = %d" % (zradius**2, zhoehe, zvolumen)
print zvolumen
elif ein == "Kegel": # steht für Kegel
print """
Kegel
"""
khoehe = float(raw_input("Höhe "))
kradius = float(raw_input("Radius "))
kvolumen = 1.0/3.0 * kradius**2 * khoehe * pi
# print "1/3 * %d * %d = %d" % (kradius**2, khoehe, kvolumen)
print kvolumen
elif ein == "Kugel": # steht für Kugel
print """
Kugel
"""
kuradius = float(raw_input("Radius "))
kuvolumen = 4.0/3.0 * kuradius**3 * pi
# print "4/3 * %d = %d" % (kuradius**2, kuvolumen)
print kuvolumen
else:
raise'Ein Fehler ist aufgetreten'
os.system('pause')
Craven
[code]q = 'q = %s; print q %% repr(q)'; print q % repr(q) [/code]
1.) Danke für den Hinweis mit raw_input, das hab ich übersehen
2.) Ich musste das script kürzen, da ich in der Originalfassung ellenlange Kommentare drinhatte
Danke für die Hilfe
MfG,
Craven
2.) Ich musste das script kürzen, da ich in der Originalfassung ellenlange Kommentare drinhatte
Danke für die Hilfe
MfG,
Craven
[code]q = 'q = %s; print q %% repr(q)'; print q % repr(q) [/code]
- jens
- Python-Forum Veteran
- Beiträge: 8502
- Registriert: Dienstag 10. August 2004, 09:40
- Wohnort: duisburg
- Kontaktdaten:
Was hälst du davon:
Ist zwar um einiges Aufwändiger, aber man kann es leichter mit neuen Funktionen erweitern...
Man könnte vielleicht auch die eigentlichen Formeln in die actions packen. Aber mir fällt spontan nur eine eval variante ein
Code: Alles auswählen
from math import pi
import os, inspect
# Zeigt die Formeln an
debug = False
#~ debug = True
def zylinder(h, r):
if debug:
print "%f**2 * %f = " % (r, h)
return r**2 * h * pi
def kegel(h, r):
if debug:
print "1/3 * %f**2 * %f = " % (r, h)
return 1.0/3.0 * r**2 * h * pi
def kugel(r):
if debug:
print r
print "4/3 * %f**3 = " % r
return 4.0/3.0 * r**3 * pi
# Übersetzungen für den Eingabeprompt
args_translation = {
"r": "Radius",
"h": "Höhe"
}
# Definiert, welche Aktionen es gibt
actions = [zylinder, kegel, kugel]
def print_menu():
"""
Erstellt ein Menü anhand der definierten Aktionen
"""
print "Bitte wähle aus:"
print
for no, action in enumerate(actions):
name = action.__name__
name = name.capitalize()
print no+1, name
print
numbers = range(len(actions))
numbers = [str(i+1) for i in numbers]
numbers = "/".join(numbers)
print "(%s)" % numbers,
def get_action():
"""
Liefert die Funktion anhand der Eingaben zurück
Wirft einen NameError, wenn sie nicht gefunden wurde
"""
# Auswahl durch den User
ein = raw_input("?")
for no, action in enumerate(actions):
if ein == str(no+1):
return action
raise NameError("Aktion unbekannt")
def print_function(action):
""" Aktuelle Funktionsnamen anzeigen """
name = action.__name__
name = name.capitalize()
print "\n%s" % name
print "-" * len(name)
print
def get_inputs(action):
"""
Eingaben für aktuelle Funktion machen
"""
# benötigten Werte für diese Aktion feststellen
function_args = inspect.getargspec(action)[0]
if debug: print function_args
# Eingabe der Werte
inputs = {}
for arg in function_args:
name = args_translation[arg] # richtiger Name
value = float(
raw_input("%s ? " % name)
)
inputs[arg] = value
if debug: print "inputs:", inputs
return inputs
def main():
"""
Hauptprogramm
"""
# Menü Anzeigen
print_menu()
# Funktion auswählen
try:
action = get_action()
except NameError, e:
print "Fehler:", e
return
# Funktionsnamen anzeigen
print_function(action)
# Eingaben machen
inputs = get_inputs(action)
# Funktion ausführen
volumen = action(**inputs)
print "Das Volumen ist:", volumen
if __name__ == "__main__":
while 1:
main()
ein = raw_input("\nNoch mal? (j/n)")
if ein[0].lower() != "j": break
print
Man könnte vielleicht auch die eigentlichen Formeln in die actions packen. Aber mir fällt spontan nur eine eval variante ein
Danke für die arbeit die du dir gemacht hast, aber jetzt bin ich an dem augenblich angelangt, an dem ich nichts mehr verstehe
Ich lerne python jetzt seit ca 4 wochen, aber das ist zu viel des guten
MfG,
Craven
Ich lerne python jetzt seit ca 4 wochen, aber das ist zu viel des guten
MfG,
Craven
[code]q = 'q = %s; print q %% repr(q)'; print q % repr(q) [/code]