首页 > 解决方案 > 如何使用 eval() 和 kivy TextInput?

问题描述

我的 Python kivy 程序中有几个 TextInputs。我想要一个函数,可以将输入相乘、相除或相加,并将结果显示在不同的标签中。但是,如果输入例如是 40 和 60,则标签仅显示 4060 而不是 100。

我究竟做错了什么?

def numbers_submit(self):
    ti = self.ids.one_input.text
    fi = self.ids.two_input.text
    ei = self.ids.three_input.text

    fl = self.ids.result_label 

    fl.text = eval("ti + fi")

我也试过:

   fl.text = eval(str("ti + fi"))

标签: pythonkivykivy-language

解决方案


  • 使用函数将TextInput文本/字符串转换为整数int()
  • str()使用函数将结果从整数转换为字符串

片段

def numbers_submit(self):
    ti = int(self.ids.one_input.text)
    fi = int(self.ids.two_input.text)
    ei = self.ids.three_input.text

    fl = self.ids.result_label

    fl.text = str(eval('ti + fi'))

输出

结果:40 + 60 = 100


推荐阅读