Python I - Fundamentos do Python
Ementa: ➢ Tipos básicos ○ int ○ float ○ bool ○ str ➢ Variáveis ➢ Comentários ➢ Operadores ○ aritméticos ○ comparativos ○ de atribuição ○ lógicos
Tipos Básicos
int O tipo inteiro é um tipo composto por caracteres numéricos (algarismos) inteiros. É um tipo usado para um número que pode ser escrito sem um componente decimal, podendo ter ou não sinal, ou seja: ser positivo ou negativo. Por exemplo, 20, 7, 0, -3 e -500 são números inteiros. Exemplos: return
float É um tipo composto por caracteres numéricos (algarismo) decimais. O famoso ponto flutuante é um tipo usado para números racionais (números que podem ser representados por uma fração) informalmente conhecido como “número quebrado”. Exemplos: return
bool Tipo de dado lógico que pode assumir apenas dois valores: falso ou verdadeiro (False ou True em Python). Na lógica computacional, podem ser considerados como 0 ou 1. Exemplos: return
str É um conjunto de caracteres dispostos numa determinada ordem, geralmente utilizada para representar palavras, frases ou textos. Exemplos: return
return
Variáveis
variáveis Uma variável é um nome que se refere a um valor. Um comando de atribuição cria uma nova variável e lhe dá um valor. Variáveis são usadas para guardarmos valores que serão reutilizados mais tarde no programa. Exemplos: return
variáveis return
variáveis return
variáveis return
Comentários
comentários É uma linha que você escreve no código fonte, porém esse comentário não é interpretado na linguagem de programação. Ele serve para que você possa adicionar alguma informação a mais no código. * Não é necessário escrever para tudo, apenas naquilo que realmente é importante. Em um código auto explicativo, por exemplo, não há necessidade. Os comentários começam com o caractere cerquilha ‘#’ e estende até o final da linha Exemplos:
comentários Exemplo de um print sem o comentário: return
comentários Exemplo de um print com o comentário: return
Operadores
operadores aritméticos Esses operadores são utilizados para criar expressões matemáticas comuns, como soma, subtração, multiplicação e divisão. Veja quais estão disponíveis no Python: Operador Nome Função + Adição Realiza a soma de ambos operandos - Subtração Realiza a subtração de ambos operandos * Multiplicação Realiza a multiplicação de ambos operandos / Divisão Realiza a divisão de ambos operandos // Divisão inteira Realiza a divisão entre operandos e a parte decimal de ambos operandos % Módulo Retorna o resto da divisão de ambos operandos ** Exponenciação Retorna o resultado da elevação da potência pelo outro
operadores aritméticos Vejamos agora a utilização de cada operador aritmético mencionado no slide anterior:
operadores comparativos Operador Nome Função == Igual a Verifica se um valor é igual ao outro != Diferente de Verifica se um valor é diferente ao outro > Maior que Verifica se um valor é maior que o outro >= Maior ou igual Verifica se um valor é maior ou igual ao outro < Menor que Verifica se um valor é menor que o outro <= Menor ou igual Verifica se um valor é menor ou igual ao outro Como o nome já diz, esses Operadores são usados para comparar dois valores:
operadores comparativos Vamos ver exemplos da utilização de cada operador de comparação mencionado no slide anterior. Para facilitar o entendimento, todas as operações estão retornando um valor igual a True, para que vocês entendam como cada condição é aceita: return
operadores de atribuição Esses Operadores são utilizados no momento da atribuição de valores à variáveis e controlam como a atribuição será realizada. Veja quais Operadores de Atribuição estão disponíveis em Python: Operador Equivalente a = x = 1 += x = x + 1 -= x = x - 1 *= x = x * 1 /= x = x / 1 %= x = x % 1
operadores de atribuição * O operador % é chamado módulo pois nada mais é que o resto da divisão. No exemplo ao lado: 5 dividido por 2 dá 2 de resultado e sobra 1. Por isso numero %= 2 será 1!
operadores lógicos Python nos disponibiliza três tipos de Operadores Lógicos: o and, o or e o not. Operador Definição and Retorna True se ambas afirmações forem verdadeiras or Retorna True se uma das afirmações for verdadeira not Retorna falso se o resultado for verdadeiro
operadores lógicos Exemplo da utilização de cada um:
Parte 2
Thais Ribeiro AI Engineer thais.ribeiro@luizalabs.com www.thaisplicando.com @thaisplicandoo
Ementa 1. Conversão de tipos 2. Listas 3. Tuplas 4. Funções ○ Map ○ Filter ○ Reduce 5. Tipos de parâmetros (args, kwargs) 6. Decorator 7. Lambda
Recados Importantes Ficou com Dúvidas? - Fique à vontade para perguntar a qualquer momento nos nossos canais do slack e/ou buscar ajuda com os mentores/professores.
Conversão de Tipos
Conversão de tipos A conversão de dados em Python, são o uso de funções definidas que convertem diretamente um tipo de dado em outro, o que é útil na programação diária e competitiva. Existem dois tipos de conversão aqui: ● Implícita ● Explícita
Conversão Implícita Na conversão implícita, acontece do interpretador converter automaticamente um tipo de dado em outro sem qualquer envolvimento do usuário. Vamos ver isso acontecendo com o exemplo abaixo:
Conversão Explícita Diferente da conversão Implícita, esse tipo de conversão é feita manualmente pelo usuário de acordo com seus requisitos, existem várias formas de conversão que se pode fazer nesse tipo, usando as funções do Python: ● int(a, base): essa função converte qualquer tipo de dado em inteiro. ‘Base’ especifica a base em que a string está se o tipo de dados for uma string ● float(): função usada para converter qualquer tipo de dados em um float, literalmente. ● str(): usada para converter números inteiros em strings ● dict(): usada para converter tuplas em dicionário ● ord(): função usada para converter qualquer caractere em um inteiro ● hex(): função que converte número inteiro em uma string hexadecimal* ● oct(): converte um número inteiro em octal ● tupla: converte para uma tupla …
Conversão Explícita Aqui temos alguns exemplos de conversão sendo feitas no código, contudo vocês conseguem ver uma lista de tipos de conversão na documentação oficial: https://docs.python.org/3/library/functions.html
Listas
Listas Uma lista, nada mais é que uma coleção ordenada de valores, onde cada valor é identificado por índices. Em Python representamos uma lista separando os dados por vírgula, dentro de colchetes. Elas são utilizadas para armazenar diversos itens em uma única variável e existem várias maneiras de serem criadas.
Listas Podemos criar uma lista de uma maneira bem simples, apenas envolvendo os elementos por colchetes: Podemos criar uma lista vazia:
Listas Também é possível criar uma lista com vários itens e de diferentes tipos: Podemos obter uma lista através de compreensão de listas (List Comprehensions)*
Listas Como acessar os dados de uma lista? Todos os itens de uma lista são indexados, ou seja, para cada item da lista um índice é atribuído ao mesmo, para acessar esses itens é necessário que especifiquemos o índice, lembrando, o índice começa no 0. No código ficaria assim:
Listas E para pegar o último item da lista? Uma forma de buscar o último item, ou itens mais próximos ao fim, é usando indexação negativa. A indexação negativa, vai buscar os itens do fim, logo, se eu quiser buscar o Abacaxi de uma forma mais simples, basta eu fazer assim:
Listas Lista dentro de lista? Sim, é possível! Assim como no exemplo, para acessarmos a sub-lista é necessário que busquemos onde o índice da mesma está.
Listas Percorrendo uma lista Se precisarmos percorrer uma lista, a melhor forma é usarmos loop. Por exemplo, dada uma lista grande de elementos, eu quero buscar somente aqueles que forem maior que 10:
Listas É importante saber como manusear uma lista, em python temos vários métodos que estão disponíveis para nos ajudar nisso, confira comigo alguns deles: ● list.append(x): adiciona um item ao fim da lista ● list.extend(iterable): adiciona todos os itens do iterável ao fim da lista ● list.insert(i, x): insere um item em uma dada posivel (i) dada pelo index ● list.remove(x): remove o primeiro elemento cujo o valor for “x” ● list.pop(i): remove o item da posição i da lista e retorna, caso o index não seja especificado, retona o último elemento. ● list.clear(): remove tudo da lista ● list.index(x[, start[, end]]): retorna o indice do primeiro elemento cujo valor seja x. ● list.count(x): retorna o número de vezes que x aparece na lista ● list.sort(key=nome, reverse=False): ordena os itens da lista ● list.reverse(): reverte os elementos da lista ● list.copy(): retorna uma lista com a cópia dos elementos da lista de origem. …
Listas Vamos ver funcionando na prática:
Listas
Listas Entendo o que é List Comprehensions e porquê usá-las. Compreensão de listas foi concebida na PEP 202 e é uma forma concisa de criar e manipular listas. Basicamente é a forma mais rápida de criar uma lista através de outra. Python oferece diferentes formas de iteração, mas list comprehensions é mais otimizada para o interpretador python detectar um padrão previsível durante o loop, e como bônus ela é mais legível e economiza variáveis na contagem. Veja um exemplo:
Tuplas
Tuplas Python oferece diferentes tipos de estruturas de dados, entre elas as listas que acabamos de ver e as tuplas, que podem causar algumas dúvidas devido a semelhança entre elas. Contudo, é necessário entender o conceito que envolve cada uma para utilizá-las da maneira correta. Tupla, é uma estrutura parecida com listas, mas com a característica de ser imutável. Isso significa que quando uma tupla é criada, não há a possibilidade (entre aspas)* de adicionar, remover, ou alterar seus elementos. Geralmente são utilizadas para adicionar tipos diferentes de informações, podemos utilizar uma tupla para adicionar, por exemplo, a sigla do estado em uma posição e o nome em outra, tornando-a boa para ser usada quando queremos trabalhar com informações diferentes em uma mesma variável.
Tuplas Sua característica de imutabilidade oferece segurança nas informações armazenadas, sendo assim, uma tupla vai ser usada para armazenar uma sequência de dados que não serão modificados no decorrer do código. Entretanto, *ela não é totalmente imutável, pois quando armazena outro objeto como uma lista, os dados armazenados nesse elemento podem ser modificados. Ah, mas é preciso entender que esse tipo de alteração não é feita na estrutura da tupla, apenas no conteúdo desse objeto, que é passado como referência. Assim:
Funções
Funções Uma função é uma sequência de comandos que executa uma tarefa, sua principal finalidade é nos ajudar a organizar programas em pedaços que correspondam a como imaginamos uma solução do problema. No python, além de podermos criar funções, temos a opção de usar funções embutidas que estão disponíveis para nos ajudar a escrever nosso programa e economizar tempo, pois estaremos utilizando funções existentes e não precisaremos criar. Na documentação oficial: https://docs.python.org/pt-br/3/library/functions.html , temos a lista dessas funções, hoje vamos ver três tipos delas: ● Map ● Filter ● Reduce
Funções Primeiramente, vamos focar nas três funções mais poderosas do Python, pois os três principais pilares da programação funcional é mapear, filtrar e reduzir …
Funções map() - Syntax map(função, iteráveis) Utilizamos esta função quando precisamos realizar uma operação específica nos itens da lista e transformá-los em outra coisa. Ex: [🐮, 🥔, 🐔].map(cook) = [🍔, 🍟, 🍗]
Funções filter() - Syntax filter(função, iteráveis) Utilizamos o filter() quando precisamos filtrar elementos da lista. Ex: [🍔,🍟,🍗].filter(veggie) = [🍟]
Funções reduce() - Syntax reduce(função, iteráveis) Esta função aplica uma operação em todos os elementos da lista reduzindo a apenas um elemento. Agora, diferente das outras duas, essa função não é diretamente do interpretador, precisamos importar o módulo functools. Ex: [👨,🚑,💉].reduce(build) = 🏥
Funções reduce() - Syntax reduce(função, iteráveis) Esta função aplica uma operação em todos os elementos da lista reduzindo a apenas um elemento. Agora, diferente das outras duas, essa função não é diretamente do interpretador, precisamos importar o módulo functools. Ex: [👨,🚑,💉].reduce(build) = 🏥
Funções O que fazer para criar uma função? A sintaxe de uma função é definida por três partes: nome, parâmetros e corpo, o qual agrupa uma sequência de linhas que representa algum comportamento. No código abaixo, temos um exemplo de declaração de função em Python que tem como objetivo imprimir o parâmetro passado. Uma função só é executada quando chamamos por ela, observe que não só criamos a função foo, como logo abaixo a chamamos passando o parâmetro. Execute o código abaixo e no canal do slack informe qual foi sua saída.
Lições Extras Vamos exercitar o que aprendemos de funções? Entrada: lista = [100, 248.90, 88, 124.90] def desconto(preco): return preco * (1 - 0.1) 1 - Dada uma lista com n valores, aplicar a função de desconto usando map() 2 - Retornar os valores maiores que 100, usando filter() 3 - Somar todos os valores da lista usando reduce() Saída: 1 - [90.0, 224.01000000000002, 79.2, 112.41000000000001] 2 - [248.9, 124.9] 3 - 561.8
Tipos de Parâmetros
Parâmetros Parâmetros são os nomes dados aos atributos que uma função pode receber, são eles que definem quais são os argumentos aceitos por uma função, podendo ou não ter um valor padrão. Temos aqui um exemplo de uma função recebendo dois parâmetros, um de valor que é obrigatório e um de horas, que não é obrigatório porque tem um valor padrão, porém pode ser modificado se informado.
Parâmetros *args e **kwargs As palavras args e kwargs são apenas usadas como convenção, poderia receber qualquer outro nome: *params, **kparams, por exemplo. Afinal, o que são? *args é usado para passar uma lista de argumentos variável sem palavras chaves em forma de tupla, pois a função que recebe não necessariamente saberá quantos argumentos serão passados. Exemplo:
Parâmetros … e **kwargs: É a abreviação de keyword arguments, ele permite passar um dicionário com inúmeras chaves para a função. Isso deixa definido que tal função irá receber tais valores, pronto.
Decorator
Decorator Lá na PEP 318, veio a proposta de melhoria na linguagem, que propôs o decorator, que nada mais é do que um método para envolver uma função, modificando o seu comportamento. Dá um olhada no código abaixo, que tem a seguinte saída: >>> Estou antes da execução da função passada como argumento >>> Sou um belo argumento >>> Estou depois da execução da função passada como argumento
Decorator Usando decorator conseguimos adicionar qualquer comportamento antes e depois da execução de uma função qualquer. Podemos usar o decorator com o @, que fará o mesmo papel de como se estivessemos chamando a função da imagem anterior, mostrarei um exemplo útil de utilização de decorator, colocando o @ em cima da função que será decorada.
Lambda
Lambda Não é lambida, é LAMBDA! É aqui que todo dev corre até entender de fato o que são, só que funções lambdas são como todas as outras: funções normais. Exceto pelo fato de não ter um nome para defini-la e estar contida em uma linha de código. A sintaxe é assim:
Lambda Uma função lambda funciona da seguinte forma: você dá à função um valor (argumento) e então fornece a operação (expressão). A palavra lambda vem na frente, depois vem “:” e o argumento. Quais são os pós de usá-las? ● Bom para operações lógicas simples que são fáceis de entender, isso torna o código mais legível também ● Bom para funções que serão usadas apenas uma vez. E os contras? ● Elas só podem executar uma única expressão, por isso tem que ser usada somente no simples ● Se a função abrange mais de uma linha, esquece, não funcionará ● Dependendo do contexto ela vai ser executada somente uma
Lambda Usei em slides anteriores a função lambda para facilitar os resultados, nas compreensões de lista, nas funções de filter, map, reduce. Contudo, vou mostrar um exemplo que deixa claro como podemos reduzir uma função simples, que busca os valores pares de uma lista, em uma linha.
Lambda Funções lambdas por não ser nomeadas, são funções que chamamos de anônimas. Outro exemplo para fixar:
73 Perguntas?
#VemSerFeliz

Material_ Módulo 3_Python I.pptx.pdf - Python

  • 1.
  • 2.
    Ementa: ➢ Tipos básicos ○int ○ float ○ bool ○ str ➢ Variáveis ➢ Comentários ➢ Operadores ○ aritméticos ○ comparativos ○ de atribuição ○ lógicos
  • 3.
  • 4.
    int O tipo inteiroé um tipo composto por caracteres numéricos (algarismos) inteiros. É um tipo usado para um número que pode ser escrito sem um componente decimal, podendo ter ou não sinal, ou seja: ser positivo ou negativo. Por exemplo, 20, 7, 0, -3 e -500 são números inteiros. Exemplos: return
  • 5.
    float É um tipocomposto por caracteres numéricos (algarismo) decimais. O famoso ponto flutuante é um tipo usado para números racionais (números que podem ser representados por uma fração) informalmente conhecido como “número quebrado”. Exemplos: return
  • 6.
    bool Tipo de dadológico que pode assumir apenas dois valores: falso ou verdadeiro (False ou True em Python). Na lógica computacional, podem ser considerados como 0 ou 1. Exemplos: return
  • 7.
    str É um conjuntode caracteres dispostos numa determinada ordem, geralmente utilizada para representar palavras, frases ou textos. Exemplos: return
  • 8.
  • 9.
  • 10.
    variáveis Uma variável éum nome que se refere a um valor. Um comando de atribuição cria uma nova variável e lhe dá um valor. Variáveis são usadas para guardarmos valores que serão reutilizados mais tarde no programa. Exemplos: return
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
    comentários É uma linhaque você escreve no código fonte, porém esse comentário não é interpretado na linguagem de programação. Ele serve para que você possa adicionar alguma informação a mais no código. * Não é necessário escrever para tudo, apenas naquilo que realmente é importante. Em um código auto explicativo, por exemplo, não há necessidade. Os comentários começam com o caractere cerquilha ‘#’ e estende até o final da linha Exemplos:
  • 16.
    comentários Exemplo de umprint sem o comentário: return
  • 17.
    comentários Exemplo de umprint com o comentário: return
  • 18.
  • 19.
    operadores aritméticos Esses operadoressão utilizados para criar expressões matemáticas comuns, como soma, subtração, multiplicação e divisão. Veja quais estão disponíveis no Python: Operador Nome Função + Adição Realiza a soma de ambos operandos - Subtração Realiza a subtração de ambos operandos * Multiplicação Realiza a multiplicação de ambos operandos / Divisão Realiza a divisão de ambos operandos // Divisão inteira Realiza a divisão entre operandos e a parte decimal de ambos operandos % Módulo Retorna o resto da divisão de ambos operandos ** Exponenciação Retorna o resultado da elevação da potência pelo outro
  • 20.
    operadores aritméticos Vejamos agoraa utilização de cada operador aritmético mencionado no slide anterior:
  • 21.
    operadores comparativos Operador NomeFunção == Igual a Verifica se um valor é igual ao outro != Diferente de Verifica se um valor é diferente ao outro > Maior que Verifica se um valor é maior que o outro >= Maior ou igual Verifica se um valor é maior ou igual ao outro < Menor que Verifica se um valor é menor que o outro <= Menor ou igual Verifica se um valor é menor ou igual ao outro Como o nome já diz, esses Operadores são usados para comparar dois valores:
  • 22.
    operadores comparativos Vamos verexemplos da utilização de cada operador de comparação mencionado no slide anterior. Para facilitar o entendimento, todas as operações estão retornando um valor igual a True, para que vocês entendam como cada condição é aceita: return
  • 23.
    operadores de atribuição EssesOperadores são utilizados no momento da atribuição de valores à variáveis e controlam como a atribuição será realizada. Veja quais Operadores de Atribuição estão disponíveis em Python: Operador Equivalente a = x = 1 += x = x + 1 -= x = x - 1 *= x = x * 1 /= x = x / 1 %= x = x % 1
  • 24.
    operadores de atribuição *O operador % é chamado módulo pois nada mais é que o resto da divisão. No exemplo ao lado: 5 dividido por 2 dá 2 de resultado e sobra 1. Por isso numero %= 2 será 1!
  • 25.
    operadores lógicos Python nosdisponibiliza três tipos de Operadores Lógicos: o and, o or e o not. Operador Definição and Retorna True se ambas afirmações forem verdadeiras or Retorna True se uma das afirmações for verdadeira not Retorna falso se o resultado for verdadeiro
  • 26.
    operadores lógicos Exemplo dautilização de cada um:
  • 27.
  • 28.
  • 30.
    Ementa 1. Conversão detipos 2. Listas 3. Tuplas 4. Funções ○ Map ○ Filter ○ Reduce 5. Tipos de parâmetros (args, kwargs) 6. Decorator 7. Lambda
  • 31.
    Recados Importantes Ficou comDúvidas? - Fique à vontade para perguntar a qualquer momento nos nossos canais do slack e/ou buscar ajuda com os mentores/professores.
  • 32.
  • 33.
    Conversão de tipos Aconversão de dados em Python, são o uso de funções definidas que convertem diretamente um tipo de dado em outro, o que é útil na programação diária e competitiva. Existem dois tipos de conversão aqui: ● Implícita ● Explícita
  • 34.
    Conversão Implícita Na conversãoimplícita, acontece do interpretador converter automaticamente um tipo de dado em outro sem qualquer envolvimento do usuário. Vamos ver isso acontecendo com o exemplo abaixo:
  • 35.
    Conversão Explícita Diferente daconversão Implícita, esse tipo de conversão é feita manualmente pelo usuário de acordo com seus requisitos, existem várias formas de conversão que se pode fazer nesse tipo, usando as funções do Python: ● int(a, base): essa função converte qualquer tipo de dado em inteiro. ‘Base’ especifica a base em que a string está se o tipo de dados for uma string ● float(): função usada para converter qualquer tipo de dados em um float, literalmente. ● str(): usada para converter números inteiros em strings ● dict(): usada para converter tuplas em dicionário ● ord(): função usada para converter qualquer caractere em um inteiro ● hex(): função que converte número inteiro em uma string hexadecimal* ● oct(): converte um número inteiro em octal ● tupla: converte para uma tupla …
  • 36.
    Conversão Explícita Aqui temosalguns exemplos de conversão sendo feitas no código, contudo vocês conseguem ver uma lista de tipos de conversão na documentação oficial: https://docs.python.org/3/library/functions.html
  • 37.
  • 38.
    Listas Uma lista, nadamais é que uma coleção ordenada de valores, onde cada valor é identificado por índices. Em Python representamos uma lista separando os dados por vírgula, dentro de colchetes. Elas são utilizadas para armazenar diversos itens em uma única variável e existem várias maneiras de serem criadas.
  • 39.
    Listas Podemos criar umalista de uma maneira bem simples, apenas envolvendo os elementos por colchetes: Podemos criar uma lista vazia:
  • 40.
    Listas Também é possívelcriar uma lista com vários itens e de diferentes tipos: Podemos obter uma lista através de compreensão de listas (List Comprehensions)*
  • 41.
    Listas Como acessar osdados de uma lista? Todos os itens de uma lista são indexados, ou seja, para cada item da lista um índice é atribuído ao mesmo, para acessar esses itens é necessário que especifiquemos o índice, lembrando, o índice começa no 0. No código ficaria assim:
  • 42.
    Listas E para pegaro último item da lista? Uma forma de buscar o último item, ou itens mais próximos ao fim, é usando indexação negativa. A indexação negativa, vai buscar os itens do fim, logo, se eu quiser buscar o Abacaxi de uma forma mais simples, basta eu fazer assim:
  • 43.
    Listas Lista dentro delista? Sim, é possível! Assim como no exemplo, para acessarmos a sub-lista é necessário que busquemos onde o índice da mesma está.
  • 44.
    Listas Percorrendo uma lista Seprecisarmos percorrer uma lista, a melhor forma é usarmos loop. Por exemplo, dada uma lista grande de elementos, eu quero buscar somente aqueles que forem maior que 10:
  • 45.
    Listas É importante sabercomo manusear uma lista, em python temos vários métodos que estão disponíveis para nos ajudar nisso, confira comigo alguns deles: ● list.append(x): adiciona um item ao fim da lista ● list.extend(iterable): adiciona todos os itens do iterável ao fim da lista ● list.insert(i, x): insere um item em uma dada posivel (i) dada pelo index ● list.remove(x): remove o primeiro elemento cujo o valor for “x” ● list.pop(i): remove o item da posição i da lista e retorna, caso o index não seja especificado, retona o último elemento. ● list.clear(): remove tudo da lista ● list.index(x[, start[, end]]): retorna o indice do primeiro elemento cujo valor seja x. ● list.count(x): retorna o número de vezes que x aparece na lista ● list.sort(key=nome, reverse=False): ordena os itens da lista ● list.reverse(): reverte os elementos da lista ● list.copy(): retorna uma lista com a cópia dos elementos da lista de origem. …
  • 46.
  • 47.
  • 48.
    Listas Entendo o queé List Comprehensions e porquê usá-las. Compreensão de listas foi concebida na PEP 202 e é uma forma concisa de criar e manipular listas. Basicamente é a forma mais rápida de criar uma lista através de outra. Python oferece diferentes formas de iteração, mas list comprehensions é mais otimizada para o interpretador python detectar um padrão previsível durante o loop, e como bônus ela é mais legível e economiza variáveis na contagem. Veja um exemplo:
  • 49.
  • 50.
    Tuplas Python oferece diferentestipos de estruturas de dados, entre elas as listas que acabamos de ver e as tuplas, que podem causar algumas dúvidas devido a semelhança entre elas. Contudo, é necessário entender o conceito que envolve cada uma para utilizá-las da maneira correta. Tupla, é uma estrutura parecida com listas, mas com a característica de ser imutável. Isso significa que quando uma tupla é criada, não há a possibilidade (entre aspas)* de adicionar, remover, ou alterar seus elementos. Geralmente são utilizadas para adicionar tipos diferentes de informações, podemos utilizar uma tupla para adicionar, por exemplo, a sigla do estado em uma posição e o nome em outra, tornando-a boa para ser usada quando queremos trabalhar com informações diferentes em uma mesma variável.
  • 51.
    Tuplas Sua característica deimutabilidade oferece segurança nas informações armazenadas, sendo assim, uma tupla vai ser usada para armazenar uma sequência de dados que não serão modificados no decorrer do código. Entretanto, *ela não é totalmente imutável, pois quando armazena outro objeto como uma lista, os dados armazenados nesse elemento podem ser modificados. Ah, mas é preciso entender que esse tipo de alteração não é feita na estrutura da tupla, apenas no conteúdo desse objeto, que é passado como referência. Assim:
  • 52.
  • 53.
    Funções Uma função éuma sequência de comandos que executa uma tarefa, sua principal finalidade é nos ajudar a organizar programas em pedaços que correspondam a como imaginamos uma solução do problema. No python, além de podermos criar funções, temos a opção de usar funções embutidas que estão disponíveis para nos ajudar a escrever nosso programa e economizar tempo, pois estaremos utilizando funções existentes e não precisaremos criar. Na documentação oficial: https://docs.python.org/pt-br/3/library/functions.html , temos a lista dessas funções, hoje vamos ver três tipos delas: ● Map ● Filter ● Reduce
  • 54.
    Funções Primeiramente, vamos focarnas três funções mais poderosas do Python, pois os três principais pilares da programação funcional é mapear, filtrar e reduzir …
  • 55.
    Funções map() - Syntaxmap(função, iteráveis) Utilizamos esta função quando precisamos realizar uma operação específica nos itens da lista e transformá-los em outra coisa. Ex: [🐮, 🥔, 🐔].map(cook) = [🍔, 🍟, 🍗]
  • 56.
    Funções filter() - Syntaxfilter(função, iteráveis) Utilizamos o filter() quando precisamos filtrar elementos da lista. Ex: [🍔,🍟,🍗].filter(veggie) = [🍟]
  • 57.
    Funções reduce() - Syntaxreduce(função, iteráveis) Esta função aplica uma operação em todos os elementos da lista reduzindo a apenas um elemento. Agora, diferente das outras duas, essa função não é diretamente do interpretador, precisamos importar o módulo functools. Ex: [👨,🚑,💉].reduce(build) = 🏥
  • 58.
    Funções reduce() - Syntaxreduce(função, iteráveis) Esta função aplica uma operação em todos os elementos da lista reduzindo a apenas um elemento. Agora, diferente das outras duas, essa função não é diretamente do interpretador, precisamos importar o módulo functools. Ex: [👨,🚑,💉].reduce(build) = 🏥
  • 59.
    Funções O que fazerpara criar uma função? A sintaxe de uma função é definida por três partes: nome, parâmetros e corpo, o qual agrupa uma sequência de linhas que representa algum comportamento. No código abaixo, temos um exemplo de declaração de função em Python que tem como objetivo imprimir o parâmetro passado. Uma função só é executada quando chamamos por ela, observe que não só criamos a função foo, como logo abaixo a chamamos passando o parâmetro. Execute o código abaixo e no canal do slack informe qual foi sua saída.
  • 60.
    Lições Extras Vamos exercitaro que aprendemos de funções? Entrada: lista = [100, 248.90, 88, 124.90] def desconto(preco): return preco * (1 - 0.1) 1 - Dada uma lista com n valores, aplicar a função de desconto usando map() 2 - Retornar os valores maiores que 100, usando filter() 3 - Somar todos os valores da lista usando reduce() Saída: 1 - [90.0, 224.01000000000002, 79.2, 112.41000000000001] 2 - [248.9, 124.9] 3 - 561.8
  • 61.
  • 62.
    Parâmetros Parâmetros são osnomes dados aos atributos que uma função pode receber, são eles que definem quais são os argumentos aceitos por uma função, podendo ou não ter um valor padrão. Temos aqui um exemplo de uma função recebendo dois parâmetros, um de valor que é obrigatório e um de horas, que não é obrigatório porque tem um valor padrão, porém pode ser modificado se informado.
  • 63.
    Parâmetros *args e **kwargs Aspalavras args e kwargs são apenas usadas como convenção, poderia receber qualquer outro nome: *params, **kparams, por exemplo. Afinal, o que são? *args é usado para passar uma lista de argumentos variável sem palavras chaves em forma de tupla, pois a função que recebe não necessariamente saberá quantos argumentos serão passados. Exemplo:
  • 64.
    Parâmetros … e **kwargs: Éa abreviação de keyword arguments, ele permite passar um dicionário com inúmeras chaves para a função. Isso deixa definido que tal função irá receber tais valores, pronto.
  • 65.
  • 66.
    Decorator Lá na PEP318, veio a proposta de melhoria na linguagem, que propôs o decorator, que nada mais é do que um método para envolver uma função, modificando o seu comportamento. Dá um olhada no código abaixo, que tem a seguinte saída: >>> Estou antes da execução da função passada como argumento >>> Sou um belo argumento >>> Estou depois da execução da função passada como argumento
  • 67.
    Decorator Usando decorator conseguimosadicionar qualquer comportamento antes e depois da execução de uma função qualquer. Podemos usar o decorator com o @, que fará o mesmo papel de como se estivessemos chamando a função da imagem anterior, mostrarei um exemplo útil de utilização de decorator, colocando o @ em cima da função que será decorada.
  • 68.
  • 69.
    Lambda Não é lambida,é LAMBDA! É aqui que todo dev corre até entender de fato o que são, só que funções lambdas são como todas as outras: funções normais. Exceto pelo fato de não ter um nome para defini-la e estar contida em uma linha de código. A sintaxe é assim:
  • 70.
    Lambda Uma função lambdafunciona da seguinte forma: você dá à função um valor (argumento) e então fornece a operação (expressão). A palavra lambda vem na frente, depois vem “:” e o argumento. Quais são os pós de usá-las? ● Bom para operações lógicas simples que são fáceis de entender, isso torna o código mais legível também ● Bom para funções que serão usadas apenas uma vez. E os contras? ● Elas só podem executar uma única expressão, por isso tem que ser usada somente no simples ● Se a função abrange mais de uma linha, esquece, não funcionará ● Dependendo do contexto ela vai ser executada somente uma
  • 71.
    Lambda Usei em slidesanteriores a função lambda para facilitar os resultados, nas compreensões de lista, nas funções de filter, map, reduce. Contudo, vou mostrar um exemplo que deixa claro como podemos reduzir uma função simples, que busca os valores pares de uma lista, em uma linha.
  • 72.
    Lambda Funções lambdas pornão ser nomeadas, são funções que chamamos de anônimas. Outro exemplo para fixar:
  • 73.
  • 74.