python - 将字符串拆分为整数时出现类型错误

标签 python string split integer type-conversion

我从文件中读取一行,每行包含一组特定的数字。我的问题是输入来自字符串行,然后我需要将其处理为整数,将转换为 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.value1self.input。 max 是单个整数,所以你可能想要这样做 -

if self.input.max % self.input.value1 == 0:
    print(self.input.max)

关于python - 将字符串拆分为整数时出现类型错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30908567/

相关文章:

python - 如何为 Tornado IOStream 设置超时?

java - 从字符串形成回文

java - 只有 3 个特定单词的字符串匹配

c# - 使用字符串实习来减少网络客户端的内存使用

javascript - 在javascript中拆分点或逗号

java - 使用 split() 拆分一个没有任何分隔的数字 - java

python - 环路和 fork 图

python - 如何在 anaconda 上为 python 安装 tesseract

Python - 将字符串拆分为参数

python - 使用扩展字段自定义 Django 用户 TableView