Как исправить недопустимый литерал для int () с базой 10: ''? - PullRequest
0 голосов
/ 08 июля 2019

Использование python3.7 и tkinter для создания графического интерфейса, где я беру ввод из 2 текстовых полей и использую математическую формулу, а затем экспортирую его.

Я просмотрел другие формы и попробовал то, что они предложили, и не смог найти, как это исправить. Я пробовал глобальное внутри и снаружи функции, устанавливая переменную перед функцией.

def retrieve_input():
    global InputValue
    global InputValue2
    global Delay
    InputValue=tasks.get()
    InputValue2=proxies.get()
    print(InputValue)
    print(InputValue2)
    Delay=3500/int(InputValue)*int(InputValue2)
    print(Delay)
retrieve_input()
Label (window, width=12, text=Delay,bg="white",fg="Pink", font="none 22 bold") .grid(row=5, column=0,sticky=W)

Ошибка:

  File ", line 29, in retrieve_input
    Delay=3500/int(InputValue)*int(InputValue2)
ValueError: invalid literal for int() with base 10: ''

1 Ответ

1 голос
/ 08 июля 2019

Это означает, что вы передаете пустую строку конструктору класса int. Вы эффективно звоните int(''). Похоже, либо tasks.get(), либо proxies.get() возвращают пустую строку.

Вкратце: не передавайте пустую строку в int ().

Что касается оставленного вами комментария:

try:
    Delay=3500/int(InputValue)*int(InputValue2)
except ValueError:
    pass
    #Handle a case in which the input is ''
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...