Форум сайта python.su
1
Только начал изучать питон, по книге Бизли Д. - Подробный справочник(4 изд.)
В книге рассматривается пример:
import sys if len(sys.argv) != 2: print("File") raise SystemExit(1) f = open(sys.argv[1]) lines = f.readline() f.close() fvalues = [line for line in lines] print(min(fvalues)) print(max(fvalues))
wavedocs@vm010-001-042-003:~/python$ python3 list.py log Print file:log Traceback (most recent call last): File "list.py", line 11, in <module> fvalues = [float(line) for line in lines] File "list.py", line 11, in <listcomp> fvalues = [float(line) for line in lines] ValueError: could not convert string to float:
Офлайн
568
это ошибка.
на какой странице в книге это написано?
ну или скан дай.
Офлайн
1
FishHook
это ошибка.на какой странице в книге это написано?ну или скан дай.
Офлайн
63
Скинь файл, из которго читаешь цифры…
P.S. Прошлая аватарка была лучше :)
Отредактировано 4kpt (Июль 29, 2013 12:24:51)
Офлайн
1
4kpt
Скинь файл, из которго читаешь…
wavedocs@vm010-001-042-003:~/python$ cat log
19.34342
1.34327
0.657
479.325654
Отредактировано wavedocs (Июль 29, 2013 12:29:01)
Офлайн
63
Капец. Файлом. Есть разные кодировки. Может быть вставлено начало и конец файла, который считывается…
Офлайн
1
Архивчик
Прикреплённый файлы:
lesson.tar (10,0 KБ)
Офлайн
1
4kptСории, всех тонкостей не знаю)
Капец. Файлом. Есть разные кодировки. Может быть вставлено начало и конец файла, который считывается…
Офлайн
568
wavedocsЕще раз внимательно посмотри в скрин и найди одно отличие от твоего кода.
http://imageshack.us/photo/my-images/843/kmnm.png/
Офлайн
63
Во-первых: Меод readline() считывает одну строку. Вам нужен метод readlines()
Во-вторых: В этой строке есть символ окончания строки “\n”. В какое число прикажете его переводить?
В-третьих: Вам нужно предварительно удалить все пробельные символы (можно перестраховаться) вначале и в конце строки (Ваше “\n”). Для этого служит метод .strip(). В вашем случае это будет выглядеть так:
import sys if len(sys.argv) != 2: print("File") raise SystemExit(1) file_ = open(sys.argv[1]) lines = file_.readlines() file_.close() fvalues = [float(line.strip()) for line in lines] print(min(fvalues))
Отредактировано 4kpt (Июль 29, 2013 12:46:08)
Офлайн