我想在我的程序中接收来自用户的数字形式的数据,但我不知道为什么它会得到一个错误
self.InputTotal = QtWidgets.QLineEdit(Form)
self.InputTotal.setGeometry(QtCore.QRect(60, 20, 141, 31))
self.InputTotal.setObjectName("InputTotal")
chkinput = self.InputTotal.text()
只需要chkinput数字
if int(chkinput) == 0:
ranger = 1000
else:
ranger = chkinput
for i in range(ranger):
self.btn_eth.clicked.connect(self.Generator)
您面临的问题是,当您运行if int(chkinput) == 0
时,它所做的只是检查强制转换为整数的chkinput
变量是否等于零。它实际上并没有将chkinput
值转换为整数。
为此,您需要将转换后的值分配回变量名,如:chkinput = int(chkinput)
。
因此,当前当您的chkinput
不等于0时,您正在为else
子句中的ranger
变量分配一个字符串值,当您尝试将其用作范围时,该值将引发错误。
您还应该添加一些额外的错误检查,这样您就不会遇到更多的问题。例如,您可以检查文本是否为空字符串,然后使用.isdigit()
方法检查内容是否为数字,如果返回true,则您知道使用int
构造函数是安全的,而不会引发错误。
chkinput = self.InputTotal.text()
if len(chkinput) > 0 and chkinput.strip().isdigit():
chkinput = int(chkinput)
if chkinput == 0:
ranger = 1000
else:
ranger = chkinput
for i in range(ranger):
self.btn_eth.clicked.connect(self.Generator)