>>> 1_000_000_000 == 1000000000
True
>>> 1_00_00_00_00_0
>>> '{:_}'.format(1000000)
'1_000_000'
>>> name = 'Julio'
>>> f'My name is {name}'
My name is Julio
>>> def f():
... name = 'Julio'
... print('My name is {name}'.format(**locals()))
all(list(print(f'{i} bottle{"s" if i != 1 else ""} of '
f'beer on the wall, {str(i).lower()} '
f'bottle{"s" if i != 1 else ""} of beer.\n{"Take one '
f'down pass it around" if str(i).lower() == str(i) '
f'else "Go to the store and buy some more"}, '
f'{i-1 if i not in [1, "No more"] else "no more" '
f'if i == 1 else 99} bottles of beer on the wall.\n') \
for i in list(range(99, 0, -1))+['No more'])) \
or ""
Só pra lembrar...
>>> def(name: str) -> str:
... return 'Hello ' + name
Não signfica que o CPython valida o parâmetro ou o retorno.
>>> captain: str # None
>>> values: List[int] = [1, 2, 4]
Essas informações podem ser extraídas de __annotations__
(assim como docstrings podem ser extraídas de __doc__
).
Nova biblioteca para geração de números randômicos "fortes", utilizados para criptografia.
>>> token_hex(16)
'f9bf78b9a18ce6d46a0cd2b0b86df9da'
Representação de um caminho qualquer no sistema de arquivos.
import pathlib
>>> with open(pathlib.Path("README")) as f:
... contents = f.read()
...
>>> import os.path
>>> os.path.splitext(pat)
('some_file', '.txt')
Nova função para tornar objetos Path-like: __fspath()__
dict
agora é mais compacto.
Efeito colateral: agora são ordenados em CPython, mas não no spec da linguagem Python.
**kwargs
agora são ordenados.__dict__
agora é ordenado.