ich habe mich nach langem hin und her dazu entschieden meine Frage doch einmal hier zu stellen. Mir kommt sie zu simpel vor, ich finde aber jetzt schon seit Stunden keine Lösung. Also, ich versuche einen Integer Wert vom Nutzer über ein Eingabefeld abzufragen, welcher dann durch das Programm auf seine Korrektheit überprüft wird und danach weiterverarbeitet werden soll. Da ich für Python noch am Anfang stehe ist es bis jetzt nicht mehr.
Das Problem stellt für mich folgende Fehlermeldung da:
ValueError: invalid literal for int() with base 10: ''
... welche bedeutet, das der int() welcher von mir gefordert wird nicht umgeändert werden kann da es sich um einen String ' ' handelt. Von anderen Sprachen weiß ich, dass es möglich ist einen String in einen Integer Wert zu ändern und auch für Python sollte es, meines Wissens nach, diese Funktion geben indem ich die int() Funktion verwende.
Ich frage den den Wert im unten stehenden Code extra noch einmal ab, da ich mir sicher bin einen Integer zu haben. Leider akzeptiert das Programm den Integer Wert aber nicht, was kann ich tun?
Hier mein Code:
Code: Alles auswählen
# -*- coding: iso-8859-1 -*-
from tkinter import *
from tkinter import messagebox
def senden_func():
noten = []
counter = 0
break_counter = 0
note = int(eingabefeld.get())
while counter != 11:
counter = counter + 1
if note != 1 and note != 2 and note != 3 and note != 4 and note != 5 and note != 6:
break_counter = break_counter + 1
print('Error: Das Notenspektrum 1 bis 6 wurde nicht erfüllt.')
break
else:
noten.append(int(eingabefeld.get()))
eingabefeld.delete(0, END)
if break_counter == 0:
summe = sum(noten)
d_schnitt = summe/11.0
text = "\
************************\n\
Note: " + str(d_schnitt) + "\n\
************************"
messagebox.showinfo(message = text, title = "Info")
fenster = Tk()
fenster.title('Notenberechnung')
title_label = Label(fenster, text = 'Bitte gib deine Noten in das unten \nstehende Feld, nacheinander ein.')
eingabefeld = Entry(fenster, bd = 5, width = 40)
abschicken_button = Button(fenster, text = 'Senden', command = senden_func)
title_label.pack()
eingabefeld.pack()
abschicken_button.pack()
fenster.mainloop()
Vielen Dank für eure Hilfe!