Enviar um café pro programador

Mostrando postagens com marcador *. Mostrar todas as postagens
Mostrando postagens com marcador *. Mostrar todas as postagens

Ponto de Interrogação, Asterisco e Sinal de Adição em Regex (Tutorial parte 4)

Neste quarto tutorial sobre Regex em Python, vamos aprender a usar três caracteres importantes em expressões regulares:
  1. Ponto de interrogação: ?
  2. Asterisco: *
  3. Sinal de soma: +

Interrogação em Regex: ?

Usamos o símbolo de interrogação ? quando queremos que um determinado padrão seja opcional.
Ou seja, se tiver lá, ok. Se não tiver, ok também.

A regex é assim:
  • r'padrao1 (padrao2)? padrao3'

Ou seja, vai em busca do padrao1, tem que ter ele.
Já o padrao2 é um grupo opcional, não é obrigatório que esteja lá, pois usamos o caractere ?
Por fim, busca o padrao3.

Por exemplo, vamos fazer script que detecta os seguintes formatos de número de telefone:
xx yyyy-zzzz
xx yyyyzzzz

Ou seja, o hífen é opcional. Tanto faz se o usuário digitar ou não.
Se é tanto faz, temos que usar o caractere de interrogação ?




Veja como fica o código:

import re

while True:
 texto = input("Digite sua string: " )

 minhaRegex = re.compile(r'\d{2} \d{4}(-)?\d{4}?')
 resultado = minhaRegex.search(texto)
 print(resultado.group())

Note que, como tem grupos na Regex, usamos os métodos compile e o search.
A única de diferente que fizemos foi colocar o hífen num grupo (parêntesis) e colocamos o ? depois dele, pra simbolizar que ele é opcional.

Veja agora:
Certificado do curso (para trabalhar como programador profissional)

Asterisco em Regex: *

O símbolo de asterisco, em expressões regulares em Python, quer dizer 'corresponde a zero ou mais ocorrências'. Ele vem depois de um grupo, e quer dizer:
'Ei, esse padrão aqui, pode ocorrer nenhuma vez, uma, duas, três...um milhão, tanto faz'

Por exemplo, vamos supor que queiramos detectar os seguintes padrões de números de telefone:
  • xx yyyy-zzzz
  • xxyyyy-zzzz
  • xx  yyyy-zzzz
  • xx       yyyy-zzzz

Ou seja, entre o DDD e o número pode ter nenhum espaço, um, dois, vários espaços (nunca duvide da capacidade do usuário de fazer me..sbla).


Tudo que temos que fazer é adicionar o grupo: ( )*
Ele diz: "Python, pode ter um espaço vazio aí, nenhum, talvez dois...ou 1 bilhão, ok?'

Vejamos como fica nosso script:

import re

while True:
 texto = input("Digite sua string: " )

 minhaRegex = re.compile(r'\d{2}( )*\d{4}-\d{4}?')
 resultado = minhaRegex.search(texto)
 print(resultado.group())


Leia: Apostila Python Progressivo

Sinal de Adição em Regex Python: +

O caractere de adição tem uma função bem parecida com o de asterisco.
A diferença é que, no asterisco, ele corresponde a zero ou mais ocorrências de um determinado grupo.

No símbolo de adição, ele corresponde a uma ou mais ocorrências daquele determinado grupo.
Ou seja, aquela ocorrência tem que ocorrer pelo menos uma vez.

Se você desejar que sua regex detectadora de número de telefone tenha pelo menos um espaço entre o DDD e o número, para detectar:
  • xx yyyy-zzzz
  • xx  yyyy-zzzz
  • xx   yyyy-zzzz

Basta colocar + após grupo ( ). Veja como fica nosso código Python:

import re

while True:
 texto = input("Digite sua string: " )

 minhaRegex = re.compile(r'\d{2}( )+\d{4}-\d{4}?')
 resultado = minhaRegex.search(texto)
 print(resultado.group())


Cheias de possibilidades, essas regex, não ?

Operações Matemáticas no Python - Adição (+), Subtração (-), Multiplicação (*), Divisão (/), Exponenciação (**) e Resto da divisão ( % )

Computação...já parou pra pensar o que significa?
Vem de computar, que significa calcular.

Sim, basicamente o que um computador fazer é isso: contas. Muitas e bem rápido.

Neste tutorial de nosso Curso de Python, vamos aprender a somar, subtrair, multiplicar, dividir, exponenciar e calcular o resto da divisão (que diacho é isso?)

Leia também:

Eu quero obter certificado Python Progressivo e Entrar no Mercado de Trabalho!



Como Somar em Python: +

O operador de soma, em Python, é...adivinha, o símbolo: +
Surpresa, hein?

Vamos fazer um script que pede um número inteiro ao usuário, armazena em var1, depois outro inteiro e armazena em var2.

Em seguida, fazemos a soma desses dois números e armazenamos na variável soma, e printamos a soma. Digite e rode o seguinte código:
var1 = int( input("Digite um inteiro: ") )
var2 = int( input("Digite outro inteiro: ") )

soma = var1 + var2

print(soma)

Legal, né ?

Como Subtrair em Python: -

Se você achou que o símbolo de subtração, em Python, fosse o - , parabéns, você é sério candidato para ganhar o próximo prêmio Nobel.

Vamos criar um script que pede dois números, subtrai um do outro e exibe o resultado:
var1 = int( input("Digite um inteiro: ") )
var2 = int( input("Digite outro inteiro: ") )

subtracao = var1 - var2

print(subtracao)

Note que você só pode fazer a subtração depois de fornecer os números.
Se fizer o 'subtracao = var1 - var2' no começo, vai dar um erro, pois o Python ainda não sabe que valores estão em var1 e var2, pois você ainda não forneceu nada!



Como Multiplicar em Python: *

Finalmente algo diferente! Sim, o símbolo de multiplicar não é x, é o asterisco *

var1 = int( input("Digite um inteiro: ") )
var2 = int( input("Digite outro inteiro: ") )

produto = var1 * var2

print(produto)

Escreva o código acima, rode ele, várias vezes, faça testes, coloque a mão na massa, ok? Só ficar passando o olho aqui não vai te fazer um bom programador Python.

É precisa codar, ou seja, digitar os códigos, na mão!




Como Dividir em Python: /

Já o símbolo de dividir é o /
Ou seja: 4/2 = 2

Veja o script que pede dois números ao usuário e exibe a divisão deles:

var1 = int( input("Digite um inteiro: ") )
var2 = int( input("Digite outro inteiro: ") )

divisao = var1 / var2

print(divisao)

Teste: Na segunda variável, que vai ser o denominador, teste colocar 0.
O que aconteceu? Por quê ?


Divisão inteira em Python: //

Quando usamos a barra para dividir, ela vai dar o resultado completo da divisão, ou seja, incluindo a parte decimal. Por exemplo: 5 / 2 = 2.5

Porém, em algumas ocasiões, queremos nos livrar dessa parte 'quebrada' e ficar apenas com a parte inteira. Para isso, usamos duas barras: //

5 / 4 = 1.25
5//4 = 1

1 / 3 = 0.333333
1//3 = 0

Esse ato de tirar essa parte decimal se chama truncar.

-8 / 5 = -1.6
-8//5 = -2

Você pode achar estranho o último resultado, mas não é. O que as duas barras fazem é tirar a parte decimal, e deixar sempre o menor inteiro. Mas lembre-se que em matemática -1 é MAIOR que -2, então tem que arredondar pra baixo, pro menor número, que é -2.

O que o operador // faz, na verdade, é arredondar para o menor valor inteiro, ok?

Se você colocar o resultado da divisão sendo -1, vai estar arredondando para cima, e não é isso que o operador // faz.

Exponenciação em Python: **

Exponenciar, se você já esqueceu, é o famoso 'elevar' e seu símbolo são dois asteriscos juntos: **

Por exemplos, 3 elevado a 2:
3 ** 2 = 9, pois 3x3 =9

3 elevado a 3:
3 ** 3 = 27, pois 3x3x3=27

Rode o seguinte script:

var1 = int( input("Digite um inteiro: ") )
var2 = int( input("Digite outro inteiro: ") )

exp = var1 ** var2

print(exp)


Teste: Use números enormes, gigantescos, medonhos.
E aí, o Python calculou ? Foi rápido? Fodástico esse Python, não é?

Resto da Divisão: %

Essa operação talvez você não lembre.
Vamos voltar lá pra escolinha, quando fazíamos as continhas de dividir, lembra?

Tinha o dividendo, o divisor, o quociente e o resto, veja:

Para saber o resto da divisão de um número por outro, usamos o operador %
Veja o resto da divisão de números pares por 2, teste:


var1 = int( input("Digite um inteiro: ") )
var2 = int( input("Digite outro inteiro: ") )

resto = var1 % var2

print(resto)

Vai dar sempre 0 né?
Agora teste o resto da divisão de um número ímpar por 2.
O resto vai ser sempre um.

Vamos usar o operador de resto da divisão para isso, por exemplos: achar números pares. Vamos usar também para achar números primos também!

É um operador muito importante e útil no mundo da programação, ok?

Exercício Mais Importante de Python

Ok! Agora, você vai precisar fazer este exercício.
Só continue em nosso curso se resolver ele.

Nem que fique grande, feio ou confuso, mas faça esse exercício.

Exercício: Crie um programa em Python que peça dois números ao usuário.
Em seguida, você vai mostrar a soma, subtração, multiplicação, divisão, exponenciação e resto da divisão do primeiro número pelo segundo.

Tem que ficar bonitinho e organizadinho assim, o resultado:

Curso de Python


Vídeo aula 

Assista também esse conteúdo em vídeo, no Youtube: