Ошибка 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().

→ Ссылка