问题描述
因此,我正在尝试创建一个函数来检查用户是否输入了str内容,它将打印出一条错误消息,内容为print("You can only use a number ranging from 1 - 4,setting minimum_offer to 1.")
During handling of the above exception,another exception occurred:
Traceback (most recent call last):
File "C:\Program Files\python38\lib\tkinter\__init__.py",line 1883,in __call__
return self.func(*args)
File "d:/Python Code stuff I did/print.py",line 218,in <lambda>
button = Button(root,text="Change Config",width=20,height=3,bg="#0f0f0f",fg="#ffffff",command=lambda:[do_it(),do_it1(),do_it2(),do_it3(),do_the_it(),do_the_it1()])
File "d:/Python Code stuff I did/print.py",line 42,in do_it
userInput = number.get()
File "C:\Program Files\python38\lib\tkinter\__init__.py",line 537,in get
return int(self._tk.getdouble(value))
_tkinter.TclError: expected floating-point number but got "wa"
number_1 = StringVar()
def do_the_it():
userinput4 = number_1.get()
try:
int(userinput4)
updater.read('settings.ini')
updater['Trading Settings']['minimum_offer'].value = number_1.get()
updater.update_file()
except Exception as error:
print("You can only use a number ranging from 1 - 4,setting minimum_offer to 1.")
updater.read('settings.ini')
updater['Trading Settings']['minimum_offer'].value = 1
updater.update_file()
updater.read('settings.ini')
updater['Trading Settings']['maximum_offer'].value = number_2.get()
updater.update_file()
a = updater['Trading Settings']['minimum_offer'].value
if int(number_1.get()) > 4:
print("Number can only exceed to 4")
updater.read('settings.ini')
updater['Trading Settings']['minimum_offer'].value = 1
updater.update_file()
解决方法
对于错误处理,您将必须检查是否实际上可以转换为int
。您可以使用一个try-block。
accept = True
try:
tmp = int(number_1.get())
except:
accept = False
然后,如果accept为true,则只能执行第二部分(if块):
if accept:
if int(number_1.get()) > 4:
### Rest of your code
else:
print("Enter a number you joker")
,
您应将number_1.get()
放在try
块中:
def do_the_it():
try:
val = int(number_1.get())
if not 1 <= val <= 4:
raise ValueError
except (ValueError,TclError):
print('You can only use a number ranging from 1 - 4,setting minimum_offer to 1.')
val = 1
updater.read('settings.ini')
updater['Trading Settings']['minimum_offer'].value = val
updater.update_file()