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. Я не хочу, чтобы любые значения для строки ["max_rel_hum"] были целыми числами или были более 100 или менее 0. Аналогичным образом, я не хочу, чтобы значения для строки ["обход"] были более 10 или менее чем 0. Я получаю эту ошибку, когда я пытаюсь запустить эту функцию:Python 2.7.10 ValueError: Неполный формат, если оператор
>>> 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
Прошу помочь. Спасибо
Так что я попробовал то, что вы сделали, и он вернулся эту ошибку >>> FUNC() Traceback (самый последний вызов последним): Файл "", строка 1, в Файл "hw.py", строка 11 , в func , если int (row ["max_rel_hum"])% 1 == 0: ValueError: недействительный литерал для int() с базой 10: '95 .9 ' –
О, я пропустил бит, где вы сказали «Я не знаю», t хотят, чтобы они были целыми числами ", и я предположил, что, поскольку вы делали modulo, вы должны хотеть, чтобы они были целыми числами. Попробуйте 'float()' вместо 'int()' - (хотя я не уверен, появятся ли ошибки округления с плавающей запятой в этом виде использования). – TessellatingHeckler