Python错误:在字符串格式化期间并非所有参数都已转

时间:2016-10-17 19:09:58

标签: python python-3.x

def process_cars(text_file):
    total_cmpg = 0
    for line in text_file:
        if((line % 2) == 0):
            city_mpg = (line[52:54])
            print(city_mpg)
            city_mpg = int(city_mpg)
            total_cmpg += city_mpg
    print ("Total miles per gallon in the city:", total_cmpg)

if((line%2)== 0)中出现错误:我在其他问题上搜索了相同的错误,但没有一个可以解决问题。错误是:在字符串格式化期间并非所有参数都被转换。我想修改线的位置。例如,如果它是第三行,则为2%2。

1 个答案:

答案 0 :(得分:0)

def process_cars(text_file):
    total_cmpg = 0
    for file_line_number, line in enumerate(text_file):
        if((file_line_number % 2) == 0):
            city_mpg = (line[52:54])
            print(city_mpg)
            city_mpg = int(city_mpg)
            total_cmpg += city_mpg
    print ("Total miles per gallon in the city:", total_cmpg)

根据您的评论,您希望每x行数只执行if语句。试试我们上面的内容,因为我们正在使用enumerate()来保持对象中下一个的数量。在我们的例子中,它保留了行号的计数,同时仍然给出了我们的行。

file_line_number是当前的文件编号行,line是该行的内容。