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

2024-06-16 09:22:14 发布

您现在位置:Python中文网/ 问答频道 /正文

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()

当我试图将intIncome转换为int(行分割会自动将其转换为字符串)时,我一直得到消息int object is not iterable。提前感谢您的帮助!你知道吗


Tags: informainlineopeninfileintstate
3条回答

如果你想得到每一行收入的总和,你可以构建一个列表并求和,或者保持一个连续的总和,比如:

totalIncome = 0

for i in range(intTotalLines):

        line = inFile.readline()

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

        totalIncome += int(intIncome)

print(totalIncome)

错误是使用参数Income调用sumIncome已经是整数了,所以只需打印它:

print(Income)
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()

我用示例编辑了您的代码,说明了如何命名变量,变量名不应使用大写,int_lines += 1int_lines = int_lines + 1的缩写。你知道吗

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

相关问题 更多 >