Ошибка invalid literal for int() with base 10
Написал код, в котором у меня возникла ошибка:
ValueError: invalid literal for int() with base 10: monthly_salary = int(salary_etr.get())
from tkinter import *
# setting up and creating window
tk = Tk()
tk.geometry('700x600+600+200')
tk.resizable(False, False)
tk.title('salary calculator 1.0.0')
# something that make proces of codding easier
# adding widgets and making GUI to salary
title = Label(
text=' salary calculator ',
bg='black',
fg='white',
font='Arial 25 bold')
salary_etr = Entry(tk, bg="silver", width=25)
salary_lbl = Label(text='write here your monthly salary',font='Arial 10 bold')
salary_fr = Frame(tk, bg='Gainsboro', padx=2, pady=2)
monthly_salary = int(salary_etr.get())
daily_salary = monthly_salary // 30
yearly_salary = monthly_salary * 12
# place widgets on windows
title.place(relx=0.5, rely=0.035, anchor=CENTER)
salary_fr.place()
salary_etr.place(relx=0.17, rely=0.3, anchor=CENTER)
salary_lbl.place(relx=0.2, rely=0.25, anchor=CENTER)
tk.mainloop()
Ответы (2 шт):
Автор решения: Николаенко Евгений
→ Ссылка
Это происходит потому, что функция int() пытается преобразовать пустую строку в целое число, что невозможно. Для решения данной ошибки необходимо убедиться, что значение, которое передается функции int(), может быть преобразовано в число. Если это строка, то она должна содержать только числовые символы, если это другой тип данных, он должен быть преобразуем в число.
Возможно стоит исправить код так:
monthly_salary = int(salary_etr.get(10))
Нашел также в справочнике Python-а такой пример:
data = ''
if data.isdigit():
number = int(data)
else:
print('Введенные данные не могут быть преобразованы в число')
Автор решения: Ivan Manakov
→ Ссылка
Там надо было сделать привязку к кнопке, и вместо int()
вставить float()
.