简体   繁体   中英

Python3.7.1: `10**3.5`: could not convert string to float: 3.5

I'm really confused on why this is happening to me:

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

Could someone shine a light? As you can see, this is a plain input – what I thought would be a float literal.

I've tried to take away the ipython complexity, and run in isolated mode, and but still:

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'

Is my python3.7 broken, is my understanding broken, or what am I looking at?

I ruled out encoding problems by putting shown code into a file and hexdumping that. It's clean ascii, as it should be, with a 0x2e for a dot, and a 0x0a as a line ending:

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

OS: Fedora 29 on an x86_64 with 16 GB of RAM.

The problem was caused by Fedora seemingly doing a glibc update without my interaction.

An extensiver-than-should-have-been investigation with GDB revealed that libc functionality was being called incorrectly.

So I rebooted. Problem seems solved.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM