Python3.7.1: `10 ** 3.5`: не удалось преобразовать строку в число с плавающей точкой: 3.5 - PullRequest
0 голосов
/ 18 января 2019

Я действительно не понимаю, почему это происходит со мной:

Python 3.7.1 (default, Nov  5 2018, 14:07:04) 
Type 'copyright', 'credits' or 'license' for more information
IPython 6.4.0 -- An enhanced Interactive Python. Type '?' for help.

In [1]: 10**3.5
ValueError: could not convert string to float: 3.5

Может ли кто-нибудь зажечь свет? Как видите, это простой ввод - я думал, что это будет литерал с плавающей точкой.

Я пытался убрать сложность ipython и работать в изолированном режиме, но все же:

python3 -I -c "float('3.5')"
Traceback (most recent call last):
  File "<string>", line 1, in <module>
ValueError: could not convert string to float: '3.5'

Мой python3.7 сломан, мое понимание нарушено или на что я смотрю?

Я исключил проблемы с кодировкой, поместив указанный код в файл и зашифровав его. Это чистый ascii, как и должно быть, с 0x2e для точки и 0x0a в качестве окончания строки:

xxd testfile.py
00000000: 332e 350a                                3.5.
python3 -I testfile.py
ValueError: could not convert string to float: 3.5

ОС: Fedora 29 на платформе x86_64 с 16 ГБ ОЗУ.

1 Ответ

0 голосов
/ 18 января 2019

Проблема была вызвана тем, что Fedora, по-видимому, выполняла обновление glibc без моего взаимодействия.

Исследование, проведенное с помощью GDB, показало, что функциональность libc вызывается неправильно.

Итак, я перезагрузился. Кажется, проблема решена.

...