我正在使用具有以下格式的多行数据的文件:
Niger WB_LI 37 Africa 2000
第一列是国名,第二列是收入水平,第三列是接种疫苗的人的百分比,第五列是年份。我试图找出最大值。给用户一年和收入水平的最小百分比。我也试图在文件中第一次找到这两个值出现的行。到目前为止我编写的代码给出了正确的最小值和最大值,但没有给出第一次出现的行。例如,如果有一堆零,我应该能够打印出第一个具有前0%的国家,而不是最后一个具有0%的国家。我的代码是:
#looping through each line
for line in input_file:
#checking for user input(income level and year) in each line
if 'WB_LI' in line and year in line:
#printing lines that matches user input
print(line)
total+=int(line[58:61])
count_instance+=1
if int(line[58:61])>int(max_value):
max_value=(line[58:61])
if max_value in line:
max_line=line
if int(line[58:61])<int(min_value):
min_value=(line[58:61])
if min_value in line:
min_line=line
如果有人能给我一些建议来修复我的代码,我真的很感激。感谢。
注意:我不允许使用列表,字典或元组。我只有一个文件,我可以打开或关闭或读写文件。
答案 0 :(得分:1)
if
语句中:
for line in input_file:
if 'WB_LI' in line and year in line:
#printing lines that matches user input
percentage = int(line[58:61])
total += percentage
count_instance+=1
if percentage > max_value:
max_value = percentage
max_line = line
if percentage < min_value:
min_value = percentage
min_line = line
为方便起见,此代码解析了每行一次的百分比。