Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/security/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 在字符串行被拆分后,是否将字符串转换为整数?_Python - Fatal编程技术网

Python 在字符串行被拆分后,是否将字符串转换为整数?

Python 在字符串行被拆分后,是否将字符串转换为整数?,python,Python,在尝试将intIncome转换为int时,我不断收到消息int对象不可编辑(行拆分会自动将其转换为字符串)。提前感谢您的帮助 您的错误是使用参数Income调用sum收入已经是一个整数,所以只需打印它: import math def main(): StrFileName = input('Enter a File') inFile = open(StrFileName, 'r') intLines = 0 for i in open(StrFileName

在尝试将
intIncome
转换为
int
时,我不断收到消息
int对象不可编辑(行拆分会自动将其转换为字符串)。提前感谢您的帮助

您的错误是使用参数
Income
调用
sum
<代码>收入
已经是一个整数,所以只需打印它:

import math

def main():
    StrFileName = input('Enter a File')
    inFile = open(StrFileName, 'r')
    intLines = 0

    for i in open(StrFileName, 'r'):
        intLines = intLines + 1

    intTotalLines = intLines
    intID = 0
    intAmt = 0
    intIncome = 0
    State = 0

    for i in range(intTotalLines):
        line = inFile.readline()
        intID, intAmt, intIncome, State = line.split()
        Line = [intID, intAmt, intIncome, State]
        Income = int(intIncome)
        print(sum(Income))

main()

如果您试图从每一行中获得收入的总和,您可以构建一个列表并将其相加,或者保持一个连续的总和,如:

print(Income)
我用变量命名的例子编辑了你的代码,你不应该使用大写的变量名,
int\u lines+=1
int\u lines=int\u lines+1
的缩写


我删除了一些未被使用的变量,但我只是想向您展示一些样式提示,使代码更具可读性,并与

保持一致。我还建议重写它,这样文件就不会一次打开两次。我真的不知道那样会发生什么。
totalIncome = 0

for i in range(intTotalLines):

        line = inFile.readline()

        intID, intAmt, intIncome, state = line.split()

        totalIncome += int(intIncome)

print(totalIncome)
def main():
    str_file_name = input("Enter a File")
    with open(str_file_name, 'r') as in_file: # use with to open your files as it closes them automatically
        int_lines = 0

        for i in open(str_file_name, 'r'):
            int_lines += 1
        int_total_lines = int_lines

        for i in range(int_total_lines):
            lines = in_file.readline()
            int_id, int_amt, int_income, state = lines.split()
            income = int(int_income)
            print(income)
main()