quinta-feira, 19 de março de 2020

Sets em Python

Sets em Python


Sets são coleções não ordenadas e não indexáveis. Nas listas e nas tuplas a ordem em que os elementos são adicionados na coleção é a ordem em que os elementos ficaram indexados. Nos sets isso não acontece. Quando um set é criado todos os valores são embaralhados. Sets são criados com chaves.
Exemplo
sets = {'Abacaxi', 'Banana', 'Melão'}
print(sets)
Os elementos de set são desordenados, então você não pode saber qual é a ordem em que os elementos apareceram.

Acessando elementos de um set

Não é possível acessar um elemento especifico de um set. Isso porque os elementos de set não são indexáveis. Uma forma de checar um elemento é através do operador in.
Exemplo
sets = {'Abacaxi', 'Banana', 'Melão'}
‘Abacaxi’ in sets
É possível mostrar os elementos de um set com o loop for.
Exemplo
sets = {'Abacaxi', 'Banana', 'Melão'}
for i in sets:
  print(i)

Alterando valores de um set

Não é possível alterar o valor de um elemento especifico em um set, mais é possível adicionar mais elementos.

Adicionando elementos a um set

Para adicionar novos elementos a um set são utilizadas os métodos add() e update(). O método add adiciona apenas um elemento por vez, e o método update adiciona vários elementos de uma vez só.
Exemplo
sets = {'Abacaxi', 'Banana', 'Melão'}
sets.add('Maçã')
print(sets)

sets.update(['Goiaba','Kiwi','Acerola'])
print(sets)
Repare que o método update recebe uma lista como entrada.

Qual é o numero de elementos em sets

O tamanho do set pode ser obtido com a função len(), que retorna um numero inteiro, esse numero é o numero de elementos de um set.
Exemplo
sets = {'Abacaxi', 'Banana', 'Melão'}
print(len(sets))

Removendo itens de um set

Para remover um item de um set pode ser utilizado o método remove() ou discard(). Os dois métodos recebem o elemento que será removido como entrada. A diferença entre o remove e o discard é que, o método remove vai gerar um erro se o elemento que esta sendo removido não existir no set e o discard não.
Exemplo
sets = {'Abacaxi', 'Banana', 'Melão'}
print(sets)
sets.remove('Banana')
print(sets)
sets.discard('Melão')
print(sets)
Outro método para remover um elemento de um set é com o método pop(). Com o pop sempre o último elemento do set é removido.
Exemplo
sets = {'Abacaxi', 'Banana', 'Melão'}
print(sets)
sets.pop()
print(sets)
sets.pop()
print(sets)
Uma coisa interessante da função pop, é que ela retorna o elemento que foi removido do set.
Exemplo
sets = {'Abacaxi', 'Banana', 'Melão'}
print(sets)
print('O elemento que foi removido do set é: ' + sets.pop())
print(sets)
Também é possível remover elementos de um set com o método clear() e a palavra reservada del. Lembrando que del faz com que a variável deixe de existir e o método clear apenas remove todos os elementos do set.
Exemplo
sets1 = {'Abacaxi', 'Banana', 'Melão'}
sets2 = {'Abacaxi', 'Banana', 'Melão'}
del sets1 # a variável sets1 não existe mais
sets2.clear()
print(sets2)

Juntando dois sets

Para juntar dois sets usaremos o método update() e o método union(). Com os dois métodos os valores duplicados serão excluídos.
Exemplo
sets1 = {'Abacaxi', 'Banana', 'Melão'}
sets2 = {1, 2, 3}
sets3 = sets1.union(sets2)
print(sets3)

sets1.update(sets2)
print(sets1)

Tuplas em Python

Tuplas em Python


Tuplas são basicamente listas, com uma única diferença: Tuplas não podem ser alteradas depois de criadas. As tuplas são permanentes. Para criar uma tupla em python é utilizado parênteses.
Exemplo
tupla = ('Abacaxi', 'Banana', 'Melão')
print(tupla)
print(type(tupla))

Acessando elementos de uma tupla

Você pode acessar os elementos de uma tupla individualmente, assim como nas listas.
Exemplo
tupla = ('Abacaxi', 'Banana', 'Melão')
print(tupla[2])

Index negativo

Com o index negativo a contagem dos elementos começa do último elemento para o primeiro.
Exemplo
tupla = ('Abacaxi', 'Banana', 'Melão')
print(tupla[-1])

Intervalo de índices

É possível acessar um bloco de elementos de uma tuple, com o intervalo de índices.
Exemplo
tupla = ('Abacaxi', 'Banana', 'Melão', 'Goiaba', 'Maça', 'Kiwi', 'Limão')
print(tupla[2:5])
O elemento dois vai ser mostrado e o elemento cinco não. Lembre-se que o index das tuplas começa em zero. Fica mais fácil entender se você imaginar que antes dos elementos existe uma divisão e é essa divisão que os números dois e cinco representam.

Loop for com tuplas

As tuplas podem ser usadas nos loops for.
Exemplo
tupla = ('Abacaxi', 'Banana', 'Melão', 'Goiaba', 'Maça', 'Kiwi', 'Limão')
for i in tupla:
  print(i)
Vamos aprender mais sobre o loop for nos próximos post.

Verificando a existência de um elemento

Podemos verificar se um elemento, especifico, existe na nossa tupla com o operador in.
Exemplo
print('Melão' in tupla)

Quantos elementos minha tupla tem?

Para saber quantos elementos uma tupla tem só precisamos utilizar a função len(). A função len retorna um numero inteiro, esse numero é o numero de elementos da tupla.
Exemplo
tupla = ('Abacaxi', 'Banana', 'Melão', 'Goiaba', 'Maça', 'Kiwi', 'Limão')
print(len(tupla))

Juntando duas tuplas

Para juntar os elementos de uma tuplas será preciso criar uma nova tupla com os elementos das duas tuplas anteriores. Isso acontece, pois, a tupla depois de criada não pode ser alterada.
Exemplo
tupla1 = ('Abacaxi', 'Banana', 'Melão')
tupla2 = (1, 2, 3)
tupla3 = tupla1 + tupla2
print(tupla3)

Métodos das tuplas

A tupla tem dois métodos específicos, o count() que retorna o numero de vezes que o elemento passado como parâmetro existe na tupla, e o index, que retorna a posição do index que o elemento se encontra.
Exemplo
tupla = ('Abacaxi', 'Abacaxi', 'Abacaxi', 'Melão')
print('A tupla tem ' + str(tupla.count('Abacaxi')) + ' elementos abacaxi')
print('O elemento Melão está na posição ' + str(tupla.index('Melão')))

terça-feira, 17 de março de 2020

Listas em Python

Listas em Python

A lista em python pode ser usada para criar uma coleção de dados. Esses dados podem ser do tipo string, do tipo numérico, e até mesmo, outra coleção de dados como a própria lista. Para criar uma lista é usado colchetes.
Exemplo
lista = ['Abacaxi', 'Melão', 'Banana']
print(lista)

Acessando elementos de uma lista

Os elementos de uma lista podem ser acessados de maneira independente. Para isso é utilizado o index do elemento. Lembrando que o index começa em zero.
Exemplo
lista = ['Abacaxi', 'Melão', 'Banana']
print(lista[1])
Nesse exemplo o primeiro elemento (Abacaxi) tem o index zero, o elemento segundo elemento (Melão) tem o index um e o terceiro (Banana) tem o index dois.

Index negativo

O index negativo é muito útil para acessar o último elemento de uma lista, sem necessariamente saber o seu o numero do seu index.
Exemplo
lista = ['Abacaxi', 'Melão', 'Banana']
print(lista[-1])
Com o index negativo a contagem começa do último elemento para o primeiro. E com o index negativo a contagem não começa do zero mais sim do um. No exemplo acima o primeiro elemento é a banana, o segundo o melão e o último o abacaxi.

Intervalos em uma lista

Com uma lista também é possível acessar um intervalo especifico. Em muitos casos não é necessário mostrar a lista toda, só uma parte. E isso é possível utilizando o intervalo de uma lista.
Exemplo
lista = ['Ana', 'Bruno', 'Fabiana', 'Maria', 'Eduardo', 'Fernanda', 'Samira']
print(lista[2:]) # monstra do terceiro elemento até o último
print(lista[:-1]) # monstra do primeiro elemento até o penúltimo
print(lista[2:5]) # monstra do elemento dois ao quatro
Ajuda a entender melhor se você imaginar uma divisão antes do elemento.

Mudando o valor de um elemento de uma lista

Além de poder ler o conteúdo de um único elemento de uma lista, também é possível alterar o valor desse único elemento individualmente.
Exemplo
lista = ['Abacaxi', 'Banana', 'Melão']
lista[1] = 'Goiaba'
print(lista[1])

Usando uma lista em um loop

Uma coisa muito útil na linguagem python é o loop for por uma lista. É possível acessar cada elemento de uma lista individualmente por um loop. E o numero de elementos de uma lista é o numero de vezes que o loop será executado.
Exemplo
lista = ['Abacaxi', 'Banana', 'Melão']
for i in lista:
  print(i)
Aprenderemos mais sobre o loop for nos próximos posts.

Verificando a existência de um elemento

Podemos verificar se um elemento existe na nossa lista com o operador in.
Exemplo
print('Abacaxi' in lista)

Comprimento de uma lista

Para saber o comprimento de uma lista podemos utilizar a função len(). A função len retorna um numero inteiro. O numero retornado é a quantidade de elementos em uma lista.
Exemplo
print(len(lista))

Adicionando elementos a uma lista

Para adicionar elementos a uma lista em python podemos utilizar dois métodos da lista: o appdend() e o insert(). O método append adiciona um elemento no final da lista, e o insert adiciona o elemento na posição informada.
Exemplo
lista = ['Abacaxi', 'Banana', 'Melão']
# adiciona o elemento goiaba na última posição
lista.append('Goiaba')
print(lista)

# adiciona o elemento maça no index 1
# vai ficar entre Abacaxi e Banana
lista.insert(1, 'Maçã')
print(lista)

Removendo um elemento de uma lista

Remover um elemento de uma lista é muito fácil com o método remove.
Exemplo
lista = ['Abacaxi', 'Banana', 'Melão']
print(lista)

lista.remove('Banana')
print(lista)
Para remover uma lista inteira utilizamos a palavra reservada del.
Exemplo
del lista
Utilizando del a variável deixa de existir. Para apenas deixar a lista vazia podemos utilizar o método clear().
Exemplo
lista = ['Abacaxi', 'Banana', 'Melão']
print(lista)

lista.clear()
print(lista)

Copiando uma lista

O primeiro método que você deve ter pensado para copiar uma lista deve ser este: lista2 = lista1. Desse jeito você não vai copiar uma lista, mais sim referenciando a lista1 pela lista2. Todas as alterações feitas na lista2 vão afetar a lista1. O método correto de copiar uma lista é utilizando o método copy().
Exemplo
lista1 = ['Abacaxi', 'Banana', 'Melão']
lista2 = lista1.copy()
lista2.append('Maçã')
print(lista1)
print(lista2)

Juntando duas listas

Existem alguns métodos para juntar duas listas. O jeito mais rápido é com o operador + e com o método extend().
Exemplo
lista1 = ['Abacaxi', 'Banana', 'Melão']
lista2 = [1, 2, 3]
lista3 = lista1 + lista2
print(lista3)

lista2.extend(lista1)
print(lista2)

Operadores em Python

Operadores em Python

Os operadores são usados em variáveis e valores. O sua operação muitas vezes depende do tipo de dado na operação e da própria operação.
Python divide os operadores nos seguintes grupos:
  • Operadores aritméticos
  • Operadores de atribuição
  • Operadores de comparação
  • Operadores lógicos
  • Operadores de identidade
  • Operadores de associação
  • Operadores Bit a Bit

Operadores aritméticos em python

Os operadores aritméticos são usados da mesma forma que são usados nas expressões matemáticas.
Operador Nome Exemplo
+ Adição 2 + 1
- Subtração 2 - 1
* Multiplicação 2 * 2
/ Divisão 2 / 2
** Potenciação 2**3
% Resto 3 % 2
// Divisão Exata 3 // 2
Na divisão (/) se não der pra fazer uma divisão exata o resto da divisão é perdido.
O resto (%) é a sobra de uma divisão, por exemplo, dividindo três por dois vai da um pra cada e sobra um. Esse é o resto da divisão e o resultado de resto.
Na divisão exata não há resto. O restante é quebrado em casas decimais. O resultado de uma divisão com resto vai ser sempre do tipo float. Por exemplo, dividindo três por dois o resultado será um e meio.

Operadores de atribuição em python

O operador de atribuição cria uma nova variável ou atribui um novo valor a variável.
Operador Exemplo O mesmo que...
= a = 3 a = 3
+= a += 3 a = a + 3
-= a -= 3 a = a - 3
*= a *= 3 a = a * 3
/= a /= 3 a = a / 3
%= a %= 3 a = a % 3
//= a //= 3 a = a // 3
**= a **= 3 a = a**3
&= a &= 3 a = a & 3
|= a |= 3 a = a | 3
^= a ^= 3 a = a ^ 3
>>= a >>= 3 a = a >> 3
<<= a <<= 3 a = a << 3

Operadores de comparação em python

Operador Nome Exemplo
== Igual a == a
!= Diverente a != b
> Maior que 5 > 3
< Menor que 3 < 5
>= Maior ou igual a >= b
<= Menor ou igual a <= b
Os operadores de comparação retornam True ou False.

Operadores lógicos em python

Os operadores lógicos trabalham com blocos de expressões.
O operador and (e) retorna True se as duas expressões estiverem certas, e False se uma estiver errada ou as duas.
Exemplo Python
print(3 < 9 and 4 < 5) # Retorna True
print(3 < 9 and 8 > 9) # Retorna False
O operador or (ou) retorna True se qualquer uma das expressões estiver certa e retorna False somente se todas as expressões estiverem erradas.
Exemplo Python
print(3 < 9 or 4 < 5) # Retorna True
print(3 < 9 or 8 > 9) # Retorna True
print(3 > 9 or 8 > 9) # Retorna False
O operador not inverte o valor de uma expressão. Se a expressão for verdadeira, se torna falsa e vice-versa.
Exemplo Python
print(5 > 3) # Retorna True
print(not 5 > 3) # Retorna False

Operadores de identidade em python

O operador de identidade é usado para saber se um objeto é o mesmo objeto, e não se eles têm o mesmo valor. Se eles forem o mesmo objeto o resultado será verdadeiro. Se eles forem objetos diferentes mais com o mesmo conteúdo o resultado será falso.
Exemplo Python
a = ["abacaxi", "banana"]
b = ["abacaxi", "banana"]
c = a

# Returna True porque c é o mesmo objeto que a
print(c is a)

# Retorna False porque não são o mesmo objeto mesmo com o mesmo valor
print(a is b)

# Retorna True porque o operador igual compara os valores e não os objetos
print(a == b)
O operador is not é uma negação do operador is.
Exemplo Python
a = ["abacaxi", "banana"]
b = ["abacaxi", "Maçã"]

# returna True porque a e b não são o mesmo objeto
print(a is not b)

Operadores de associação em python

O operador de associação verifica se um elemento faz parte de outro elemento maior. Esse elemento pode ser uma string, uma lista, etc.
Exemplo Python
a = 'uma pequena string'
lista = ['uma', 'pequena', 'string']

# Retorna True pois a string a contém a string 'pequena'
print('pequena' in a)

# Retorna True pois a lista contém uma string 'pequena'
print('pequena' in lista)

# Retorna False porque a lista não contém uma string 'grande'
print('grande' in lista)
O operador not in retorna True se o elemento buscado não existir no elemento onde a busca é feita.
Exemplo Python
a = 'uma pequena string'

# Retorna True pois a string 'grande' não existe na string a
print('grande' not in a)
Os operadores bit a bit serão abordados em outro post.

segunda-feira, 16 de março de 2020

Booleano em Python

Booleano em Python

Um dado do tipo booleano só pode receber dois valores, True e False, ou 1 e 0. Em muitas ocasiões a sua função só precisa retornar verdadeiro ou falso. Imagine uma função onde você passa um numero e precisa saber se esse número é primo ou não. Nesse caso a única resposta necessária é sim ou não, True ou False.
Exemplo
def ehprimo(x):
  x = x % 2
  return x > 0

print(ehprimo(9))
Não se preocupe se você não entendeu o código, a criação de funções será explicada nos próximos posts. O importante é saber que em certos casos uma resposta sim ou não é suficiente. Podemos obter o mesmo resultado dessa forma:
Exemplo
print((9%2) > 0)
Nesse exemplo a sobra da divisão de 9 por dois é 1 que é maior que 0, assim a expressão é verdadeira (True).
Os operadores de comparação só retornam True ou False.
Exemplo
print(2 > 0) # 2 é maior que 0? Sim (True)
print(2 == 3) # 2 é igual a 3? Não (False)
print(2 < 3) # 2 é menor que 3? Sim (True)

Função bool()

A função bool() retorna True ou False. Qualquer valor passado para a função diferente de 0, False, None, lista vazia, tupla vazia e um dicionário vazio, vai retornar True.
Exemplo
print(bool(False)) # Valor False
print(bool(None)) # Sem valor
print(bool(0)) # 0
print(bool("")) # String vazia
print(bool(())) # uma tupla vazia
print(bool([])) # uma lista vazia
print(bool({})) # um dicionário vazio

domingo, 15 de março de 2020

String em Python

String em Python

String é uma cadeia de caracteres. Em python uma string pode ser definida usando aspas simples ou duplas.
Exemplo
a = 'aspas simples'
b = "aspas duplas"
Para mostrar o conteúdo de uma variável, do tipo string, a função print pode ser usada com aspas simples ou dupla.
Exemplo
print('uma string com aspas simples')
print("uma string com aspas duplas")

String de múltiplas linhas

Até só fizemos uso de strings de uma única linha, na maioria dos casos uma linha é o suficiente. Para adicionar uma string com múltiplas linhas utilizamos aspas triplas, simples ou duplas.
Exemplo
a = """Lorem ipsum dolor sit amet,
consectetur adipiscing elit,
sed do eiusmod tempor incididunt
ut labore et dolore magna aliqua."""
print(a)

b = '''Lorem ipsum dolor sit amet,
consectetur adipiscing elit,
sed do eiusmod tempor incididunt
ut labore et dolore magna aliqua.'''
print(b)
O mesmo efeito pode ser obtido utilizando o \n.
Exemplo
c = 'Lorem ipsum dolor sit amet,\nconsectetur adipiscing elit.'

String é uma matriz

String é uma matriz, uma sequência de caracteres. Em outras linguagens de programação não existe um tipo de dado string, existe o caractere. Para criar uma string é criada uma matriz do tipo caractere. Em python não existe um tipo de dado do tipo caractere. Se uma variável for criada com um único caractere, ela será do tipo string com comprimento igual a um. Sabendo que uma string é uma matriz, podemos acessar cada elemento dessa matriz separadamente.
Exemplo
a = 'Acervo Lima'
print(a[7]) # mostra o oitavo elemento da string a.
No exemplo acima colocamos um 7 para mostrar o oitavo elemento pois o index da string começa em zero. Por exemplo, se nesse exemplo quiséssemos mostrar o 'A' da palavra acervo faríamos assim: print(a[0]).

Partindo uma string

Em alguns casos precisamos pegar uma pequena parte da string, em outras linguagens é preciso acessar cada célula da matriz, com python isso não é necessário.
Exemplo
a = 'Acervo Lima'
print(a[7:]) # imprime da oitava posição até o fim da string
print(a[:6]) # imprime da primeira posição até a sexta
print(a[7:10]) # imprime da oitava posição até a décima posição

Qual é o tamanho de uma string?

Para saber qual é o tamanho de uma string (quantos caracteres ela tem), utilizamos a função len(). A função len vai retornar um valor inteiro, esse é o numero de caracteres de uma string.
Exemplo
a = 'Acervo Lima'
b = len(a)
print(b)
print('Numero de caracteres da variável a: ' + str(b))

Métodos do tipo de dado string

O método lower é utilizado para retornar a string toda em minúscula.
Exemplo
a = 'ACERVO LIMA'
print(a.lower())
# Lembre-se que a função lower não altera o valor da variável
print(a)
O método upper faz exatamente o oposto do método lower, retorna a string toda em maiúscula.
Exemplo
a = 'Acervo Lima'
print(a.upper())
O método replace coloca uma string no lugar de outra.
Exemplo
a = 'Acervo Lima'
print(a.replace('Lima', 'Silva'))
O método split (partir) quebra a string e retorna uma lista com cada palavra da string.
Exemplo
a = 'Acervo Lima'
print(a.split())
Se uma string for passada como argumento do método split, essa string vai ser o ponto de partida da string.
Exemplo
a = 'Uma%string%um%pouco%maior.'
print(a.split('%')) # o valor padrão do método split é um espaço.
Lembre-se que utilizando esses métodos o valor original da variável não é alterado. Para tornar as alterações permanentes atribua o resultado do método a própria variável.
Exemplo
a = 'Acervo Lima'
a = a.replace('Lima', 'Silva')
print(a)

Procurando numa string

Se você precisar saber se uma string contém uma outra string podemos utilizar o in.
Exemplo
a = 'Nem sempre é amigo aquele que te tira do buraco. - Saddam Hussein'
b = 'amigo' in a
print(b) # True se a palavra amigo estiver na varável a

Juntando duas string ou mais

Para concatenar uma string ou mais é só utilizar o operador +
Exemplo
a = 'Acervo'
b = 'Lima'
c = a + b
d = a + ' ' + b
print(c)
print(d)

Caracteres especiais

Alguns caracteres de uma string vão gerar um erro, para evitar isso se utilizada \.
Exemplo
print("Billy \"The Kid\"")
# esse problema também pode ser resolvido utilizando aspas simples se o texto tiver as duplas, e vice-versa.
print('Billy "The Kid"')

quinta-feira, 12 de março de 2020

Números em Python

Números em Python

Existem três tipos de variáveis no python que podem guardar números: int, float e complex.
Exemplo Python
a = 1 # int
b = 3.8 # float
c = 1j # complex
Para verificar qual é o tipo de uma variável é usado a função type(). A função type retorna o tipo da variável.
Exemplo Python
print(type(a))
print(type(b))
print(type(c))

Int

Int ou inteiro é um numero sem ponto flutuante, ele pode ser positivo ou negativo.
Exemplo Python
a = 1
b = 8746532984654129
c = -764533

print(type(a))
print(type(b))
print(type(c))

Float

Float é um número com ponto flutuante, com casas decimais.
Exemplo Python
a = 1.10
b = 1.0
c = -35.59

print(type(a))
print(type(b))
print(type(c))
Float também pode ser usado para guardar números em notação cientifica. O “e” indica a potencia de 10.
Exemplo Python
a = 35e3 # 35.000.00 em notação cientifica
b = 12E4 # 120.000.00 em notação cientifica

print(type(a))
print(type(b))

Complex

Números complexos são escritos com a letra j como a parte imaginaria.
Exemplo Python
a = 3+5j
b = 5j
c = -5j

print(type(x))
print(type(y))
print(type(z))

Convertendo tipos

Todos os tipos de números podem ser convertidos em outro, com exceção dos números complexos.
Exemplo Python
x = 1 # inteiro
y = 2.8 # ponto flutuante
z = 1j # complexo

# convertendo inteiro para float:
a = float(x)
# convertendo float para inteiro
# na conversão os numeros decimais são perdidos:
b = int(y)

# convertendo inteiro para complexo:
c = complex(x)

print(a)
print(b)
print(c)

print(type(a))
print(type(b))
print(type(c))

Covertendo string em número

Uma string pode ser convertida em um numero inteiro ou de ponto flutuante.
Exemplo Python
a = ‘45’
b = int(a)
print(type(b))

a = ‘8.9’
b = float(a)
print(type(b))