This issue tracker has been migrated to GitHub ,
and is currently read-only.
For more information,
see the GitHub FAQs in the Python's Developer Guide.
Created on 2014年05月20日 23:38 by Kurt.Rose, last changed 2022年04月11日 14:58 by admin. This issue is now closed.
| Messages (3) | |||
|---|---|---|---|
| msg218859 - (view) | Author: Kurt Rose (Kurt.Rose) | Date: 2014年05月20日 23:38 | |
int() ignores everything after a null byte when reporting an error message.
Here you can see an example of how this manifests, and why could be a problem.
Python 2.7.6 (default, Nov 10 2013, 19:24:18) [MSC v.1500 32 bit(Intel)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> int('a')
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ValueError: invalid literal for int() with base 10: 'a'
>>> int('0円a')
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ValueError: invalid literal for int() with base 10: ''
>>> int('abc0円def')
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ValueError: invalid literal for int() with base 10: 'abc'
|
|||
| msg218860 - (view) | Author: STINNER Victor (vstinner) * (Python committer) | Date: 2014年05月21日 01:19 | |
It looks like the issue was already fixed in Python 3:
Python 3.5.0a0 (default:61d9aa8be445, May 20 2014, 16:03:51)
>>> int('a')
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ValueError: invalid literal for int() with base 10: 'a'
>>> int('0円a')
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ValueError: invalid literal for int() with base 10: '\x00a'
>>> int('abc\x00def')
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ValueError: invalid literal for int() with base 10: 'abc\x00def'
And the last one:
>>> int('0円')
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ValueError: invalid literal for int() with base 10: '\x00'
|
|||
| msg218862 - (view) | Author: Eryk Sun (eryksun) * (Python triager) | Date: 2014年05月21日 01:32 | |
See issue 16741. This is fixed in 3.3, but 2.7 intentionally keeps the old behavior. |
|||
| History | |||
|---|---|---|---|
| Date | User | Action | Args |
| 2022年04月11日 14:58:03 | admin | set | github: 65745 |
| 2014年05月23日 20:39:13 | terry.reedy | set | status: open -> closed type: behavior superseder: `int()`, `float()`, etc think python strings are null-terminated resolution: duplicate stage: resolved |
| 2014年05月21日 01:32:37 | eryksun | set | nosy:
+ eryksun messages: + msg218862 |
| 2014年05月21日 01:19:45 | vstinner | set | nosy:
+ vstinner messages: + msg218860 |
| 2014年05月20日 23:38:26 | Kurt.Rose | create | |