File Doc/library/functions.rst changed (mode: 100644) (index 138f7d027c..6621f4aabf) |
... |
... |
are always available. They are listed here in alphabetical order. |
16 |
16 |
:func:`ascii` :func:`enumerate` :func:`input` :func:`oct` :func:`staticmethod` |
:func:`ascii` :func:`enumerate` :func:`input` :func:`oct` :func:`staticmethod` |
17 |
17 |
:func:`bin` :func:`eval` :func:`int` :func:`open` |func-str|_ |
:func:`bin` :func:`eval` :func:`int` :func:`open` |func-str|_ |
18 |
18 |
:func:`bool` :func:`exec` :func:`isinstance` :func:`ord` :func:`sum` |
:func:`bool` :func:`exec` :func:`isinstance` :func:`ord` :func:`sum` |
19 |
|
:func:`bytearray` :func:`filter` :func:`issubclass` :func:`pow` :func:`super` |
|
20 |
|
:func:`bytes` :func:`float` :func:`iter` :func:`print` |func-tuple|_ |
|
|
19 |
|
|func-bytearray|_ :func:`filter` :func:`issubclass` :func:`pow` :func:`super` |
|
20 |
|
|func-bytes|_ :func:`float` :func:`iter` :func:`print` |func-tuple|_ |
21 |
21 |
:func:`callable` :func:`format` :func:`len` :func:`property` :func:`type` |
:func:`callable` :func:`format` :func:`len` :func:`property` :func:`type` |
22 |
22 |
:func:`chr` |func-frozenset|_ |func-list|_ |func-range|_ :func:`vars` |
:func:`chr` |func-frozenset|_ |func-list|_ |func-range|_ :func:`vars` |
23 |
23 |
:func:`classmethod` :func:`getattr` :func:`locals` :func:`repr` :func:`zip` |
:func:`classmethod` :func:`getattr` :func:`locals` :func:`repr` :func:`zip` |
|
... |
... |
are always available. They are listed here in alphabetical order. |
37 |
37 |
.. |func-str| replace:: ``str()`` |
.. |func-str| replace:: ``str()`` |
38 |
38 |
.. |func-tuple| replace:: ``tuple()`` |
.. |func-tuple| replace:: ``tuple()`` |
39 |
39 |
.. |func-range| replace:: ``range()`` |
.. |func-range| replace:: ``range()`` |
40 |
|
|
|
|
40 |
|
.. |func-bytearray| replace:: ``bytearray()`` |
|
41 |
|
.. |func-bytes| replace:: ``bytes()`` |
41 |
42 |
|
|
42 |
43 |
.. function:: abs(x) |
.. function:: abs(x) |
43 |
44 |
|
|
|
... |
... |
are always available. They are listed here in alphabetical order. |
99 |
100 |
|
|
100 |
101 |
.. _func-bytearray: |
.. _func-bytearray: |
101 |
102 |
.. class:: bytearray([source[, encoding[, errors]]]) |
.. class:: bytearray([source[, encoding[, errors]]]) |
|
103 |
|
:noindex: |
102 |
104 |
|
|
103 |
105 |
Return a new array of bytes. The :class:`bytearray` class is a mutable |
Return a new array of bytes. The :class:`bytearray` class is a mutable |
104 |
106 |
sequence of integers in the range 0 <= x < 256. It has most of the usual |
sequence of integers in the range 0 <= x < 256. It has most of the usual |
|
... |
... |
are always available. They are listed here in alphabetical order. |
128 |
130 |
|
|
129 |
131 |
.. _func-bytes: |
.. _func-bytes: |
130 |
132 |
.. class:: bytes([source[, encoding[, errors]]]) |
.. class:: bytes([source[, encoding[, errors]]]) |
|
133 |
|
:noindex: |
131 |
134 |
|
|
132 |
135 |
Return a new "bytes" object, which is an immutable sequence of integers in |
Return a new "bytes" object, which is an immutable sequence of integers in |
133 |
136 |
the range ``0 <= x < 256``. :class:`bytes` is an immutable version of |
the range ``0 <= x < 256``. :class:`bytes` is an immutable version of |
File Doc/library/stdtypes.rst changed (mode: 100644) (index a9877ba666..552d7fc7c3) |
... |
... |
The :mod:`array` module supports efficient storage of basic data types like |
2265 |
2265 |
|
|
2266 |
2266 |
.. _typebytes: |
.. _typebytes: |
2267 |
2267 |
|
|
2268 |
|
Bytes |
|
2269 |
|
----- |
|
|
2268 |
|
Bytes Objects |
|
2269 |
|
------------- |
2270 |
2270 |
|
|
2271 |
2271 |
.. index:: object: bytes |
.. index:: object: bytes |
2272 |
2272 |
|
|
|
... |
... |
binary protocols are based on the ASCII text encoding, bytes objects offer |
2275 |
2275 |
several methods that are only valid when working with ASCII compatible |
several methods that are only valid when working with ASCII compatible |
2276 |
2276 |
data and are closely related to string objects in a variety of other ways. |
data and are closely related to string objects in a variety of other ways. |
2277 |
2277 |
|
|
2278 |
|
Firstly, the syntax for bytes literals is largely the same as that for string |
|
2279 |
|
literals, except that a ``b`` prefix is added: |
|
|
2278 |
|
.. class:: bytes([source[, encoding[, errors]]]) |
2280 |
2279 |
|
|
2281 |
|
* Single quotes: ``b'still allows embedded "double" quotes'`` |
|
2282 |
|
* Double quotes: ``b"still allows embedded 'single' quotes"``. |
|
2283 |
|
* Triple quoted: ``b'''3 single quotes'''``, ``b"""3 double quotes"""`` |
|
|
2280 |
|
Firstly, the syntax for bytes literals is largely the same as that for string |
|
2281 |
|
literals, except that a ``b`` prefix is added: |
2284 |
2282 |
|
|
2285 |
|
Only ASCII characters are permitted in bytes literals (regardless of the |
|
2286 |
|
declared source code encoding). Any binary values over 127 must be entered |
|
2287 |
|
into bytes literals using the appropriate escape sequence. |
|
|
2283 |
|
* Single quotes: ``b'still allows embedded "double" quotes'`` |
|
2284 |
|
* Double quotes: ``b"still allows embedded 'single' quotes"``. |
|
2285 |
|
* Triple quoted: ``b'''3 single quotes'''``, ``b"""3 double quotes"""`` |
2288 |
2286 |
|
|
2289 |
|
As with string literals, bytes literals may also use a ``r`` prefix to disable |
|
2290 |
|
processing of escape sequences. See :ref:`strings` for more about the various |
|
2291 |
|
forms of bytes literal, including supported escape sequences. |
|
|
2287 |
|
Only ASCII characters are permitted in bytes literals (regardless of the |
|
2288 |
|
declared source code encoding). Any binary values over 127 must be entered |
|
2289 |
|
into bytes literals using the appropriate escape sequence. |
2292 |
2290 |
|
|
2293 |
|
While bytes literals and representations are based on ASCII text, bytes |
|
2294 |
|
objects actually behave like immutable sequences of integers, with each |
|
2295 |
|
value in the sequence restricted such that ``0 <= x < 256`` (attempts to |
|
2296 |
|
violate this restriction will trigger :exc:`ValueError`. This is done |
|
2297 |
|
deliberately to emphasise that while many binary formats include ASCII based |
|
2298 |
|
elements and can be usefully manipulated with some text-oriented algorithms, |
|
2299 |
|
this is not generally the case for arbitrary binary data (blindly applying |
|
2300 |
|
text processing algorithms to binary data formats that are not ASCII |
|
2301 |
|
compatible will usually lead to data corruption). |
|
|
2291 |
|
As with string literals, bytes literals may also use a ``r`` prefix to disable |
|
2292 |
|
processing of escape sequences. See :ref:`strings` for more about the various |
|
2293 |
|
forms of bytes literal, including supported escape sequences. |
2302 |
2294 |
|
|
2303 |
|
In addition to the literal forms, bytes objects can be created in a number of |
|
2304 |
|
other ways: |
|
|
2295 |
|
While bytes literals and representations are based on ASCII text, bytes |
|
2296 |
|
objects actually behave like immutable sequences of integers, with each |
|
2297 |
|
value in the sequence restricted such that ``0 <= x < 256`` (attempts to |
|
2298 |
|
violate this restriction will trigger :exc:`ValueError`. This is done |
|
2299 |
|
deliberately to emphasise that while many binary formats include ASCII based |
|
2300 |
|
elements and can be usefully manipulated with some text-oriented algorithms, |
|
2301 |
|
this is not generally the case for arbitrary binary data (blindly applying |
|
2302 |
|
text processing algorithms to binary data formats that are not ASCII |
|
2303 |
|
compatible will usually lead to data corruption). |
2305 |
2304 |
|
|
2306 |
|
* A zero-filled bytes object of a specified length: ``bytes(10)`` |
|
2307 |
|
* From an iterable of integers: ``bytes(range(20))`` |
|
2308 |
|
* Copying existing binary data via the buffer protocol: ``bytes(obj)`` |
|
|
2305 |
|
In addition to the literal forms, bytes objects can be created in a number of |
|
2306 |
|
other ways: |
2309 |
2307 |
|
|
2310 |
|
Also see the :ref:`bytes <func-bytes>` built-in. |
|
|
2308 |
|
* A zero-filled bytes object of a specified length: ``bytes(10)`` |
|
2309 |
|
* From an iterable of integers: ``bytes(range(20))`` |
|
2310 |
|
* Copying existing binary data via the buffer protocol: ``bytes(obj)`` |
2311 |
2311 |
|
|
2312 |
|
Since 2 hexadecimal digits correspond precisely to a single byte, hexadecimal |
|
2313 |
|
numbers are a commonly used format for describing binary data. Accordingly, |
|
2314 |
|
the bytes type has an additional class method to read data in that format: |
|
|
2312 |
|
Also see the :ref:`bytes <func-bytes>` built-in. |
2315 |
2313 |
|
|
2316 |
|
.. classmethod:: bytes.fromhex(string) |
|
|
2314 |
|
Since 2 hexadecimal digits correspond precisely to a single byte, hexadecimal |
|
2315 |
|
numbers are a commonly used format for describing binary data. Accordingly, |
|
2316 |
|
the bytes type has an additional class method to read data in that format: |
2317 |
2317 |
|
|
2318 |
|
This :class:`bytes` class method returns a bytes object, decoding the |
|
2319 |
|
given string object. The string must contain two hexadecimal digits per |
|
2320 |
|
byte, with ASCII whitespace being ignored. |
|
|
2318 |
|
.. classmethod:: fromhex(string) |
2321 |
2319 |
|
|
2322 |
|
>>> bytes.fromhex('2Ef0 F1f2 ') |
|
2323 |
|
b'.\xf0\xf1\xf2' |
|
|
2320 |
|
This :class:`bytes` class method returns a bytes object, decoding the |
|
2321 |
|
given string object. The string must contain two hexadecimal digits per |
|
2322 |
|
byte, with ASCII whitespace being ignored. |
2324 |
2323 |
|
|
2325 |
|
.. versionchanged:: 3.7 |
|
2326 |
|
:meth:`bytes.fromhex` now skips all ASCII whitespace in the string, |
|
2327 |
|
not just spaces. |
|
|
2324 |
|
>>> bytes.fromhex('2Ef0 F1f2 ') |
|
2325 |
|
b'.\xf0\xf1\xf2' |
2328 |
2326 |
|
|
2329 |
|
A reverse conversion function exists to transform a bytes object into its |
|
2330 |
|
hexadecimal representation. |
|
|
2327 |
|
.. versionchanged:: 3.7 |
|
2328 |
|
:meth:`bytes.fromhex` now skips all ASCII whitespace in the string, |
|
2329 |
|
not just spaces. |
2331 |
2330 |
|
|
2332 |
|
.. method:: bytes.hex() |
|
|
2331 |
|
A reverse conversion function exists to transform a bytes object into its |
|
2332 |
|
hexadecimal representation. |
2333 |
2333 |
|
|
2334 |
|
Return a string object containing two hexadecimal digits for each |
|
2335 |
|
byte in the instance. |
|
|
2334 |
|
.. method:: hex() |
2336 |
2335 |
|
|
2337 |
|
>>> b'\xf0\xf1\xf2'.hex() |
|
2338 |
|
'f0f1f2' |
|
|
2336 |
|
Return a string object containing two hexadecimal digits for each |
|
2337 |
|
byte in the instance. |
2339 |
2338 |
|
|
2340 |
|
.. versionadded:: 3.5 |
|
|
2339 |
|
>>> b'\xf0\xf1\xf2'.hex() |
|
2340 |
|
'f0f1f2' |
|
2341 |
|
|
|
2342 |
|
.. versionadded:: 3.5 |
2341 |
2343 |
|
|
2342 |
2344 |
Since bytes objects are sequences of integers (akin to a tuple), for a bytes |
Since bytes objects are sequences of integers (akin to a tuple), for a bytes |
2343 |
2345 |
object *b*, ``b[0]`` will be an integer, while ``b[0:1]`` will be a bytes |
object *b*, ``b[0]`` will be an integer, while ``b[0:1]`` will be a bytes |
|
... |
... |
Bytearray Objects |
2367 |
2369 |
.. index:: object: bytearray |
.. index:: object: bytearray |
2368 |
2370 |
|
|
2369 |
2371 |
:class:`bytearray` objects are a mutable counterpart to :class:`bytes` |
:class:`bytearray` objects are a mutable counterpart to :class:`bytes` |
2370 |
|
objects. There is no dedicated literal syntax for bytearray objects, instead |
|
2371 |
|
they are always created by calling the constructor: |
|
|
2372 |
|
objects. |
2372 |
2373 |
|
|
2373 |
|
* Creating an empty instance: ``bytearray()`` |
|
2374 |
|
* Creating a zero-filled instance with a given length: ``bytearray(10)`` |
|
2375 |
|
* From an iterable of integers: ``bytearray(range(20))`` |
|
2376 |
|
* Copying existing binary data via the buffer protocol: ``bytearray(b'Hi!')`` |
|
|
2374 |
|
.. class:: bytearray([source[, encoding[, errors]]]) |
2377 |
2375 |
|
|
2378 |
|
As bytearray objects are mutable, they support the |
|
2379 |
|
:ref:`mutable <typesseq-mutable>` sequence operations in addition to the |
|
2380 |
|
common bytes and bytearray operations described in :ref:`bytes-methods`. |
|
|
2376 |
|
There is no dedicated literal syntax for bytearray objects, instead |
|
2377 |
|
they are always created by calling the constructor: |
2381 |
2378 |
|
|
2382 |
|
Also see the :ref:`bytearray <func-bytearray>` built-in. |
|
|
2379 |
|
* Creating an empty instance: ``bytearray()`` |
|
2380 |
|
* Creating a zero-filled instance with a given length: ``bytearray(10)`` |
|
2381 |
|
* From an iterable of integers: ``bytearray(range(20))`` |
|
2382 |
|
* Copying existing binary data via the buffer protocol: ``bytearray(b'Hi!')`` |
2383 |
2383 |
|
|
2384 |
|
Since 2 hexadecimal digits correspond precisely to a single byte, hexadecimal |
|
2385 |
|
numbers are a commonly used format for describing binary data. Accordingly, |
|
2386 |
|
the bytearray type has an additional class method to read data in that format: |
|
|
2384 |
|
As bytearray objects are mutable, they support the |
|
2385 |
|
:ref:`mutable <typesseq-mutable>` sequence operations in addition to the |
|
2386 |
|
common bytes and bytearray operations described in :ref:`bytes-methods`. |
2387 |
2387 |
|
|
2388 |
|
.. classmethod:: bytearray.fromhex(string) |
|
|
2388 |
|
Also see the :ref:`bytearray <func-bytearray>` built-in. |
2389 |
2389 |
|
|
2390 |
|
This :class:`bytearray` class method returns bytearray object, decoding |
|
2391 |
|
the given string object. The string must contain two hexadecimal digits |
|
2392 |
|
per byte, with ASCII whitespace being ignored. |
|
|
2390 |
|
Since 2 hexadecimal digits correspond precisely to a single byte, hexadecimal |
|
2391 |
|
numbers are a commonly used format for describing binary data. Accordingly, |
|
2392 |
|
the bytearray type has an additional class method to read data in that format: |
2393 |
2393 |
|
|
2394 |
|
>>> bytearray.fromhex('2Ef0 F1f2 ') |
|
2395 |
|
bytearray(b'.\xf0\xf1\xf2') |
|
|
2394 |
|
.. classmethod:: fromhex(string) |
2396 |
2395 |
|
|
2397 |
|
.. versionchanged:: 3.7 |
|
2398 |
|
:meth:`bytearray.fromhex` now skips all ASCII whitespace in the string, |
|
2399 |
|
not just spaces. |
|
|
2396 |
|
This :class:`bytearray` class method returns bytearray object, decoding |
|
2397 |
|
the given string object. The string must contain two hexadecimal digits |
|
2398 |
|
per byte, with ASCII whitespace being ignored. |
2400 |
2399 |
|
|
2401 |
|
A reverse conversion function exists to transform a bytearray object into its |
|
2402 |
|
hexadecimal representation. |
|
|
2400 |
|
>>> bytearray.fromhex('2Ef0 F1f2 ') |
|
2401 |
|
bytearray(b'.\xf0\xf1\xf2') |
2403 |
2402 |
|
|
2404 |
|
.. method:: bytearray.hex() |
|
|
2403 |
|
.. versionchanged:: 3.7 |
|
2404 |
|
:meth:`bytearray.fromhex` now skips all ASCII whitespace in the string, |
|
2405 |
|
not just spaces. |
2405 |
2406 |
|
|
2406 |
|
Return a string object containing two hexadecimal digits for each |
|
2407 |
|
byte in the instance. |
|
|
2407 |
|
A reverse conversion function exists to transform a bytearray object into its |
|
2408 |
|
hexadecimal representation. |
2408 |
2409 |
|
|
2409 |
|
>>> bytearray(b'\xf0\xf1\xf2').hex() |
|
2410 |
|
'f0f1f2' |
|
|
2410 |
|
.. method:: hex() |
|
2411 |
|
|
|
2412 |
|
Return a string object containing two hexadecimal digits for each |
|
2413 |
|
byte in the instance. |
2411 |
2414 |
|
|
2412 |
|
.. versionadded:: 3.5 |
|
|
2415 |
|
>>> bytearray(b'\xf0\xf1\xf2').hex() |
|
2416 |
|
'f0f1f2' |
|
2417 |
|
|
|
2418 |
|
.. versionadded:: 3.5 |
2413 |
2419 |
|
|
2414 |
2420 |
Since bytearray objects are sequences of integers (akin to a list), for a |
Since bytearray objects are sequences of integers (akin to a list), for a |
2415 |
2421 |
bytearray object *b*, ``b[0]`` will be an integer, while ``b[0:1]`` will be |
bytearray object *b*, ``b[0]`` will be an integer, while ``b[0:1]`` will be |