我从文件中读取一行,每行包含一组特定的数字。我的问题是输入来自字符串行,然后我需要将其处理为整数,将转换为 usually suggested 。尽管我检查了有关此问题的上一篇文章,但也许因为我使用结构和拆分可能是转换无法正常工作的原因。
这里弹出这个错误:
TypeError: not all arguments converted during string formatting
SyntaxError: invalid syntax
这是我迄今为止所做的代码的快照:
class Data:
value1 = 0
max = 10
class Process:
value = None
def __init__(self):
self.input = Data()
def __del__(self):
self.input
def getValue(self,line):
counter=0
for word in line.split():
if counter == 0:
self.input.value1=(int)word
for number in self.input.max:
if (number % self.input.value1 ==0):
print(number)
def readingFile(self):
file = open(filename, "r")
for line in file:
self.getValue(line)
有什么建议可能会丢失吗?我在 Linux Python 3 上运行,使用命令行进行编译。
最佳答案
无效语法来自 -
self.input.value1=(int)word
在 python 中,转换与 C/C++/Java 中的转换不同,您必须使用 datatype(variable)
,而不是使用 (datetype)variable
,尽管这仅适用于原始数据类型。对于其他数据类型,您不需要转换,因为 python 是一种动态类型语言。
你应该使用 -
self.input.value1 = int(word)
编辑:
对于OP收到的新错误 -
{{ for number in self.input.max: }} >> TypeError: 'int' object is not iterable.
您无法迭代 int
对象,正如错误所示,对我来说,它看起来像 self.input.value1
和 self.input。 max
是单个整数,所以你可能想要这样做 -
if self.input.max % self.input.value1 == 0:
print(self.input.max)
关于python - 将字符串拆分为整数时出现类型错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30908567/