ValueError:int()以10为底的无效文字-TextInput值

问题描述 投票:0回答:1

我最近开始学习Kivy,并且在处理在TextInput框中输入的文本/数字时遇到了奇怪的错误。

The Kivy Code看起来像这样:

BoxLayout:
        orientation: 'vertical'
        BoxLayout:
            orientation: 'horizontal'
            Label:
                text: 'No. of buttons:'
                markup: True
                color: 0, 0, 0, 1
            CustomTextInput:
                id: textinput_num
                max_characters: 2
                multiline: False
                input_filter: 'int'

相关的Python代码如下:

class DropDownScreen(Screen):
    def add_dd_values(self):
        dd_input = App.get_running_app().root.get_screen('dd_screen').ids.textinput_num.text
        print("TextInputBox: ", dd_input, "\n")
        print("Length: ",len(dd_input))
        print(int(dd_input)+1)

我参考了文本输入框的值,如下所示:

dd_input = App.get_running_app().root.get_screen('dd_screen').ids.textinput_num.text

这里,textinput_num是相关文本输入框的ID。我可以打印文本输入框的值,还可以检查字符串的长度。注意:我已使用input_filter:'int'语句在文本输入框中仅允许数字。我知道dd_input将接收一个字符串值。因此,我尝试将其转换为整数值并执行数字运算。

但是,出现以下错误:ValueError:int()以10为底的无效文字:

我在Google中查询过,看来这与正在处理的数据类型有关。

您能帮我了解这里出了什么问题吗?从文本输入框中访问和读取数值的正确方法是什么?

最奇怪的部分是,对于同一段代码,此错误本质上是间歇性的。有时它返回错误,有时却不。

python-3.x type-conversion kivy kivy-language
1个回答
0
投票

您提到错误是“间歇性的”。我可能是错的,但我认为这是正在发生的事情。当textinput字段为空白/空时,您将收到异常/错误。本质上,这意味着dd_input的值为null或它指向一个空字符串,该字符串不能转换为整数。因此,错误。

添加条件以处理异常并查看会发生什么:

if dd_input == '':
            dd_input="0"
© www.soinside.com 2019 - 2024. All rights reserved.