Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/297.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python elif不处理字典键值对_Python_If Statement - Fatal编程技术网

Python elif不处理字典键值对

Python elif不处理字典键值对,python,if-statement,Python,If Statement,我正在编写一个函数来清理字典中的数据,其中包含一个键值对,显示日期和该日期的降雨量。清除数据的条件要求删除和键值对,其中值满足以下条件: 类型不是整数或浮点。即使价值 是可以转换为整数的字符串(例如。 “5”)应将其删除 该值小于0:不可能有 负降雨量,所以这一定是坏数据 该值大于100:这是 一天的降雨量为71.8英寸 如此多的键值对并不像我预期的那个样使用elif语句。例如,我无法理解为什么20190101 5的第一个键值对通过所有if/elif语句,而put没有添加到新字典中,或者为什

我正在编写一个函数来清理字典中的数据,其中包含一个键值对,显示日期和该日期的降雨量。清除数据的条件要求删除和键值对,其中值满足以下条件:

  • 类型不是整数或浮点。即使价值 是可以转换为整数的字符串(例如。 “5”)应将其删除
  • 该值小于0:不可能有 负降雨量,所以这一定是坏数据
  • 该值大于100:这是 一天的降雨量为71.8英寸

如此多的键值对并不像我预期的那个样使用elif语句。例如,我无法理解为什么20190101 5的第一个键值对通过所有if/elif语句,而put没有添加到新字典中,或者为什么20190105-7键值对通过值小于0的elif语句。当我将所有这些语句更改为if语句而不是elif语句时,代码可以正常工作,但我可以确定这些语句是互斥的,因此elif应该可以正常工作。我希望代码只运行一个if或elif语句,如果满足一个条件,我不需要它来运行所有这些语句。我不明白elifs不起作用?

20190101 5的5不是浮点,所以它进入第一个分支

    if not type(inches) == float:
由于在此处输入,因此不会输入任何
elif
s


20190101 5
中的5是整数,因此此部分不执行:

如果你的要求是

类型不是整数或浮点

(实际上应该是:类型既不是整数也不是浮点)

如果不是类型(英寸)=浮动,则使用
,而不是类型(英寸)=int:

rainfall = {"20190101": 5, "20190102": "6", "20190103": 7.5, 
           "20190104": 0, "20190105": -7, "20190106": 102,
           "20190107": 1}
5,0,-7,102,1
int
的类型。首先,if-not-type(inches)==float的if语句将处理它,因为它们是int,所以它们不会转到if语句if-not-type(inches)==int:

“6”
是字符串,既不是float也不是int。因此它将打印类型消息


唯一可以正确处理的元素是
7.5

改进:
如果不存在(英寸,(整数,浮动)):继续
ahhh我明白了!非常感谢你!啊,好吧,这很有道理,非常感谢:)!
    if not type(inches) == float:
        if not type(inches) == int:
            print ("type")
            continue
rainfall = {"20190101": 5, "20190102": "6", "20190103": 7.5, 
           "20190104": 0, "20190105": -7, "20190106": 102,
           "20190107": 1}