Python循环问题

时间:2017-12-06 09:28:42

标签: python while-loop

我目前在python

中遇到问题
! curl https://raw.githubusercontent.com/MicrosoftLearning/intropython/master/world_temp_mean.csv -o mean_temp.txt

mean_temp = open("mean_temp.txt", "a+")
mean_temp.write("Rio de Janeiro,Brazil,30.0,18.0\n")
mean_temp.seek(0)
headings = mean_temp.readline().split(",")

while mean_temp.readline():
    city_temp = mean_temp.readline().split(",")
    print(headings[0].title(), "of",  city_temp[0], headings[2], "is", 
    city_temp[2], "Celcius")

此代码目前在打印时跳过第一行和每一行

当前输出:

  

开罗市月平均值:最高点是34.7摄氏度

     

内罗毕市月平均值:最高点为26.3摄氏度

     

悉尼市月平均值:最高点是26.5摄氏度

     

里约热内卢市月份大道:最高点是30.0摄氏度

必需的输出:

  

北京市月平均值:最高点为30.9摄氏度

     

开罗市月平均值:最高点是34.7摄氏度

     

伦敦金融时报月平均值:最高点是23.5摄氏度

     

内罗毕市月平均值:最高点为26.3摄氏度

     

纽约市月均值:最高点为28.9摄氏度

     

悉尼市月平均值:最高点是26.5摄氏度

     

东京市月平均值:最高点是30.8摄氏度

     

里约热内卢市月份大道:最高点是30.0摄氏度

感谢您的帮助

2 个答案:

答案 0 :(得分:1)

while循环不适合在这里使用。相反,使用for循环;在Python中,文件可以直接迭代。

for line in mean_temp:
    city_temp = line.split(",")

答案 1 :(得分:0)

您正在一个循环中读取2行并打印一次。而是使用下面的代码代替while循环:

for row in mean_temp:
    city_temp = row.split(",")
    print(headings[0].title(), "of",  city_temp[0], headings[2], "is", city_temp[2], "Celcius")