Проблема с отрицательными значениями с плавающей точкой в ​​списках Python - PullRequest
0 голосов
/ 13 ноября 2018

Так что я пытаюсь работать с плавающими элементами в списках Python, но я продолжаю получать эту ошибку.Я попытался сделать каждое значение строкой, а затем преобразовать его в число с плавающей точкой при вызове массива для печати, но это, похоже, не работает либо

P1 = [45.100000, ‐65.400000]
print(P1[0])
SyntaxError: invalid character in identifier

Попытка # 2

P1 = ["45.100000", "‐65.400000"]
print(float(P1[1]))
ValueError: could not convert string to float: '‐65.400000'

У меня такое чувство, что проблемы связаны с отрицательным значением перед вторыми элементами (@ index 1)

Ответы [ 3 ]

0 голосов
/ 13 ноября 2018

Проблема с дефисом, который вы используете.Если вы вырезаете и вставляете дефис в ваш список p1 и проверяете юникод, он дает:

>>> ord('‐')
8208

Тогда как правильный знак минус или вычитание должен быть:

>>> ord('-')
45

В зависимости от того, как вы получили этот список, вы должны либо выяснить, почему этот символ был включен, либо повторно набрать его с правильным Hyphen-Minus

0 голосов
/ 13 ноября 2018

Это потому, что ваш - не знак минус, а символ дефиса:

>>> "‐65.400000".encode('utf-8') # copy from your example
b'\xe2\x80\x9065.400000'

>>> "-65.400000".encode('utf-8') # Replace with my minus
b'-65.400000'

\xe2\x80\x90 символ дефиса, см. здесь : ваш дефис U+2010 и дефис-минус U+002D

0 голосов
/ 13 ноября 2018

Я скопировал ваш код и запустил его, и все, что мне нужно было сделать, это заменить "-" Похоже, вы использовали плохой символ. Попробуйте это;

P1 = [45.100000, -65.400000]
...