{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Listas e Funções\n",
"\n",
"Agora que você já aprendeu sobre listas, vamos ver algumas funções que podem ser usadas com elas.\n",
"\n",
"Vamos começar relembrando algumas funções que você já aprendeu sobre listas.
\n",
"Se tiver dúvidas, reveja o [notebook sobre listas](08-listas.ipynb).\n",
"\n",
"## Acessando elementos\n",
"Esse exercício é para relembrar como acessamos elementos de uma lista.\n",
"\n",
"Na célula abaixo mostre o segundo elemento da lista:"
]
},
{
"cell_type": "code",
"execution_count": 1,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"n = [1, 3, 5]\n",
"\n",
"# Escreva o seu código abaixo\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Modificando elementos\n",
"Também já vimos como modificar elementos.
\n",
"Na linha 3 da célula abaixo, multiplique o segundo elemento da lista `n` por 5 e sobrescreva o segundo elemento com o resultado da multiplicação.
\n",
"Ao final mostre o conteúdo da lista."
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"n = [1, 3, 5]\n",
"# Escreva o seu código abaixo\n",
"\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Adicionando elementos à lista\n",
"\n",
"Na célula abaixo use a função `.append(elemento)` para adicionar o número 4 ao final lista."
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"[1, 3, 5]\n"
]
}
],
"source": [
"n = [1, 3, 5]\n",
"# Adicione o número 4 aqui\n",
"\n",
"print(n)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Várias maneiras de remover elementos de listas\n",
"\n",
"Existem diversas formas de remover elementos de listas. \n",
"\n",
"#### .pop(indice)\n",
"Começaremos com `.pop(indice)`. Ela removerá o elemento no índice `indice` e o retornará para você:\n"
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"3\n",
"[1, 5]\n"
]
}
],
"source": [
"n = [1, 3, 5]\n",
"elemento = n.pop(1)\n",
"# retorna 3 (o elemento no índice 1)\n",
"print(elemento)\n",
"print(n)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"#### .remove(elemento)\n",
"`.remove(elemento)` vai remover o próprio elemento assim que encontrá-lo:"
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"[3, 5]\n"
]
}
],
"source": [
"n = [1, 3, 5]\n",
"n.remove(1) # Remove o elemento 1 da lista, não o elemento no índice 1\n",
"print(n)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"#### del(lista[indice])\n",
"\n",
"`del(lista[indice])` irá remover o elemento de `lista` na posição `indice`, retornando nada."
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"[1, 5]\n"
]
}
],
"source": [
"n = [1, 3, 5]\n",
"del(n[1]) # Remove o elemento em n[1] e retorna nada\n",
"print(n)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Na célula abaixo, remova o primeiro elemento de `n` usando qualquer uma das funções acima."
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"[1, 3, 5]\n"
]
}
],
"source": [
"n = [1, 3, 5]\n",
"# Remova o primeiro elemento da lista n\n",
"\n",
"print(n)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Alterando o que uma função faz\n",
"\n",
"Na célula abaixo modifique a função `funcao` para que ela multiplique por 7 o argumento recebido e o retorne."
]
},
{
"cell_type": "code",
"execution_count": 12,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"8\n"
]
}
],
"source": [
"numero = 5\n",
"\n",
"def funcao(x):\n",
" return x + 3\n",
"\n",
"print(funcao(numero))"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Na célula abaixo, defina uma função chamada `soma` que possui dois parâmetros `a` e `b` e retorna a soma deles. "
]
},
{
"cell_type": "code",
"execution_count": 13,
"metadata": {},
"outputs": [
{
"ename": "NameError",
"evalue": "name 'soma' is not defined",
"output_type": "error",
"traceback": [
"\u001b[0;31m---------------------------------------------------------------------------\u001b[0m",
"\u001b[0;31mNameError\u001b[0m Traceback (most recent call last)",
"\u001b[0;32m\u001b[0m in \u001b[0;36m\u001b[0;34m()\u001b[0m\n\u001b[1;32m 5\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 6\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m----> 7\u001b[0;31m \u001b[0mprint\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0msoma\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mx\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0my\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m",
"\u001b[0;31mNameError\u001b[0m: name 'soma' is not defined"
]
}
],
"source": [
"x = 5\n",
"y = 13\n",
"# Defina soma aqui\n",
"\n",
"\n",
"\n",
"print(soma(x, y))"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Na célula abaixo, escreva uma função chamada `funcao_string` que recebe uma string `s` como argumento e retorna esse argumento concatenado com a palavra `mundo`. Não adicione um espaço antes de mundo.\n"
]
},
{
"cell_type": "code",
"execution_count": 14,
"metadata": {},
"outputs": [
{
"ename": "NameError",
"evalue": "name 'funcao_string' is not defined",
"output_type": "error",
"traceback": [
"\u001b[0;31m---------------------------------------------------------------------------\u001b[0m",
"\u001b[0;31mNameError\u001b[0m Traceback (most recent call last)",
"\u001b[0;32m\u001b[0m in \u001b[0;36m\u001b[0;34m()\u001b[0m\n\u001b[1;32m 4\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 5\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m----> 6\u001b[0;31m \u001b[0mprint\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mfuncao_string\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mentrada\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m",
"\u001b[0;31mNameError\u001b[0m: name 'funcao_string' is not defined"
]
}
],
"source": [
"entrada = \"Hello\"\n",
"# Escreva a sua função aqui\n",
"\n",
"\n",
"\n",
"print(funcao_string(entrada))"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Nós podemos passar uma lista para uma função, do mesmo jeito que passamos qualquer argumento. Veja o exemplo abaixo:"
]
},
{
"cell_type": "code",
"execution_count": 15,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"[3, 5, 7]\n"
]
}
],
"source": [
"def funcao_lista(x):\n",
" \"\"\"Não faz nada, apenas retorna a lista recebida x\"\"\"\n",
" return x\n",
"\n",
"n = [3, 5, 7]\n",
"print(funcao_lista(n))"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Funções disponíveis para serem usadas com listas\n",
"\n",
"Vejamos algumas funções úteis que já estão disponíveis em Python e que podem ser usadas com listas. Veja algumas dessas funções célula abaixo:"
]
},
{
"cell_type": "code",
"execution_count": 17,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"10\n",
"-10\n",
"5\n"
]
}
],
"source": [
"lista = [-10, -5, 5, 10]\n",
"\n",
"# Mostrando o maior valor em uma lista\n",
"print(max(lista))\n",
"# Mostrando o menor valor em uma lista\n",
"print(min(lista))\n",
"# Mostrando o valor absoluto de um elemento\n",
"print(abs(-5))"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Dada a lista abaixo, modifique a lista para que todos os elementos fiquem com o sinal trocado, depois mostre o maior e o menor elemento da lista modificada."
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"numeros = [2, -3, -8, 5, -4, 10, -2, 1, 0 ]\n",
"\n",
"# Escreva o seu código aqui\n"
]
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.6.2"
}
},
"nbformat": 4,
"nbformat_minor": 2
}