15.12.2022 Views

Python Eficaz

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

de entrada, o número de visitantes de cada cidade para obter o número total de

visitantes no Texas. Depois, divide o número de cada cidade pelo número total

do estado para encontrar a porcentagem que aquele município contribuiu para o

turismo estadual.

def normalize(numbers):

total = sum(numbers)

result = []

for value in numbers:

percent = 100 * value / total

result.append(percent)

return result

A função funciona quando lhe é fornecida uma lista de quantidades de visitação.

visits = [15, 35, 80]

percentages = normalize(visits)

print(percentages)

>>>

[11.538461538461538, 26.923076923076923, 61.53846153846154]

Para usar a função em um nível mais alto, é necessário ler os dados a partir de

um arquivo que contém os dados de cada município do Texas. Para isso, é

definido um gerador porque eu posso usar a mesma função mais tarde, quando

quiser computar os números do turismo do mundo inteiro, um conjunto de dados

muito maior. (Consulte o Item 16: “Prefira geradores em vez de retornar listas”.)

def read_visits(data_path):

with open(data_path) as f:

for line in f:

yield int(line)

Para nosso espanto, chamar a função normalize usando como argumento o

iterador, que carrega os valores produzidos pelo gerador, não produz nenhum

resultado.

it = read_visits('/tmp/my_numbers.txt')

percentages = normalize(it)

print(percentages)

www.full-ebook.com

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

Saved successfully!

Ooh no, something went wrong!