python if-else语句仅对if条件

时间:2016-05-09 08:02:50

标签: python list if-statement file-handling

我正在使用python从文件中读取数字天气数据,然后检查湿度条件。如果湿度小于或等于75,则应将湿度重写为“低”,如果湿度大于75,则应将其重写为“高”。以下是我在档案中的数据。

展望,温度,湿度,刮风,permission_to_play

  1. 晴天,85,85,FALSE,无
  2. 晴天,80,90,TRUE,无
  3. 阴,83,86,FALSE,是
  4. 多雨,70,96,FALSE,是
  5. 多雨,68,80,FALSE,是
  6. 多雨,65,70,TRUE,无
  7. 阴,64,65,TRUE,是
  8. 晴天,72,95,FALSE,无
  9. 晴天,69,70,FALSE,是
  10. 多雨,75,80,FALSE,是
  11. 晴天,75,70,TRUE,是
  12. 阴,72,90,TRUE,是
  13. 阴,81,75,FALSE,是
  14. 多雨,71,91,TRUE,无
  15. 我正在列表中读取此文件,然后访问湿度值。以下是我写的代码。

    def fetchData(fileName):
        datalist = []
        rd =open(fileName,mode='r')
        list = rd.readlines()
        for l in list:
            subList = l.strip().split(',')
            humidity=subList[2]
            if humidity>75:
                subList[2]="high"
            else:
                subList[2]="low"
            datalist.append(subList)
        return datalist
    
    dataList = fetchData('weather.numeric.data')
    print dataList
    

    执行此操作后,数据编号6,7,9,11,13的湿度值应低,其他值应高。但是所有的湿度值都变得很高,如下面的输出所示。

    [['sunny', '85', 'high', 'FALSE', 'no'], ['sunny', '80', 'high', 'TRUE', 'no'], ['overcast', '83', 'high', 'FALSE', 'yes'], ['rainy', '70', 'high', 'FALSE', 'yes'], ['rainy', '68', 'high', 'FALSE', 'yes'], ['rainy', '65', 'high', 'TRUE', 'no'], ['overcast', '64', 'high', 'TRUE', 'yes'], ['sunny', '72', 'high', 'FALSE', 'no'], ['sunny', '69', 'high', 'FALSE', 'yes'], ['rainy', '75', 'high', 'FALSE', 'yes'], ['sunny', '75', 'high', 'TRUE', 'yes'], ['overcast', '72', 'high', 'TRUE', 'yes'], ['overcast', '81', 'high', 'FALSE', 'yes'], ['rainy', '71', 'high', 'TRUE', 'no']]
    

    我应该做出哪些改变? 提前致谢! :)

2 个答案:

答案 0 :(得分:2)

在与int比较之前,您应该将字符串转换为75

if int(humidity)>75:

答案 1 :(得分:0)

1使用'with'语句打开文件:

dropdownEl

2将值转换为int:

 with open (filename, "r") as rd:
    #don't use list - it is a type name
    mylist = rd.readlines()
 for l in mylist .....