Е
18 жовтня 2019 р. 15:44
Не получается в Python конвертировать string в float
Добрый день! Прошу помощи: Столкнулся с проблемой конвертации string в float:
import codecs f = codecs.open ("test.txt", 'r', encoding='cp866') for line in f: pkp = 1 for lk in range (0, len (line), 1): if line[lk] == '0' or line[lk] == '1' or line[lk] == '2' or line[lk] == '3' or line[lk] == '4' or line[lk] == '5' or line[lk] == '6' or line[lk] == '7' or line[lk] == '8' or \ line[lk] == '9' or line[lk] == '.' or line[lk] == ',' or line[lk] == '-' or line[lk] == '\n' or line[lk] == ' ' or line[lk] == ' ': # or line[lk:(lk+2)] != '--' or line[lk] != '#': pkp += 1 if pkp == len (line): text = line nev_text = '' lk = '' for i, x in enumerate (text): if x == ' ': if lk != '': if lk != ' ': nev_text += ',' else: nev_text += x else: nev_text += x # F lk = x if len (nev_text) > 2: nev_text1 = list (map(float, nev_text)) # Здесь программа вылетает, не может конвертировать string в float lj = 0.00, 10000.00 new_list = list(map(lambda m, f: m + f, nev_text1, lj)) print(new_list) f.close ()
3
29
Вам це подобається? Поділіться в соціальних мережах!
- Останні коментарі
- AK24 квітня 2025 р. 12:04UPD: Переписал логику воспроизведения через стороннюю библиотеку BASS. Там выбрать можно
- AK01 квітня 2025 р. 11:41Добрый день. В данный момент работаю над проектом, где необходимо выводить звук из программы в определенное аудиоустройство (колонки, наушники, виртуальный кабель и т.д). Пишу на Qt5.12.12 поско…
- Тепер обговоріть на форумі
- DT14 квітня 2025 р. 15:38Всем привет! На Qt 6.8 MinGW пытаюсь сделать управление подключением WiFi из программы. Пока делаю поддержку Windows, но так же хочу в дальнейшем внедрить и поддержку Linux/MacOS. Для…
- f15 лютого 2025 р. 13:46Подскажите, пожалуйста! Как данный класс можно дополнить, чтобы созданные объекты можно было перемещать мышкой по сцене?
- Не запускается компьютер (точнее работает блок , но сам монитор вообще жесть)В общем я ничего с интернета не скачивала в последнее время. На компе никаких левых пр…
- Вопрос решен. Узнать QModelIndex элемента на который мы перетаскиваем другой элемент, можно с помощью функции indexAt(event->position().toPoint()) представления QTreeViev вызываемой в переопр…
Файл test.txt:
Добрый день.
У вас там пробелы находятся в тексте, поэтому и не может сконвертировать. фукция map применяет float ко все символам в каждой строке. В том числе и к символам пробела. А пробел вы не можете преобразовать во float, поэтому и вылетает. В качестве символов в той строке могут быть только числа, и точки. Даже запятые являеются невалидными символами.
Спасибо Евгений за очередную подсказку! Всё-таки решилась проблема)))
По моему, алгоритм перебора символов в 6-8 строках жутко тормознутый.
Зачем все время операция "or"?
Если очередной символ удовлетворяет условию, то дальнейшая "or" уже смысла не имеет и надо идти на начало цикла.
Этот алгоритм предназначен для того чтобы исключить из обработки строки содержащие буквенные символы. Если Вам не трудно опишите пожалуйста как бы Вы написали этот алгоритм, желательно в коде?