Python 2.7.10 ValueError:不完整格式if语句

时间:2015-10-26 21:02:52

标签: python-2.7 if-statement

def func():
import csv
file=open("cmiday.csv")
x,y=[],[]
reader=csv.DictReader(file)
for row in reader:
    if(type(row["max_rel_hum"])%1==0):
        continue
    if(type(row["precip"])%1==0):
        continue
    if(row["max_rel_hum"]>100):
        continue
    if(row["max_rel_hum"]<0):
        continue
    if (row["precip"]>10):
        continue
    if(row["precip"]<0):
        continue
    x.append(row["max_rel_hum"])
    y.append(row["precip"])
print x
print y

我正在尝试将csv文件中的数据收集到列表x和y中。我不希望row [“max_rel_hum”]的任何值为整数或大于100或小于0.同样,我不希望row [“precip”]的任何值大于10或更小当我尝试运行该函数时,我收到此错误:

>>> func()
Traceback (most recent call las
  File "<stdin>", line 1, in <m
  File "hw.py", line 7, in func
    if(row["max_rel_hum"]%1==0)
ValueError: incomplete format

请帮忙。感谢

1 个答案:

答案 0 :(得分:0)

CSV中的值是字符串,而不是整数。您期望%做模数,但在字符串上它会进行字符串格式化。

你需要这样的东西:

if ( int(row["max_rel_hum"]) % 1 == 0):

你需要在所有行中int()执行<> - 它们是对字符串的有效操作,但会按字母顺序进行比较,而不是数字比较,并且不会给出您期望的结果。

您根本不需要type()if