15.12.2022 Views

Python Eficaz

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

• No Python 3, bytes contêm sequências de valores puros em 8 bits e str

contém sequências de caracteres Unicode. Instâncias bytes e str não podem

ser usadas juntas com operadores (como > ou +).

• No Python 2, str contém sequências de valores de 8 bits e unicode contém

sequências de caracteres Unicode. str e unicode podem ser usados juntos com

operadores desde que str contenha apenas caracteres ASCII de 7 bits.

• Use funções auxiliares para assegurar que as entradas que estão sendo

manipuladas são do tipo de caractere que o código está esperando (valores de

8 bits, caracteres codificados em UTF-8, caracteres Unicode etc.).

• Se desejar ler ou escrever dados binários em um arquivo, sempre o abra

usando o modo binário (como 'rb' ou 'wb').

Item 4: Escreva funções auxiliares em vez de

expressões complexas

A sintaxe concisa do Python torna fácil escrever em uma única linha uma

expressão que implemente grande quantidade de lógica. Por exemplo, digamos

que seja necessário decodificar a query string de um URL. Aqui, cada parâmetro

da query string representa um valor inteiro:

from urllib.parse import parse_qs

my_values = parse_qs('red=5&blue=0&green=',

keep_blank_values=True)

print(repr(my_values))

>>>

{'red': ['5'], 'green': [''], 'blue': ['0']}

Alguns parâmetros de query string podem trazer múltiplos valores, outros apenas

um único valor, alguns podem estar presentes, mas com o valor em branco e

outros podem ter sido simplesmente suprimidos. Ao usar o método get no

dicionário resultante, os valores devolvidos serão diferentes em cada

circunstância.

print('Red: ', my_values.get('red'))

print('Green: ', my_values.get('green'))

print('Opacity: ', my_values.get('opacity'))

www.full-ebook.com

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!