2015-02-05 63 views
-4

有没有人可以告诉我我的代码问题,由于某种原因if语句不起作用?如果两个变量之间的表述不起作用

原始数据如下:

Rated Duration = 20.0 
Duration = 10 

守则如下:

import csv 

def _getRatedDuration(row): 
    rated_duration = row["rated_duration"] 
    if rated_duration.endswith('.0'): 
     return rated_duration[:-2] 

with open('all.csv') as csvfile: 
    reader = csv.DictReader(csvfile) 
    for row in reader: 
     if row["duration"] * 2 == _getRatedDuration: 
      print (row["rated_duration"], row["duration"]) 

下打印工程为rated_duration结果是双长..

doubled = int(row["duration"]) * 2 
print (row["rated_duration"], doubled] 
+6

你没有打电话给了'_getRatedDuration'功能,让你在一个值进行比较的功能,这将永远是平等的。 – davidism 2015-02-05 20:26:44

+0

@davidism,把这个答案!谢谢! – 2015-02-05 20:32:35

回答

2

你忘记了用行参数调用_getRatedDuration。你现在正在比较一个数字和一个函数对象。

更正:

if row["duration"] * 2 == _getRatedDuration(row): 
+0

这正是2分钟前评论中所说的! – Kasramvd 2015-02-05 20:30:00