ich hab hier ein kleines Problem und find meinen Fehler leider nicht und bräuchte Unterstützung, der nachfolgende Quelltext ist nur ein Test für ein größeres Projekt, deswegen nicht auf Sinnigkeit achten, dass Programm an sich ist noch sehr "dumm".
Mein Problem ist folgendes, nach der Umwandlung von .py zu .exe verschluckt mir mein Programm die Funktion Output(name_value), alles davor wird richtig implementiert und ausgegeben. Leider versteh ich nicht warum es mir einfach aufhört ab der Stelle wo eben Output(...) aufgerufen wird, hat eventuell jemand eine Idee was mein Problem ist?
Code: Alles auswählen
class Stack:
def __init__(self):
self.elements = []
def push(self, data):
self.elements.append(data)
return data
def pop(self):
return self.elements.pop()
def peek(self):
return self.elements[-1]
def is_empty(self):
return len(self.elements) == 0
# Testfunktion ob wirklich gespeichert wird oder eben nicht muss man Testen!!
def Test():
# Rückgabewert als Boolsche Zahl
zero_flag = stack.is_empty()
# Ausgabe ob Stack True oder False ist!
print(stack.is_empty(), "\n")
# Vergleich der Boolschen Zahl
if zero_flag == True:
name_1 = int(input("Geben Sie eine Zahl ein[0]: "))
name_2 = int(input("Geben Sie eine Zahl ein[1]: "))
name_3 = int(input("Geben Sie eine Zahl ein[2]: "))
name_4 = int(input("Geben Sie eine Zahl ein[3]: "))
name_5 = int(input("Geben Sie eine Zahl ein[4]: "))
stack.push(name_1)
stack.push(name_2)
stack.push(name_3)
stack.push(name_4)
stack.push(name_5)
name_value = []
# 0
# obersteelemente wird zurückgegeben
name = stack.peek()
name_value.append(name)
stack.pop()
# 1
name = stack.peek()
name_value.append(name)
stack.pop()
# 2
name = stack.peek()
name_value.append(name)
stack.pop()
# 3
name = stack.peek()
name_value.append(name)
stack.pop()
# 4
name = stack.peek()
name_value.append(name)
stack.pop()
elif zero_flag == False:
print("Stack ist bereits beschrieben und gespeichert")
print("Stackposition[0]: ", name_value[0])
print("Stackposition[1]: ", name_value[1])
print("Stackposition[2]: ", name_value[2])
print("Stackposition[3]: ", name_value[3])
print("Stackposition[4]: ", name_value[4])
# Aufruf der Ausgabefunktion
Output(name_value)
def Output(name_value):
print("Stackposition[0]: ", name_value[0])
print("Stackposition[1]: ", name_value[1])
print("Stackposition[2]: ", name_value[2])
print("Stackposition[3]: ", name_value[3])
print("Stackposition[4]: ", name_value[4])
if __name__ == '__main__':
#Aufruf der Klasse?
stack = Stack()
Test()
Martin