我从文件中读取一行,每行包含一组数字。我的问题是输入是从字符串行开始的,然后我需要将其处理为整数,从而将转换为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上运行,使用命令行进行编译。
python大神给出的解决方案
无效的语法来自-
self.input.value1=(int)word
在python中,强制转换与C / C++ / Java中的强制转换不同,而不是使用(datetype)variable
,而必须使用datatype(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)