In [1]:
lista1 = [1, 2, 3, 4, 5]
lista2 = ['um', 'dois', 'três', 'quatro', 'cinco']
lista3 = [1, 'dois', 3.0, 4, 'cinco']
print('lista1 é uma lista apenas do tipo int: ', lista1)
print('lista2 é uma lista apenas do tipo str: ', lista2)
print('lista3 é uma lista apenas contendo variáveis de tipos int, str e float: ', lista3)
In [2]:
print('O primeiro elemento de lista1 é : ', lista1[0])
print('O quarto elemento de lista1 é : ', lista1[3])
In [3]:
print('O último elemento da lista1 é: ', lista1[-1])
print('O penúltimo elemento da lista1 é: ', lista1[-2])
lista[ pos_inicial : pos_final : passo ]
pos_inicial
é a primeira posição da faixa, pos_final
é um elemento após a última posição da faixa e passo
representa de quanto em quanto queremos pegar os elementos.
In [7]:
print('Do segundo ao quarto elemento de 1 em 1: ', lista1[1:4:1])
print('Do segundo até o final de 2 em 2: ', lista1[1::2])
print('Do primeiro elemento até o final de 3 em 3: ', lista1[::3])
print('Do primeiro elemento até o final de trás para frente: ', lista1[::-1])
=
:lista[ indice ] = novo_valor
indice
é a posição que queremos alterar e novo_valor
é o novo valor a ser atribuído nessa posição da lista.lista[ indice ] = lista[ indice ] + var
lista[ indice ] = lista[ indice ] * var
var
pode ser um valor numérico ou uma variável contendo um valor numérico.
In [10]:
lista1[1] = 5
print('O novo valor da segunda posição é: ', lista1[1])
lista1[1] = lista1[1]*2
print('A segunda posição teve seu valor dobrado: ', lista1[1])
lista1[1] = lista1[0] + lista1[2]
print('A segunda posição agora é a soma da posição anterior e da posterior: ', lista1[1])
In [11]:
lista = []
for i in range(1,101):
lista.append(i)
print(lista)
In [14]:
def f(x):
return x**2 - 3*x
lista1 = []
lista2 = []
for x in range(1,101):
lista1.append( x**2 ) # lista1 é composta de i elevado ao quadrado
lista2.append( f(x) ) # lista2 é composta de f(i) para todo i pertencente a
print(lista1)
print()
print(lista2)
In [15]:
lista = [f(x) for x in range(1,101)]
print(lista)
In [17]:
lista = [ 2*x if x%2==0 else x**2 for x in range(1,101)]
print(lista)
In [18]:
lista = []
for x in range(1,101):
if x%2==0:
lista.append(2*x)
else:
lista.append(x**2)
print(lista)
In [20]:
In [21]:
lista = [1,2,3]
for x in lista:
print(x)
In [ ]:
In [22]:
def Fibonacci(n):
F = [1,1]
for i in range(2,n+1):
F.append(F[i-1] + F[i-2])
return F
print(Fibonacci(10))
In [ ]:
def MaiorMenor(lista):
maior = ???
menor = ???
for x in lista:
if x > maior:
maior = ???
if ???:
menor = x
return maior, menor
dict
dict
, no Python representa um mapa de associações entre dois conceitos.dicionario = { chave1 : valor, chave2 : valor, ... }
valor
é um valor associado a essa chave.
In [24]:
estados = {'São Paulo' : 'SP', 'Rio de Janeiro' : 'RJ', 'Minas Gerais' : 'MG'}
cidades = {'SP' : 645, 'RJ' : 92, 'MG' : 853}
In [29]:
print('A abreviação de "São Paulo" é', estados['São Paulo'])
print('A abreviação de "Minas Gerais" é', estados['Minas Gerais'])
print('Rio de Janeiro tem', cidades[estados['Rio de Janeiro']], 'cidades')
In [31]:
cidades['RJ'] = cidades['RJ'] - 1
print('Rio de Janeiro perdeu uma cidade e agora ele tem: ', cidades['RJ'],'cidades')
In [32]:
print(cidades['RS'])
In [34]:
if 'RS' in cidades:
print(cidades['RS'])
else:
print('Não consta esse estado!')
In [35]:
print('O Rio Grande do Sul tem', cidades.get('RS', 0), 'cidades')
In [ ]:
def ContaPalavras(lista):
frequencia = {}
for palavra in lista:
frequencia[palavra] = ???
return frequencia
print(ContaPalavras(['eu', 'vou', 'tirar', 'dez', 'nessa', 'prova', 'ou', 'eu', 'reprovo']))
GeraCifra(n)
para que ela crie um dicionário que associe uma certa letra do alfabeto com a n-ésima letra seguinte. Ex.:letras
contém todas as letras do alfabeto na sequência e que letra[0] == 'a'
e letra[1] == 'b'
.
In [ ]:
import string
def GeraCifra(n):
letras = string.ascii_lowercase
cifra = {}
for i in range(len(letras)):
cifra[letras[i]] = ???
return cifra
print(GeraCifra(2))
In [ ]:
def Codifica(frase, n):
cifra = GeraCifra(n)
codificado = ''
for i in range(len(frase)):
codificado = codificado + ???
return codificado
code = Codifica('eu vou tirar dez', 4)
print('A frase codificada é:', code)
print('Por que consigo decodificar com esse comando?', Codifica(code, -4))
In [52]:
dicionario = { 'a':1, 'b':2, 'c':3 }
for chave, valor in dicionario.items():
print(chave, '=>', valor)
numpy.array
numpy.array
, proveniente da biblioteca numpy
, especifica uma estrutura de vetores e matrizes para cálculos vetoriais, matriciais e de álgebra linear.
In [54]:
import numpy as np
v1 = np.array( range(20) )
v2 = np.array( range(100,120) )
print(v1)
print(v2)
In [56]:
print( v1 + 1 )
print()
print( v1 * 10 )
print()
print( v1 + v2 )
print()
print( v1 * v2 )
In [58]:
print('O primeiro elemento de v1 é',v1[0])
print('O último elemento de v1 é',v1[-1])
print('Os elementos de 2 até 10 de 2 em 2 de v1 são', v1[2:11:2])
In [84]:
v1 = np.array([1,10,100,1000,10000,5000,500,50,5])
v2 = np.array([1,0,1,0,1,0,1,0,1])
print( v1[ v2==1 ] )
VerificaPrimo(x)
que retorna True
se o número x é primo e False
caso contrário.Primos(n)
que retorna os números primos entre 1 e n. Para isso implemente o seguinte algoritmo:### Atribua o valor 0 para a posição 0 e 1, indicando que eles não são primos
### Para todo número de 2 até n, faça:
In [78]:
def VerificaPrimo(x):
for i in range(2,x):
if x%i == 0: # se encontrar um i que divide x, retorna falso
return False
return True # se não encontrou nenhum divisível, retorna verdadeiro
def Primos(n):
primos = np.ones(n+1) # vetor de tamanho n+1 com tudo igual a 1
numeros = np.arange(n+1)
primos[???] = 0
for atual in range(2,n+1):
if primos[???] == 1:
if VerificaPrimo(???):
primos[???] = 0
return numeros[???]
print(Primos(25))
In [59]:
matriz = np.array( [[1, 2, 3], [4, 5, 6], [7, 8, 9]] )
print(matriz)
In [60]:
print(matriz+1)
print()
print(matriz*2)
In [61]:
matriz2 = np.power(matriz, 2)
print(matriz2)
print()
matriz3 = np.sqrt(matriz)
print(matriz3)
In [62]:
print(matriz + matriz2)
print()
print(matriz * matriz2)
In [69]:
print(np.dot(v1, v2)) # produto interno
print()
print(np.outer(v1[:3], v2[:3])) # produto externo entre os 3 primeiros elementos de cada vetor
In [71]:
print(matriz @ matriz2) # multiplicação de matriz
print()
print(np.linalg.inv(matriz)) # inversa da matriz
print()
print(matriz.T) # transposta da matriz
In [86]:
def GeraID(nomes):
id = 0
mapa = {}
for nome in nomes:
mapa[???] = ???
id = ???
return mapa
In [87]:
def MatrizAmizade( relacoes ):
n = len(relacoes)
Amizades = np.zeros( (n,n) )
for relacao in relacoes:
Amizades[ ??? ] = 1
return Amizades
In [ ]: