Seite 1 von 1

Python Konsole Leeren Funktioniert nicht!

Verfasst: Mittwoch 22. Februar 2012, 16:02
von Xenotack
Hallo ihr Pythoner! Ich habe einen Calculator unter Linux Xubuntu 11.10 Geschrieben, ich verwende Python 2.7 und habe folgenden Code:

Code: Alles auswählen

import os

print("Calculator\n")

print("1. Plus")
print("2. Minus")
print("3. Mal")
print("4. Geteilt\n")

def ClearScreen():
	try:
		os.system("cls")	#Windows
		os.system("clear")	#Linux
	except:
		print("Da ist was wohl etwas Schief Gelaufen!")

def plus():
	ClearScreen()
	p1 = float(raw_input("\n\nZahl 1: > "))
	p2 = float(raw_input("Zahl 2: > "))
	answer = p1 + p2
	print(answer)

def minus():
	ClearScreen()
	m1 = float(raw_input("\n\nZahl 1: > "))
	m2 = float(raw_input("Zahl 2: > "))
	answer = m1 - m2
	print(answer)

def times():
	ClearScreen()
	t1 = float(raw_input("\n\nZahl 1: > "))
	t2 = float(raw_input("Zahl 2: > "))
	answer = t1 * t2
	print(answer)	

def divide():
	ClearScreen()
	d1 = float(raw_input("\n\nZahl 1: > "))
	d2 = float(raw_input("Zahl 2: > "))
	answer = d1 / d2 
	print(answer)

eingabe = int(raw_input("> "))

if (eingabe == 1):
	plus()
elif(eingabe == 2):
	minus()
elif(eingabe == 3):
	times()
elif(eingabe == 4):
	divide()
else:
	print("Falsche Eingabe")

Was mache ich hier Falsch!?

Re: Python Konsole Leeren Funktioniert nicht!

Verfasst: Mittwoch 22. Februar 2012, 16:08
von EyDu
Hallo.

Deine Fehlerbeschreibung ist doch etwas dürftig. Gibt es einen Fehler und wenn ja, wie lautet dieser und welchen Traceback erhälst du. Wenn nicht, was ist das Problem? Was für eine Eingabe machst du, was erwartest du für ein Ergebnis und was passiert tatsächlich?

Sebastian

Re: Python Konsole Leeren Funktioniert nicht!

Verfasst: Mittwoch 22. Februar 2012, 16:12
von Xenotack
Ich erwarte nach dem ich 1, 2, 3 oder 4 gedrückt habe das sich der Konsolen Inhalt Löscht.

Re: Python Konsole Leeren Funktioniert nicht!

Verfasst: Mittwoch 22. Februar 2012, 16:16
von /me
Xenotack hat geschrieben:Ich erwarte nach dem ich 1, 2, 3 oder 4 gedrückt habe das sich der Konsolen Inhalt Löscht.
Und was passiert stattdessen?

Du hast übrigens ziemlich viel Code doppelt. Das Eingeben der Zahlen solltest du an einer einzigen Stelle sammeln.

Re: Python Konsole Leeren Funktioniert nicht!

Verfasst: Mittwoch 22. Februar 2012, 16:18
von Xenotack
Es passiert Nichts!

Und... mag sein ich bin Anfänger^^ Kannst du mir den Code mal so anpassen damit ich mal seh wie das eigentlich aussehen könnte?^^

Re: Python Konsole Leeren Funktioniert nicht!

Verfasst: Mittwoch 22. Februar 2012, 16:43
von Xenotack
...

Re: Python Konsole Leeren Funktioniert nicht!

Verfasst: Mittwoch 22. Februar 2012, 16:47
von /me
Xenotack hat geschrieben:Kannst du mir den Code mal so anpassen damit ich mal seh wie das eigentlich aussehen könnte?
Ein möglicher Ansatz

Code: Alles auswählen

def get_float(prompt):
    while True:
        try:
            number = float(raw_input(prompt))
            return number
        except ValueError:
            print('Bitte geben Sie eine Zahl ein.')


def get_numbers():
    return get_float('\n\nZahl 1: > '), get_float('Zahl 2: > ')


def print_menu(calculations):
    print("Calculator\n")
    for key in sorted(calculations.keys()):
        print('{}. {}'.format(key, calculations[key][0]))


def plus(p1, p2):
    return p1 + p2


def minus(m1, m2):
    return m1 - m2


def times(t1, t2):
    return t1 * t2


def divide(d1, d2):
    return d1 / d2


calculations = {
    1: ('Plus', plus),
    2: ('Minus', minus),
    3: ('Mal', times),
    4: ('Geteilt', divide)
}

print_menu(calculations)
eingabe = int(raw_input('> '))

if eingabe in calculations:
    number1, number2 = get_numbers()
    result = calculations[eingabe][1](number1, number2)
    print(result)
else:
    print("Falsche Eingabe")
Natürlich fehlen noch ein paar Dinge wie zum Beispiel das Abfangen eines möglichen ZeroDivisionError.

Man braucht auch die Berechnungen nicht selber definieren wenn man das operator-Modul verwendet. Das wollte ich jetzt allerdings nicht auch noch einbauen damit du deinen Code noch einigermaßen wiedererkennst.

Re: Python Konsole Leeren Funktioniert nicht!

Verfasst: Mittwoch 22. Februar 2012, 16:53
von Xenotack
Könntest du Erklären was, was da macht? ... :oops:

Re: Python Konsole Leeren Funktioniert nicht!

Verfasst: Mittwoch 22. Februar 2012, 16:58
von webspider
Wo hakt es denn genau beim Verständnis?