<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Anna Karolina</title>
    <description>The latest articles on DEV Community by Anna Karolina (@iannak).</description>
    <link>https://dev.to/iannak</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F567853%2Fabff7d9a-0aed-435c-9d95-3e5f1bc94dc9.jpeg</url>
      <title>DEV Community: Anna Karolina</title>
      <link>https://dev.to/iannak</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/iannak"/>
    <language>en</language>
    <item>
      <title>Typescript</title>
      <dc:creator>Anna Karolina</dc:creator>
      <pubDate>Mon, 21 Aug 2023 01:11:10 +0000</pubDate>
      <link>https://dev.to/iannak/typescript-5fao</link>
      <guid>https://dev.to/iannak/typescript-5fao</guid>
      <description>&lt;ol&gt;
&lt;li&gt;any: É um tipo que permite que uma variável possa ter qualquer tipo de valor. Nenhuma verificação de tipo é realizada em tempo de compilação e nenhuma ajuda de autocompletar é fornecida. É usado quando o tipo de uma variável é desconhecido ou não precisa ser especificado.&lt;/li&gt;
&lt;li&gt;arrays: Um array é uma estrutura de dados que armazena uma coleção ordenada de elementos. Em TypeScript, arrays podem ser declarados com um tipo específico de elementos (por exemplo, number[] para um array de números).&lt;/li&gt;
&lt;li&gt;tuples: Uma tupla é uma estrutura de dados que permite armazenar um conjunto de elementos com tipos diferentes, e a quantidade de elementos é fixa e conhecida. Cada elemento da tupla pode ter um tipo&lt;/li&gt;
&lt;li&gt;Enum (Enumeração): Um enum é um tipo de dados que permite definir um conjunto de constantes nomeadas. Isso é útil para melhorar a legibilidade do código, pois você pode atribuir nomes significativos a valores inteiros. &lt;/li&gt;
&lt;li&gt;Function Return (Retorno de Função): Em TypeScript, você pode especificar o tipo de valor que uma função retorna. Isso ajuda a documentar o comportamento da função e a capturar erros de tipo em tempo de compilação. &lt;/li&gt;
&lt;/ol&gt;

</description>
    </item>
    <item>
      <title>Introdução de Python</title>
      <dc:creator>Anna Karolina</dc:creator>
      <pubDate>Sun, 12 Jun 2022 00:13:58 +0000</pubDate>
      <link>https://dev.to/iannak/introducao-de-python-19mj</link>
      <guid>https://dev.to/iannak/introducao-de-python-19mj</guid>
      <description>&lt;p&gt;Para quem usa Windows vá em &lt;a href="http://www.python.org/downloads/"&gt;www.python.org/downloads/&lt;/a&gt; e baixe Python 3.5.2. Ao instalar não esqueça de marcar o check 'Add Python 3.5 to PATH'.&lt;/p&gt;

&lt;p&gt;Para quem usa Linux ou Mac sugiro este tutorial de instalação com pyenv.&lt;/p&gt;

&lt;p&gt;&lt;code&gt;python -V&lt;br&gt;
IPython&lt;br&gt;
sudo -H pip install ipython&lt;/code&gt;&lt;br&gt;
Python é interpretado&lt;br&gt;
O que são os *.pyc?&lt;/p&gt;

&lt;p&gt;Contém os bytecodes compilados a partir do arquivo .py.&lt;/p&gt;

&lt;p&gt;Python é uma linguagem interpretada. Mas também compila. Leia mais aqui.&lt;/p&gt;

&lt;p&gt;O Python também pode gerar um .exe para Windows. Veja py2exe.&lt;/p&gt;
&lt;h1&gt;
  
  
  Tipagem Dinâmica
&lt;/h1&gt;

&lt;p&gt;exemplo:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;&amp;gt;&amp;gt;&amp;gt; a = 42
&amp;gt;&amp;gt;&amp;gt; type(a)
&amp;lt;class 'int'&amp;gt;
&amp;gt;&amp;gt;&amp;gt; b = 3.14
&amp;gt;&amp;gt;&amp;gt; type(b)
&amp;lt;class 'float'&amp;gt;
&amp;gt;&amp;gt;&amp;gt; t = 'palavra'
&amp;gt;&amp;gt;&amp;gt; type(t)
&amp;lt;class 'str'&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h1&gt;
  
  
  O interpretador Python
&lt;/h1&gt;

&lt;p&gt;`$ python&lt;br&gt;
Python 3.5.0 (default, Dec  8 2015, 01:17:16) &lt;br&gt;
[GCC 4.8.4] on linux&lt;br&gt;
Type "help", "copyright", "credits" or "license" for more information.&lt;/p&gt;

&lt;blockquote&gt;
&lt;blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;`&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;h1&gt;
  
  
  Executando programas Python direto pelo terminal.
&lt;/h1&gt;

&lt;p&gt;&lt;code&gt;$ python -c "print(40 + 2)"&lt;br&gt;
&lt;/code&gt;&lt;/p&gt;
&lt;h1&gt;
  
  
  Indo além do Hello World
&lt;/h1&gt;


&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;from datetime import datetime
from time import sleep

while True:
    hora = datetime.now()
    print(hora.strftime('%H:%M:%S'))
    sleep(1)
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;h1&gt;
  
  
  eu quero ir para:
&lt;/h1&gt;


&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;for i in range(1, 11):
    j = i * i
    print(i, j)

print('fim')
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;h1&gt;
  
  
  Mão na massa
&lt;/h1&gt;
&lt;h1&gt;
  
  
  lanches.py
&lt;/h1&gt;


&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;import sys
from random import choice

lanches = ['Hot-Dog', 'X-Salada', 'Tapioca', 'Pizza', 'Batata Frita']
bebidas = ['Coca-Cola', 'Fanta', 'Guaraná', 'Suco de Laranja', 'Cerveja']
numero = input('Digite um número de 0 a 4: ')


if int(numero) &amp;gt; 4:
    print('O número digitado está fora do intervalo.')
    # Experimente digitar -5 e -6
    sys.exit(1)


def bebida():
    return choice(bebidas)


for i in range(3):
    if i == 0:
        print('Primeira refeição: %s + %s' % (lanches[int(numero)], bebida()))
    elif i == 1:
        print('Segunda refeição: %s + %s' % (lanches[int(numero)], bebida()))
    else:
        print('Terceira refeição: %s + %s' % (lanches[int(numero)], bebida()))
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;h1&gt;
  
  
  O módulo principal do Python
&lt;/h1&gt;


&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;def hello():
    print('Hello World')


if __name__ == '__main__':
    print('Oi')
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;h1&gt;
  
  
  O segredo de um código pythônico
&lt;/h1&gt;

&lt;p&gt;'''&lt;br&gt;
Um comentário de múltiplas linhas.&lt;br&gt;
Também conhecido como Docstring.&lt;br&gt;
'''&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;import os


def main():
    print('Hello world!')
    print("O'Relly")
    print('O\'Relly')

    my_sum(5, 10)

    print('=' * 10)
    text = 'O diretório atual é '
    print(text + os.getcwd())

    foods = ['maçãs', 'laranjas', 'bananas']

    for food in foods:
        print('Eu gosto de', food)

    print('Contando até dez:')
    for i in range(1, 11):
        print(i)


def my_sum(a, b):
    value = a + b

    print('%s mais %s é igual a %s' % (a, b, value))

    if value &amp;lt; 50:
        print('foo')
    elif (value &amp;gt;= 50) and \
         ((a == 42) or (b == 24)):
        print('bar')
    else:
        print('moo')

    return value  # comentário de uma linha


if __name__ == '__main__':
    main()
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h1&gt;
  
  
  Importando sua própria biblioteca
&lt;/h1&gt;

&lt;h1&gt;
  
  
  mycapitalize.py
&lt;/h1&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;def _capitalize(texto):
    return texto.capitalize()
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h1&gt;
  
  
  palavras.py
&lt;/h1&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;from mycapitalize import _capitalize

palavras = 'joaquim josé da silva xavier'
nome = []

for palavra in palavras.split():
    print(_capitalize(palavra))
    nome.append(_capitalize(palavra))

print(' '.join(nome))
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h1&gt;
  
  
  Operadores
&lt;/h1&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;(2 ** 10 + 3 * 2) / (48 - 46 + 1976 / 2 + 40)

7 / 3

7 // 3

7 % 3
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h1&gt;
  
  
  Operadores = + - * / ** % //
&lt;/h1&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;
bin(4)
bin(7)

import math
math.sqrt(25)
math.log(100,10)
math.log(27,3)
math.sin(math.pi/2)
math.pi
from math import radians, pi
radians(180)
radians(180) == pi
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h1&gt;
  
  
  Strings
&lt;/h1&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;'k' * 5
'Guido' + ' Van' + ' Rossum'
'Av. ' + str(23) + ' de Maio'
nome = 'joaquim josé da silva xavier'
nome.capitalize()
nome.lower()
nome.split()
nome.title()
nome.upper()
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h1&gt;
  
  
  Replace
&lt;/h1&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;nome.replace('a','4')
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h1&gt;
  
  
  Slices
&lt;/h1&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;palavra = 'paralelepípedo'
len(palavra)
palavra[0]
palavra[0:3]
palavra[:3]
palavra[4:8]
palavra[8:]
palavra[1:10:2]
palavra[1::2]
palavra[-1]
palavra[:-1]
palavra[::-1]

# Listas

Toda lista é mutável

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;lista = [42, 'palavra', 3.14, 2 + 3j, [1, 2, 3]]&lt;br&gt;
for i in lista: print(i)&lt;/p&gt;

&lt;p&gt;lista[0]&lt;br&gt;
lista[-1]&lt;br&gt;
lista[-1][-1]&lt;br&gt;
lista.append('mais')&lt;br&gt;
lista.remove('palavra')&lt;/p&gt;

&lt;p&gt;L = [100, 2, 80, 7, -5, 42]&lt;br&gt;
L&lt;br&gt;
L.sort()&lt;br&gt;
L&lt;/p&gt;

&lt;p&gt;N = [30, 10, 20]&lt;br&gt;
sorted(N)&lt;br&gt;
N&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;
# Pilhas com lista

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;a = ['zero', 'um', 'dois', 'três']&lt;br&gt;
a.append('quatro')&lt;br&gt;
a&lt;br&gt;
a.append('cinco')&lt;br&gt;
a&lt;br&gt;
a.pop()&lt;br&gt;
a&lt;br&gt;
a.pop(2)&lt;br&gt;
a&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;# Tuplas
São objetos imutáveis.

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;t = (1, 2, 3)&lt;br&gt;
type(t)&lt;/p&gt;
&lt;h1&gt;
  
  
  uma tupla de tuplas
&lt;/h1&gt;

&lt;p&gt;posicoes = ((1, 2), (2, 2), (5, 2), (0, 3))&lt;/p&gt;
&lt;h1&gt;
  
  
  um jeito de percorrer
&lt;/h1&gt;

&lt;p&gt;for pos in posicoes:&lt;br&gt;
    i, j = pos&lt;br&gt;
    print(i, j)&lt;/p&gt;

&lt;p&gt;print('-' * 10)&lt;/p&gt;
&lt;h1&gt;
  
  
  outra forma de percorrer
&lt;/h1&gt;

&lt;p&gt;for i, j in posicoes:&lt;br&gt;
    print(i, j)&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;# Split

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;palavras = 'joaquim josé da silva xavier'&lt;br&gt;
palavras.split()&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;# While

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;n = 1&lt;br&gt;
while(n &amp;lt; 11):&lt;br&gt;
    print('n =', n)&lt;br&gt;
n = 1&lt;br&gt;
while(n &amp;lt; 11):&lt;br&gt;
    print('n =', n)&lt;br&gt;
    n = n + 1&lt;/p&gt;

&lt;p&gt;print('Fim do loop')&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;# for

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;for n in range(1, 5):&lt;br&gt;
    print('n =', n)&lt;/p&gt;

&lt;p&gt;print('Fim do loop')&lt;br&gt;
for n in range(5):&lt;br&gt;
    for j in ['a', 'b', 'c']:&lt;br&gt;
        print('n =', n, 'e j =', j, '--&amp;gt; ', str(n) + ',' + str(j))&lt;br&gt;
letters = 'Python'&lt;br&gt;
for letter in letters:&lt;br&gt;
    print(letter)&lt;br&gt;
lista = ['', 'Dom', 'Seg', 'Ter', 'Qua', 'Qui', 'Sex', 'Sab']&lt;br&gt;
for idx, item in enumerate(lista):&lt;br&gt;
    print(idx, item)&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;# if else (condições)

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;a &amp;gt; b&lt;br&gt;
a &amp;lt; b&lt;br&gt;
a &amp;gt;= b&lt;br&gt;
a &amp;lt;= b&lt;br&gt;
a != b&lt;br&gt;
a == b&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;# Tabela verdade

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;True and True&lt;br&gt;
True and False&lt;br&gt;
False and True&lt;br&gt;
False and False&lt;br&gt;
True or True&lt;br&gt;
True or False&lt;br&gt;
False or True&lt;br&gt;
False or False&lt;br&gt;
not True&lt;br&gt;
not False&lt;br&gt;
if 2 + 2 == 4:&lt;br&gt;
    print('Ok')&lt;br&gt;
else:&lt;br&gt;
    print('Errado')&lt;br&gt;
if True:&lt;br&gt;
    print('Verdadeiro')&lt;br&gt;
else:&lt;br&gt;
    print('Falso')&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Coloque o not no exemplo anterior e veja o resultado.

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;if 3 % 2:&lt;br&gt;
    print('Três é impar')&lt;br&gt;
notas = [7, 4, 3.9]&lt;br&gt;
for nota in notas:&lt;br&gt;
    if nota &amp;gt;= 7:&lt;br&gt;
        print('Aprovado')&lt;br&gt;
    elif nota &amp;gt;= 4:&lt;br&gt;
        print('Recuperação')&lt;br&gt;
    else:&lt;br&gt;
        print('Reprovado')&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;# List Comprehensions

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;[x ** 2 for x in range(10)]&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Soma de vetores

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;a = [1, 2]&lt;br&gt;
b = [9, 18]&lt;/p&gt;

&lt;p&gt;c = []&lt;br&gt;
for i in range(len(a)):&lt;br&gt;
    c.append((a[i], b[i]))&lt;/p&gt;

&lt;p&gt;for x, y in c: print(x + y)&lt;/p&gt;

&lt;p&gt;for i in range(len(a)): print(a[i] + b[i])&lt;br&gt;
[x + y for x, y in zip(a,b)]&lt;br&gt;
list(map(sum, zip(a, b)))&lt;br&gt;
Multiplicação por escalar&lt;/p&gt;

&lt;p&gt;vec = [1, 2, 3]&lt;br&gt;
[x * 2 for x in vec]&lt;br&gt;
def vogal(c):&lt;br&gt;
    return c.lower() in 'aeiou'&lt;/p&gt;

&lt;p&gt;print(vogal('a'))&lt;br&gt;
print(vogal('b'))&lt;/p&gt;

&lt;p&gt;palavra = 'abacaxi'&lt;br&gt;
vogais = [letra for letra in palavra if vogal(letra)]&lt;br&gt;
print(vogais)&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;# type(), help(), dir()

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;lista = [3, 2, 1]&lt;br&gt;
type(lista)&lt;br&gt;
help(lista)&lt;br&gt;
dir(lista)&lt;br&gt;
type(3.14)&lt;br&gt;
type('palavra')&lt;br&gt;
dir('palavra')&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;# atribuições múltiplas

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;a, b = 0, 1&lt;br&gt;
a&lt;br&gt;
b&lt;br&gt;
c, d, e = range(3)&lt;br&gt;
c&lt;br&gt;
d&lt;br&gt;
e&lt;br&gt;
vars = ('A', 2, 'C')&lt;br&gt;
a, b, c = vars&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;# Dicionários
São coleções de valores identificados por chaves únicas.

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;{'chave': valor}&lt;/p&gt;

&lt;p&gt;uf = {'SP': 'São Paulo', 'RJ': 'Rio de Janeiro', 'MG': 'Minas Gerais'}&lt;br&gt;
uf['SP']&lt;br&gt;
uf['RJ']&lt;br&gt;
uf['PR']&lt;br&gt;
uf['PR'] = 'Paraná'&lt;br&gt;
for chave in uf:&lt;br&gt;
    print(chave)&lt;br&gt;
for chave, valor in uf.items():&lt;br&gt;
    print(chave, valor)&lt;br&gt;
for chave, valor in sorted(uf.items()):&lt;br&gt;
    print(chave, valor)&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;As chaves são sempre únicas
As chaves têm que ser objetos imutáveis
Qualquer objeto pode ser um valor
A ordem de armazenamento das chaves é indefinida
Dicionários são otimizados para acesso direto a um item pela chave, e não para acesso sequencial em determinada ordem.
Dicionários: operações básicas
Criar um dicionário vazio

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;d = {}&lt;br&gt;
d = dict()&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Acessar um item do dicionário

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;print(d[chave])&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Adicionar ou sobrescrever um item

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;d[chave] = valor&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Remover um item

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;del d[chave]&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Verificar a existência de uma chave

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;d.has_key(c)&lt;br&gt;
c in d&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Obter listas de chaves, valores e pares

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;d.keys()&lt;br&gt;
d.values()&lt;br&gt;
d.items()&lt;br&gt;
Acessar um item que talvez não exista&lt;/p&gt;

&lt;p&gt;d.get(chave, 'Python') # retorna None ou o valor default&lt;br&gt;
for nome in uf.values():&lt;br&gt;
    print(nome)&lt;br&gt;
for nome in sorted(uf.values()):&lt;br&gt;
    print(nome)&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;# Funções
`def message():
    pass
def message():
    return 'Hello World'
def soma(a, b):
    return a + b
Argumentos Posicionais
def func(a, b, c):
    print(a, b, c)

if __name__ == '__main__':
    func(a=1, c=2, b=3)
Valores padrão
def func(a, b=4, c=42):
    print(a, b, c)

if __name__ == '__main__':
    func(1)
    func(b=5, a=7, c=9)
    func(40, c=9)
def func(*args):
    print('Positional:', args)

if __name__ == '__main__':
    lista = [-1, 100, 0, 2, 3, 4]
    func(lista)
    func(*lista)
def func(*args):
    print('Positional:', args)

if __name__ == '__main__':
    lista = [-1, 100, 0, 2, 3, 4]
    func(lista)
    func(*lista)`
Argumentos Posicionais Variáveis

'''
&amp;gt;&amp;gt;&amp;gt; minimum(1, 3, -7, 9)
-7
'''

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;def minimum(*n):&lt;br&gt;
    if n:&lt;br&gt;
        mn = n[0]&lt;br&gt;
        for value in n[1:]:&lt;br&gt;
            if value &amp;lt; mn:&lt;br&gt;
                mn = value&lt;br&gt;
        return mn&lt;/p&gt;

&lt;p&gt;if &lt;strong&gt;name&lt;/strong&gt; == '&lt;strong&gt;main&lt;/strong&gt;':&lt;br&gt;
    lista = [1, 3, -7, 9]&lt;br&gt;
    print(minimum(&lt;em&gt;lista))&lt;br&gt;
python -m doctest minimum.py&lt;br&gt;
Argumentos Nomeados&lt;br&gt;
def func(&lt;/em&gt;*kwargs):&lt;br&gt;
    print('Keywords:', kwargs)&lt;/p&gt;

&lt;p&gt;if &lt;strong&gt;name&lt;/strong&gt; == '&lt;strong&gt;main&lt;/strong&gt;':&lt;br&gt;
    func(a=1, b=42)&lt;br&gt;
    dic = {'a': 1, 'b': 42}&lt;br&gt;
    func(**dic)&lt;br&gt;
Tudo misturado&lt;br&gt;
def func(a, b, c=7, *args, **kwargs):&lt;br&gt;
    print('a, b, c:', a, b, c)&lt;br&gt;
    print('args:', args)&lt;br&gt;
    for i in args:&lt;br&gt;
        print(i)&lt;br&gt;
    print('kwargs:', kwargs)&lt;br&gt;
    for k in kwargs:&lt;br&gt;
        print(k, kwargs[k])&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;if &lt;strong&gt;name&lt;/strong&gt; == '&lt;strong&gt;main&lt;/strong&gt;':&lt;br&gt;
    func(1, 2, 3, &lt;em&gt;(5, 7, 9), *&lt;/em&gt;{'A': 'a', 'B': 'b'})&lt;br&gt;
python function_all.py&lt;br&gt;
Lambda&lt;br&gt;
São funções anônimas.&lt;/p&gt;

&lt;p&gt;l = lambda x: x * 2&lt;br&gt;
print(l(3))&lt;/p&gt;

&lt;p&gt;for i in range(11):&lt;br&gt;
    l = lambda x: x * i&lt;br&gt;
    print(l(3))&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Programação funcional e lambda
# Números ímpares gerado com programação funcional e lambda.

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;nums = range(1,11)&lt;br&gt;
print(list(filter(lambda x: x % 2, nums)))&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Módulos

# gen_random_values.py

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;from datetime import date, datetime, timedelta&lt;br&gt;
from random import randint, random&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;def gen_number():&lt;br&gt;
    return randint(1, 10)&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;def gen_date(min_year=1900, max_year=datetime.now().year):&lt;br&gt;
    # gera um date no formato yyyy-mm-dd&lt;br&gt;
    start = date(min_year, 1, 1)&lt;br&gt;
    years = max_year - min_year + 1&lt;br&gt;
    end = start + timedelta(days=365 * years)&lt;br&gt;
    return start + (end - start) * random()&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;def convert_date(d):&lt;br&gt;
    # converte data no formato mês, dia, ano.&lt;br&gt;
    return d.strftime('%m/%d/%Y')&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Abra o interpretador Python

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;blockquote&gt;
&lt;blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;from gen_random_values import gen_number, gen_date, convert_date&lt;br&gt;
gen_number()&lt;br&gt;
gen_date()&lt;br&gt;
convert_date(gen_date())&lt;br&gt;
Testes&lt;br&gt;
Doctest&lt;br&gt;
'''&lt;br&gt;
square(2)&lt;br&gt;
4&lt;br&gt;
square(3)&lt;br&gt;
9&lt;br&gt;
square(4)&lt;br&gt;
16&lt;br&gt;
'''&lt;/p&gt;
&lt;/blockquote&gt;


&lt;/blockquote&gt;
&lt;br&gt;
&lt;/blockquote&gt;

&lt;p&gt;def square(n):&lt;br&gt;
    return n ** 2&lt;/p&gt;

&lt;p&gt;print(square(2))&lt;br&gt;
print(square(3))&lt;br&gt;
print(square(4))&lt;br&gt;
python -m doctest square.py&lt;br&gt;
Teste simples&lt;br&gt;
def test_par():&lt;br&gt;
    assert par(0) == True&lt;br&gt;
    assert par(1) == False&lt;/p&gt;

&lt;p&gt;if &lt;strong&gt;name&lt;/strong&gt; == '&lt;strong&gt;main&lt;/strong&gt;':&lt;br&gt;
    test_par()&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;python par.py
Definição: Seja P o conjunto dos números inteiros pares, então:

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;P = {x \in \Z | x = 2y, y \in \Z}&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Número par é todo número que ao ser dividido por dois deixa resto zero.

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;P = {x \in \Z | x mod 2 = 0}&lt;/p&gt;

&lt;p&gt;Arrumando o código temos:&lt;/p&gt;

&lt;p&gt;def par(n):&lt;br&gt;
    if n % 2 == 0:&lt;br&gt;
        return True&lt;br&gt;
    return False&lt;/p&gt;

&lt;p&gt;def test_par():&lt;br&gt;
    assert par(0) == True&lt;br&gt;
    assert par(1) == False&lt;br&gt;
    assert par(2) == True&lt;br&gt;
    assert par(4) == True&lt;br&gt;
    assert par(42) == True&lt;/p&gt;

&lt;p&gt;if &lt;strong&gt;name&lt;/strong&gt; == '&lt;strong&gt;main&lt;/strong&gt;':&lt;br&gt;
    test_par()&lt;br&gt;
Existe uma outra solução para este problema:&lt;/p&gt;

&lt;p&gt;def par(n):&lt;br&gt;
    return n % 2 == 0&lt;br&gt;
Unittest&lt;br&gt;
unittest&lt;/p&gt;

&lt;p&gt;import unittest&lt;/p&gt;

&lt;p&gt;class EvenNumberTest(unittest.TestCase):&lt;/p&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;def test_par(self):
    self.assertTrue(par(0))
    self.assertFalse(par(1))
    # self.assertTrue(par(2))
    # self.assertTrue(par(4))
    # self.assertTrue(par(42))
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;
&lt;p&gt;if &lt;strong&gt;name&lt;/strong&gt; == '&lt;strong&gt;main&lt;/strong&gt;':&lt;br&gt;
    unittest.main()&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;python par2.py
Agora separamos os testes colocando um assert por teste.

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;import unittest&lt;/p&gt;

&lt;p&gt;def par(n):&lt;br&gt;
    pass&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;class EvenNumberTest(unittest.TestCase):&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;def test_0(self):
    self.assertEqual(par(0), True)

def test_1(self):
    self.assertEqual(par(1), False)

def test_2(self):
    self.assertEqual(par(2), True)

def test_4(self):
    self.assertEqual(par(4), True)

def test_42(self):
    self.assertEqual(par(42), True)
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;if &lt;strong&gt;name&lt;/strong&gt; == '&lt;strong&gt;main&lt;/strong&gt;':&lt;br&gt;
    unittest.main()&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Vendo o resultado de todos os asserts.

python par3.py -v
Try/except
def divide(n, d):
    return n / d

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;if &lt;strong&gt;name&lt;/strong&gt; == '&lt;strong&gt;main&lt;/strong&gt;':&lt;br&gt;
    n = int(input('Digite um numerador:'))&lt;br&gt;
    d = int(input('Digite um denominador:'))&lt;br&gt;
    divide(n, d)&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Arrumando

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;def divide(n, d):&lt;br&gt;
    try:&lt;br&gt;
        result = n / d&lt;br&gt;
    except ZeroDivisionError as zde:&lt;br&gt;
        print(zde)&lt;br&gt;
    else:&lt;br&gt;
        print('O resultado é:', result)&lt;br&gt;
        return result&lt;/p&gt;

&lt;p&gt;if &lt;strong&gt;name&lt;/strong&gt; == '&lt;strong&gt;main&lt;/strong&gt;':&lt;br&gt;
    n = int(input('Digite um numerador:'))&lt;br&gt;
    d = int(input('Digite um denominador:'))&lt;br&gt;
    divide(n, d)&lt;br&gt;
Random&lt;br&gt;
from random import randint, random, randrange, choice&lt;br&gt;
colors = ['azul', 'amarelo', 'rosa', 'verde', 'laranja', 'cinza', 'preto', 'branco', 'marrom']&lt;br&gt;
for i in range(1,11): print(i, choice(colors))&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;
randint(10,20)
random()
randrange(0,100,10)
I/O
Ler/Escrever CSV

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Escrever&lt;br&gt;
import csv&lt;/p&gt;

&lt;p&gt;with open('file.csv', 'w') as f:&lt;br&gt;
    csv_writer = csv.writer(f)&lt;br&gt;
    csv_writer.writerow([1, 'Um', 'One'])&lt;br&gt;
    extra_rows = [[2, 'Dois', 'Two'], [3, 'Três', 'Three']]&lt;br&gt;
    csv_writer.writerows(extra_rows)&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Ler
Considere o CSV a seguir:

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;id,username,email&lt;br&gt;
1,admin,&lt;a href="mailto:admin@example.com"&gt;admin@example.com&lt;/a&gt;&lt;br&gt;
2,regis,&lt;a href="mailto:regis@example.com"&gt;regis@example.com&lt;/a&gt;&lt;br&gt;
3,pedro,&lt;a href="mailto:pedro@example.com"&gt;pedro@example.com&lt;/a&gt;&lt;br&gt;
4,aline,&lt;a href="mailto:aline@example.com"&gt;aline@example.com&lt;/a&gt;&lt;br&gt;
5,bianca,&lt;a href="mailto:bianca@example.com"&gt;bianca@example.com&lt;/a&gt;&lt;br&gt;
import csv&lt;/p&gt;

&lt;p&gt;with open('users.csv') as f:&lt;br&gt;
    users_reader = csv.reader(f)&lt;br&gt;
    for row in users_reader:&lt;br&gt;
        print(row)&lt;br&gt;
Resultado dos print do bloco anterior:&lt;/p&gt;

&lt;p&gt;['id', 'username', 'email']&lt;br&gt;
['1', 'admin', '&lt;a href="mailto:admin@example.com"&gt;admin@example.com&lt;/a&gt;']&lt;br&gt;
['2', 'regis', '&lt;a href="mailto:regis@example.com"&gt;regis@example.com&lt;/a&gt;']&lt;br&gt;
['3', 'pedro', '&lt;a href="mailto:pedro@example.com"&gt;pedro@example.com&lt;/a&gt;']&lt;br&gt;
['4', 'aline', '&lt;a href="mailto:aline@example.com"&gt;aline@example.com&lt;/a&gt;']&lt;br&gt;
['5', 'bianca', '&lt;a href="mailto:bianca@example.com"&gt;bianca@example.com&lt;/a&gt;']&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;
Note que cada row é uma lista de strings. Para retornar um dicionário podemos fazer:

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;import csv&lt;/p&gt;

&lt;p&gt;with open('users.csv') as f:&lt;br&gt;
    users_reader = csv.DictReader(f)&lt;br&gt;
    for row in users_reader:&lt;br&gt;
        print(row['id'], row['username'], row['email'])&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;
Resultado dos print do bloco anterior:

1 admin admin@example.com
2 regis regis@example.com
3 pedro pedro@example.com
4 aline aline@example.com
5 bianca bianca@example.com
JSON
todo

Orientação a Objetos
Abra o interpretador ipython e digite:

TV
`class Televisao():
    def __init__(self):
        self.ligada = False
        self.canal = 2

tv_quarto = Televisao()
tv_sala = Televisao()
tv_quarto.ligada
tv_quarto.canal
tv_sala.ligada = True
tv_sala.canal = 5
tv_sala.ligada
tv_sala.canal`

Agora crie um programa chamado tv.py.

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;class Televisao():&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;def __init__(self):
    self.ligada = False
    self.canal = 2

def muda_canal_para_baixo(self):
    self.canal -= 1

def muda_canal_para_cima(self):
    self.canal += 1
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;if &lt;strong&gt;name&lt;/strong&gt; == '&lt;strong&gt;main&lt;/strong&gt;':&lt;br&gt;
    tv = Televisao()&lt;br&gt;
    print('Canal inicial:', tv.canal)&lt;/p&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;print('Ligada:', tv.ligada)

tv.ligada = True
tv.canal = 5

print('Ligada:', tv.ligada)
print('Canal inicial:', tv.canal)
tv.muda_canal_para_cima()
print('Canal +', tv.canal)
tv.muda_canal_para_cima()
print('Canal +', tv.canal)
tv.muda_canal_para_baixo()
print('Canal -', tv.canal)
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;
&lt;p&gt;Veículos&lt;br&gt;
class Veiculo(object):&lt;/p&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;def __init__(self):
    self.porta = 0
    self.roda = 2
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;p&gt;class VeiculoMotorizado(Veiculo):&lt;/p&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;def __init__(self):
    Veiculo.__init__(self)
    self.ligado = False

def ligar_motor(self):
    self.ligado = True
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;p&gt;if &lt;strong&gt;name&lt;/strong&gt; == '&lt;strong&gt;main&lt;/strong&gt;':&lt;br&gt;
    bicicleta = Veiculo()&lt;br&gt;
    print('Bicicleta:')&lt;br&gt;
    print('Porta:' ,bicicleta.porta)&lt;br&gt;
    print('Roda:' ,bicicleta.roda)&lt;/p&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;triciclo = Veiculo()
print('Triciclo:')
triciclo.roda = 3
print('Porta:' ,triciclo.porta)
print('Roda:' ,triciclo.roda)

moto = VeiculoMotorizado()
print('Moto:')
print('Porta:' ,moto.porta)
print('Roda:' ,moto.roda)
print('Motor:' ,moto.ligado)

moto.ligar_motor()
print('Motor:' ,moto.ligado)

carro = VeiculoMotorizado()
carro.porta = 4
carro.roda = 4
carro.ligar_motor()
print('Carro:')
print('Porta:' ,carro.porta)
print('Roda:' ,carro.roda)
print('Motor:' ,carro.ligado)
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;
&lt;p&gt;Veículos melhorado&lt;/p&gt;

&lt;p&gt;class Veiculo(object):&lt;/p&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;def __init__(self, porta=0, roda=2):
    super(Veiculo, self).__init__()
    self.porta = porta
    self.roda = roda
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;p&gt;class VeiculoMotorizado(Veiculo):&lt;/p&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;def __init__(self, porta=0, roda=2, ligado=False):
    super(VeiculoMotorizado, self).__init__(porta, roda)
    Veiculo.__init__(self)
    self.ligado = ligado

def ligar_motor(self):
    self.ligado = True
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;p&gt;if &lt;strong&gt;name&lt;/strong&gt; == '&lt;strong&gt;main&lt;/strong&gt;':&lt;br&gt;
    bicicleta = Veiculo()&lt;br&gt;
    print('Bicicleta:')&lt;br&gt;
    print('Porta:', bicicleta.porta)&lt;br&gt;
    print('Roda:', bicicleta.roda)&lt;/p&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;triciclo = Veiculo()
print('Triciclo:')
triciclo.roda = 3
print('Porta:', triciclo.porta)
print('Roda:', triciclo.roda)

moto = VeiculoMotorizado()
print('Moto:')
print('Porta:', moto.porta)
print('Roda:', moto.roda)
print('Motor:', moto.ligado)

moto.ligar_motor()
print('Motor:', moto.ligado)

carro = VeiculoMotorizado()
carro.porta = 4
carro.roda = 4
carro.ligar_motor()
print('Carro:')
print('Porta:', carro.porta)
print('Roda:', carro.roda)
print('Motor:', carro.ligado)
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;
&lt;p&gt;Salas&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;# rooms.py

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;class Person(object):&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;def __init__(self, username):
    self.username = username
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;class Room(object):&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;def __init__(self, room):
    self.room = room
    self.persons = []

def add_person(self, person):
    '''
    Adiciona pessoas na lista 'persons'.
    Se for uma lista ou tupla usa 'extend'.
    Caso contrário, usa 'append'.
    '''
    if isinstance(person, (list, tuple)):
        self.persons.extend(person)
    else:
        self.persons.append(person)
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;


&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;def count_persons(self):&lt;br&gt;
        # Conta os items da lista 'persons'.&lt;br&gt;
        return len(self.persons)&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;if &lt;strong&gt;name&lt;/strong&gt; == '&lt;strong&gt;main&lt;/strong&gt;':&lt;br&gt;
    sala1 = Room('Think Lab')&lt;br&gt;
    print(sala1.room)&lt;br&gt;
    print(sala1.persons)&lt;br&gt;
    sala1.add_person('Regis')&lt;br&gt;
    sala1.add_person('Fernando')&lt;br&gt;
    print(sala1.room, sala1.count_persons(), sala1.persons)&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;sala2 = Room('Watson')
sala2.add_person('Marcia')
print(sala2.room, sala2.count_persons(), sala2.persons)

sala3 = Room('Auditório')
persons = ['Ana', 'Beatriz', 'Carlos', 'Daniel', 'Eduardo', 'Frederico']
sala3.add_person(persons)
print(sala3.room, sala3.count_persons(), sala3.persons)
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

</description>
      <category>python</category>
    </item>
    <item>
      <title>Imutabilidade de Strings no Python</title>
      <dc:creator>Anna Karolina</dc:creator>
      <pubDate>Sun, 12 Jun 2022 00:13:34 +0000</pubDate>
      <link>https://dev.to/iannak/imutabilidade-de-strings-no-python-3o00</link>
      <guid>https://dev.to/iannak/imutabilidade-de-strings-no-python-3o00</guid>
      <description>&lt;p&gt;Você provavelmente já ouviu a seguinte frase:&lt;/p&gt;

&lt;p&gt;Strings no Python são objetos imutáveis!&lt;/p&gt;

&lt;p&gt;E foi correndo para o seu terminal escrever o seguinte código:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;
palavra = "abc"
palavra = "def" 
print(palavra)
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;





&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;  # Imprime "def"
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Talvez tenha se perguntado por que esse programa funcionou... Afinal, se strings são objetos imutáveis no Python, eu não estou alterando a variável palavra de "abc" para "def"? Ou seja, "mutando" esse valor?&lt;/p&gt;

&lt;p&gt;Mais ou menos... Na verdade, estamos alterando a variável – que antes referenciava a string "abc" e passou a referenciar a string "def" – mas o valor "abc" não foi alterado!&lt;/p&gt;

&lt;p&gt;Mudando a referência da variável "palavra"&lt;/p&gt;

&lt;p&gt;Para alterar o valor, ou seja, alterar a string imutável "abc" deveríamos fazer o seguinte:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;palavra = "abc"
print(palavra[0]) 
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;





&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt; # Imprime o primeiro caractere, no caso "a "
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;





&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;palavra[0] = "x"  # Tenta alterar o primeiro caractere de "abc" para "x"
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Ao executar esse exemplo, você vai obter o seguinte erro:&lt;/p&gt;

&lt;p&gt;TypeError: 'str' object does not support item assignment&lt;/p&gt;

&lt;p&gt;Já que strings no Python são imutáveis, não podemos atribuir um novo valor a uma string depois de criada – como tentamos fazer com palavra[0] = "x". Note que escrever palavra = alguma_coisa e depois palavra = outra_coisa é alterar qual objeto nossa variável referencia, mas não o valor do objeto em si ("abc").&lt;/p&gt;

&lt;p&gt;Mutável vs Imutável&lt;br&gt;
Talvez seja mais fácil entender se compararmos com o exemplo de algum objeto mutável. Para isso, vamos utilizar a Lista (list):&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;lista = ["a", "b", "c"] 
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;





&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;# Cria uma lista com 3 elementos onde cada elemento da lista é um caractere
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;





&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;palavra = "abc"  # Cria uma string com 3 caracteres

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;





&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;lista[0] = "x"
print(lista)  # Imprime ['x', 'b', 'c']
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;





&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;palavra[0] = "x"  # TypeError!
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Como listas são objetos mutáveis em Python, a gente pode alterar o seu valor depois de criada. No caso, alteramos o valor do primeiro elemento da lista de "a" para "x".&lt;/p&gt;

&lt;p&gt;Imutabilidade e economia de memória&lt;br&gt;
Uma consequência interessante de objetos imutáveis é a economia de memória. Já que a string é imutável, significa que não importa quantas variáveis referenciem esta string, não precisamos nos preocupar em alocar memória múltiplas vezes (uma vez para cada variável), pois não existe o risco de o valor ser alterado.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;
x = "abc"  # Reserva um espaço de memória para armazenar o valor "abc"
y = "abc"  # Referencia o mesmo espaço de memória reservdo para "abc"
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;





&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;print(id(x) == id(y))  # Vai imprimir True!

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Podemos verificar o endereço de memória de um objeto utilizando o método id(obj). No exemplo acima, declaramos duas variáveis diferentes com o valor "abc" em cada uma delas. Porém, pelo fato de "abc" ser um valor imutável, o Python otimizou a utilização de memória e fez com que ambas variáveis (x e y) apontassem (ou referenciassem) para o mesmo endereço de memória onde "abc" está armazenado.&lt;/p&gt;

&lt;p&gt;Mais uma vez, vamos utilizar um exemplo utilizando listas (objeto mutável) para entender melhor:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;x = ["a", "b", "c"]
y = ["a", "b", "c"]
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;





&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;print(id(x) == id(y))  # Vai imprimir False!

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;O exemplo acima vai imprimir False pois, apesar das listas x e y armazenarem os mesmos valores (3 elementos, onde cada elemento é um caractere), o interpretador Python vai reservar o espaço de memória necessário para as duas listas, pois listas são objetos mutáveis!&lt;/p&gt;

</description>
      <category>python</category>
    </item>
    <item>
      <title>Introdução de Python</title>
      <dc:creator>Anna Karolina</dc:creator>
      <pubDate>Sat, 11 Jun 2022 22:33:51 +0000</pubDate>
      <link>https://dev.to/iannak/introducao-de-python-47n8</link>
      <guid>https://dev.to/iannak/introducao-de-python-47n8</guid>
      <description>&lt;p&gt;Para quem usa Windows vá em &lt;a href="http://www.python.org/downloads/"&gt;www.python.org/downloads/&lt;/a&gt; e baixe Python 3.5.2. Ao instalar não esqueça de marcar o check 'Add Python 3.5 to PATH'.&lt;/p&gt;

&lt;p&gt;Para quem usa Linux ou Mac sugiro este tutorial de instalação com pyenv.&lt;/p&gt;

&lt;p&gt;&lt;code&gt;python -V&lt;br&gt;
IPython&lt;br&gt;
sudo -H pip install ipython&lt;/code&gt;&lt;br&gt;
Python é interpretado&lt;br&gt;
O que são os *.pyc?&lt;/p&gt;

&lt;p&gt;Contém os bytecodes compilados a partir do arquivo .py.&lt;/p&gt;

&lt;p&gt;Python é uma linguagem interpretada. Mas também compila. Leia mais aqui.&lt;/p&gt;

&lt;p&gt;O Python também pode gerar um .exe para Windows. Veja py2exe.&lt;/p&gt;
&lt;h1&gt;
  
  
  Tipagem Dinâmica
&lt;/h1&gt;

&lt;p&gt;exemplo:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;&amp;gt;&amp;gt;&amp;gt; a = 42
&amp;gt;&amp;gt;&amp;gt; type(a)
&amp;lt;class 'int'&amp;gt;
&amp;gt;&amp;gt;&amp;gt; b = 3.14
&amp;gt;&amp;gt;&amp;gt; type(b)
&amp;lt;class 'float'&amp;gt;
&amp;gt;&amp;gt;&amp;gt; t = 'palavra'
&amp;gt;&amp;gt;&amp;gt; type(t)
&amp;lt;class 'str'&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h1&gt;
  
  
  O interpretador Python
&lt;/h1&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;$ python
Python 3.5.0 (default, Dec  8 2015, 01:17:16) 
[GCC 4.8.4] on linux
Type "help", "copyright", "credits" or "license" for more information.
&amp;gt;&amp;gt;&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h1&gt;
  
  
  Executando programas Python direto pelo terminal.
&lt;/h1&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;$ python -c "print(40 + 2)"

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h1&gt;
  
  
  Indo além do Hello World
&lt;/h1&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;from datetime import datetime
from time import sleep

while True:
    hora = datetime.now()
    print(hora.strftime('%H:%M:%S'))
    sleep(1)
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h1&gt;
  
  
  eu quero ir para:
&lt;/h1&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;for i in range(1, 11):
    j = i * i
    print(i, j)

print('fim')
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h1&gt;
  
  
  Mão na massa
&lt;/h1&gt;

&lt;h1&gt;
  
  
  lanches.py
&lt;/h1&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;import sys
from random import choice

lanches = ['Hot-Dog', 'X-Salada', 'Tapioca', 'Pizza', 'Batata Frita']
bebidas = ['Coca-Cola', 'Fanta', 'Guaraná', 'Suco de Laranja', 'Cerveja']
numero = input('Digite um número de 0 a 4: ')


if int(numero) &amp;gt; 4:
    print('O número digitado está fora do intervalo.')
    # Experimente digitar -5 e -6
    sys.exit(1)


def bebida():
    return choice(bebidas)


for i in range(3):
    if i == 0:
        print('Primeira refeição: %s + %s' % (lanches[int(numero)], bebida()))
    elif i == 1:
        print('Segunda refeição: %s + %s' % (lanches[int(numero)], bebida()))
    else:
        print('Terceira refeição: %s + %s' % (lanches[int(numero)], bebida()))
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h1&gt;
  
  
  O módulo principal do Python
&lt;/h1&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;def hello():
    print('Hello World')


if __name__ == '__main__':
    print('Oi')
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h1&gt;
  
  
  O segredo de um código pythônico
&lt;/h1&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;'''
Um comentário de múltiplas linhas.
Também conhecido como Docstring.
'''
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;





&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;import os


def main():
    print('Hello world!')
    print("O'Relly")
    print('O\'Relly')

    my_sum(5, 10)

    print('=' * 10)
    text = 'O diretório atual é '
    print(text + os.getcwd())

    foods = ['maçãs', 'laranjas', 'bananas']

    for food in foods:
        print('Eu gosto de', food)

    print('Contando até dez:')
    for i in range(1, 11):
        print(i)


def my_sum(a, b):
    value = a + b

    print('%s mais %s é igual a %s' % (a, b, value))

    if value &amp;lt; 50:
        print('foo')
    elif (value &amp;gt;= 50) and \
         ((a == 42) or (b == 24)):
        print('bar')
    else:
        print('moo')

    return value  # comentário de uma linha


if __name__ == '__main__':
    main()
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h1&gt;
  
  
  Importando sua própria biblioteca
&lt;/h1&gt;

&lt;h1&gt;
  
  
  mycapitalize.py
&lt;/h1&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;def _capitalize(texto):
    return texto.capitalize()
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h1&gt;
  
  
  palavras.py
&lt;/h1&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;from mycapitalize import _capitalize

palavras = 'joaquim josé da silva xavier'
nome = []

for palavra in palavras.split():
    print(_capitalize(palavra))
    nome.append(_capitalize(palavra))

print(' '.join(nome))
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h1&gt;
  
  
  Operadores
&lt;/h1&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;(2 ** 10 + 3 * 2) / (48 - 46 + 1976 / 2 + 40)

7 / 3

7 // 3

7 % 3
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h1&gt;
  
  
  Operadores = + - * / ** % //
&lt;/h1&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;
bin(4)
bin(7)

import math
math.sqrt(25)
math.log(100,10)
math.log(27,3)
math.sin(math.pi/2)
math.pi
from math import radians, pi
radians(180)
radians(180) == pi
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h1&gt;
  
  
  Strings
&lt;/h1&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;'k' * 5
'Guido' + ' Van' + ' Rossum'
'Av. ' + str(23) + ' de Maio'
nome = 'joaquim josé da silva xavier'
nome.capitalize()
nome.lower()
nome.split()
nome.title()
nome.upper()
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h1&gt;
  
  
  Replace
&lt;/h1&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;nome.replace('a','4')
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h1&gt;
  
  
  Slices
&lt;/h1&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;palavra = 'paralelepípedo'
len(palavra)
palavra[0]
palavra[0:3]
palavra[:3]
palavra[4:8]
palavra[8:]
palavra[1:10:2]
palavra[1::2]
palavra[-1]
palavra[:-1]
palavra[::-1]
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h1&gt;
  
  
  Listas
&lt;/h1&gt;

&lt;p&gt;Toda lista é mutável&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;lista = [42, 'palavra', 3.14, 2 + 3j, [1, 2, 3]]
for i in lista: print(i)

lista[0]
lista[-1]
lista[-1][-1]
lista.append('mais')
lista.remove('palavra')

L = [100, 2, 80, 7, -5, 42]
L
L.sort()
L

N = [30, 10, 20]
sorted(N)
N

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h1&gt;
  
  
  Pilhas com lista
&lt;/h1&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;
a = ['zero', 'um', 'dois', 'três']
a.append('quatro')
a
a.append('cinco')
a
a.pop()
a
a.pop(2)
a
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h1&gt;
  
  
  Tuplas
&lt;/h1&gt;

&lt;p&gt;São objetos imutáveis.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;t = (1, 2, 3)
type(t)
# uma tupla de tuplas


&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;posicoes = ((1, 2), (2, 2), (5, 2), (0, 3))&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;
# um jeito de percorrer

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;for pos in posicoes:&lt;br&gt;
    i, j = pos&lt;br&gt;
    print(i, j)&lt;/p&gt;

&lt;p&gt;print('-' * 10)&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;
# outra forma de percorrer
for i, j in posicoes:
    print(i, j)
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h1&gt;
  
  
  Split
&lt;/h1&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;
palavras = 'joaquim josé da silva xavier'
palavras.split()
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h1&gt;
  
  
  While
&lt;/h1&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;n = 1
while(n &amp;lt; 11):
    print('n =', n)
n = 1
while(n &amp;lt; 11):
    print('n =', n)
    n = n + 1

print('Fim do loop')
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h1&gt;
  
  
  for
&lt;/h1&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;for n in range(1, 5):
    print('n =', n)

print('Fim do loop')
for n in range(5):
    for j in ['a', 'b', 'c']:
        print('n =', n, 'e j =', j, '--&amp;gt; ', str(n) + ',' + str(j))
letters = 'Python'
for letter in letters:
    print(letter)
lista = ['', 'Dom', 'Seg', 'Ter', 'Qua', 'Qui', 'Sex', 'Sab']
for idx, item in enumerate(lista):
    print(idx, item)
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h1&gt;
  
  
  if else (condições)
&lt;/h1&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;a &amp;gt; b
a &amp;lt; b
a &amp;gt;= b
a &amp;lt;= b
a != b
a == b
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h1&gt;
  
  
  Tabela verdade
&lt;/h1&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;True and True
True and False
False and True
False and False
True or True
True or False
False or True
False or False
not True
not False
if 2 + 2 == 4:
    print('Ok')
else:
    print('Errado')
if True:
    print('Verdadeiro')
else:
    print('Falso')
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Coloque o not no exemplo anterior e veja o resultado.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;if 3 % 2:
    print('Três é impar')
notas = [7, 4, 3.9]
for nota in notas:
    if nota &amp;gt;= 7:
        print('Aprovado')
    elif nota &amp;gt;= 4:
        print('Recuperação')
    else:
        print('Reprovado')
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h1&gt;
  
  
  List Comprehensions
&lt;/h1&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;[x ** 2 for x in range(10)]

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Soma de vetores&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;a = [1, 2]
b = [9, 18]

c = []
for i in range(len(a)):
    c.append((a[i], b[i]))

for x, y in c: print(x + y)

for i in range(len(a)): print(a[i] + b[i])
[x + y for x, y in zip(a,b)]
list(map(sum, zip(a, b)))
Multiplicação por escalar

vec = [1, 2, 3]
[x * 2 for x in vec]
def vogal(c):
    return c.lower() in 'aeiou'

print(vogal('a'))
print(vogal('b'))

palavra = 'abacaxi'
vogais = [letra for letra in palavra if vogal(letra)]
print(vogais)
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h1&gt;
  
  
  type(), help(), dir()
&lt;/h1&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;lista = [3, 2, 1]
type(lista)
help(lista)
dir(lista)
type(3.14)
type('palavra')
dir('palavra')
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h1&gt;
  
  
  atribuições múltiplas
&lt;/h1&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;a, b = 0, 1
a
b
c, d, e = range(3)
c
d
e
vars = ('A', 2, 'C')
a, b, c = vars
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h1&gt;
  
  
  Dicionários
&lt;/h1&gt;

&lt;p&gt;São coleções de valores identificados por chaves únicas.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;{'chave': valor}

uf = {'SP': 'São Paulo', 'RJ': 'Rio de Janeiro', 'MG': 'Minas Gerais'}
uf['SP']
uf['RJ']
uf['PR']
uf['PR'] = 'Paraná'
for chave in uf:
    print(chave)
for chave, valor in uf.items():
    print(chave, valor)
for chave, valor in sorted(uf.items()):
    print(chave, valor)
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;As chaves são sempre únicas&lt;br&gt;
As chaves têm que ser objetos imutáveis&lt;br&gt;
Qualquer objeto pode ser um valor&lt;br&gt;
A ordem de armazenamento das chaves é indefinida&lt;br&gt;
Dicionários são otimizados para acesso direto a um item pela chave, e não para acesso sequencial em determinada ordem.&lt;br&gt;
Dicionários: operações básicas&lt;br&gt;
Criar um dicionário vazio&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;d = {}
d = dict()
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Acessar um item do dicionário&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;
print(d[chave])
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Adicionar ou sobrescrever um item&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;d[chave] = valor
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Remover um item&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;
del d[chave]
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Verificar a existência de uma chave&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;
d.has_key(c)
c in d
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Obter listas de chaves, valores e pares&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;d.keys()
d.values()
d.items()
Acessar um item que talvez não exista

d.get(chave, 'Python') # retorna None ou o valor default
for nome in uf.values():
    print(nome)
for nome in sorted(uf.values()):
    print(nome)
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h1&gt;
  
  
  Funções
&lt;/h1&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;def message():
    pass
def message():
    return 'Hello World'
def soma(a, b):
    return a + b
Argumentos Posicionais
def func(a, b, c):
    print(a, b, c)

if __name__ == '__main__':
    func(a=1, c=2, b=3)
Valores padrão
def func(a, b=4, c=42):
    print(a, b, c)

if __name__ == '__main__':
    func(1)
    func(b=5, a=7, c=9)
    func(40, c=9)
def func(*args):
    print('Positional:', args)

if __name__ == '__main__':
    lista = [-1, 100, 0, 2, 3, 4]
    func(lista)
    func(*lista)
def func(*args):
    print('Positional:', args)

if __name__ == '__main__':
    lista = [-1, 100, 0, 2, 3, 4]
    func(lista)
    func(*lista)
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Argumentos Posicionais Variáveis&lt;/p&gt;

&lt;p&gt;'''&lt;/p&gt;

&lt;blockquote&gt;
&lt;blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;minimum(1, 3, -7, 9)&lt;br&gt;
-7&lt;br&gt;
'''&lt;br&gt;
&lt;/p&gt;
&lt;/blockquote&gt;


&lt;/blockquote&gt;
&lt;br&gt;
&lt;/blockquote&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;def minimum(*n):
    if n:
        mn = n[0]
        for value in n[1:]:
            if value &amp;lt; mn:
                mn = value
        return mn

if __name__ == '__main__':
    lista = [1, 3, -7, 9]
    print(minimum(*lista))
python -m doctest minimum.py
Argumentos Nomeados
def func(**kwargs):
    print('Keywords:', kwargs)

if __name__ == '__main__':
    func(a=1, b=42)
    dic = {'a': 1, 'b': 42}
    func(**dic)
Tudo misturado
def func(a, b, c=7, *args, **kwargs):
    print('a, b, c:', a, b, c)
    print('args:', args)
    for i in args:
        print(i)
    print('kwargs:', kwargs)
    for k in kwargs:
        print(k, kwargs[k])
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;





&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;if __name__ == '__main__':
    func(1, 2, 3, *(5, 7, 9), **{'A': 'a', 'B': 'b'})
python function_all.py
Lambda
São funções anônimas.

l = lambda x: x * 2
print(l(3))

for i in range(11):
    l = lambda x: x * i
    print(l(3))
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Programação funcional e lambda&lt;/p&gt;

&lt;h1&gt;
  
  
  Números ímpares gerado com programação funcional e lambda.
&lt;/h1&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;nums = range(1,11)
print(list(filter(lambda x: x % 2, nums)))
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Módulos&lt;/p&gt;

&lt;h1&gt;
  
  
  gen_random_values.py
&lt;/h1&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;from datetime import date, datetime, timedelta
from random import randint, random
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;





&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;
def gen_number():
    return randint(1, 10)
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;





&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;def gen_date(min_year=1900, max_year=datetime.now().year):
    # gera um date no formato yyyy-mm-dd
    start = date(min_year, 1, 1)
    years = max_year - min_year + 1
    end = start + timedelta(days=365 * years)
    return start + (end - start) * random()
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;





&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;def convert_date(d):
    # converte data no formato mês, dia, ano.
    return d.strftime('%m/%d/%Y')
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Abra o interpretador Python&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;blockquote&gt;
&lt;blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;from gen_random_values import gen_number, gen_date, convert_date&lt;br&gt;
gen_number()&lt;br&gt;
gen_date()&lt;br&gt;
convert_date(gen_date())&lt;br&gt;
Testes&lt;br&gt;
Doctest&lt;br&gt;
'''&lt;br&gt;
square(2)&lt;br&gt;
4&lt;br&gt;
square(3)&lt;br&gt;
9&lt;br&gt;
square(4)&lt;br&gt;
16&lt;br&gt;
&lt;/p&gt;
&lt;/blockquote&gt;


&lt;/blockquote&gt;
&lt;br&gt;
&lt;/blockquote&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;'''

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;def square(n):&lt;br&gt;
    return n ** 2&lt;/p&gt;

&lt;p&gt;print(square(2))&lt;br&gt;
print(square(3))&lt;br&gt;
print(square(4))&lt;br&gt;
python -m doctest square.py&lt;br&gt;
Teste simples&lt;br&gt;
def test_par():&lt;br&gt;
    assert par(0) == True&lt;br&gt;
    assert par(1) == False&lt;/p&gt;

&lt;p&gt;if &lt;strong&gt;name&lt;/strong&gt; == '&lt;strong&gt;main&lt;/strong&gt;':&lt;br&gt;
    test_par()&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;python par.py&lt;br&gt;
Definição: Seja P o conjunto dos números inteiros pares, então:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;P = {x \in \Z | x = 2y, y \in \Z}

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Número par é todo número que ao ser dividido por dois deixa resto zero.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;P = {x \in \Z | x mod 2 = 0}

Arrumando o código temos:

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;def par(n):&lt;br&gt;
    if n % 2 == 0:&lt;br&gt;
        return True&lt;br&gt;
    return False&lt;/p&gt;

&lt;p&gt;def test_par():&lt;br&gt;
    assert par(0) == True&lt;br&gt;
    assert par(1) == False&lt;br&gt;
    assert par(2) == True&lt;br&gt;
    assert par(4) == True&lt;br&gt;
    assert par(42) == True&lt;/p&gt;

&lt;p&gt;if &lt;strong&gt;name&lt;/strong&gt; == '&lt;strong&gt;main&lt;/strong&gt;':&lt;br&gt;
    test_par()&lt;br&gt;
Existe uma outra solução para este problema:&lt;/p&gt;

&lt;p&gt;def par(n):&lt;br&gt;
    return n % 2 == 0&lt;br&gt;
Unittest&lt;br&gt;
unittest&lt;/p&gt;

&lt;p&gt;import unittest&lt;/p&gt;

&lt;p&gt;class EvenNumberTest(unittest.TestCase):&lt;/p&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;def test_par(self):
    self.assertTrue(par(0))
    self.assertFalse(par(1))
    # self.assertTrue(par(2))
    # self.assertTrue(par(4))
    # self.assertTrue(par(42))
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;
&lt;p&gt;if &lt;strong&gt;name&lt;/strong&gt; == '&lt;strong&gt;main&lt;/strong&gt;':&lt;br&gt;
    unittest.main()&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;python par2.py&lt;br&gt;
Agora separamos os testes colocando um assert por teste.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;import unittest


def par(n):
    pass

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;





&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;class EvenNumberTest(unittest.TestCase):

    def test_0(self):
        self.assertEqual(par(0), True)

    def test_1(self):
        self.assertEqual(par(1), False)

    def test_2(self):
        self.assertEqual(par(2), True)

    def test_4(self):
        self.assertEqual(par(4), True)

    def test_42(self):
        self.assertEqual(par(42), True)


if __name__ == '__main__':
    unittest.main()
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Vendo o resultado de todos os asserts.&lt;/p&gt;

&lt;p&gt;python par3.py -v&lt;br&gt;
Try/except&lt;br&gt;
def divide(n, d):&lt;br&gt;
    return n / d&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;if __name__ == '__main__':
    n = int(input('Digite um numerador:'))
    d = int(input('Digite um denominador:'))
    divide(n, d)
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Arrumando&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;def divide(n, d):
    try:
        result = n / d
    except ZeroDivisionError as zde:
        print(zde)
    else:
        print('O resultado é:', result)
        return result

if __name__ == '__main__':
    n = int(input('Digite um numerador:'))
    d = int(input('Digite um denominador:'))
    divide(n, d)
Random
from random import randint, random, randrange, choice
colors = ['azul', 'amarelo', 'rosa', 'verde', 'laranja', 'cinza', 'preto', 'branco', 'marrom']
for i in range(1,11): print(i, choice(colors))
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;randint(10,20)&lt;br&gt;
random()&lt;br&gt;
randrange(0,100,10)&lt;br&gt;
I/O&lt;br&gt;
Ler/Escrever CSV&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Escrever
import csv

with open('file.csv', 'w') as f:
    csv_writer = csv.writer(f)
    csv_writer.writerow([1, 'Um', 'One'])
    extra_rows = [[2, 'Dois', 'Two'], [3, 'Três', 'Three']]
    csv_writer.writerows(extra_rows)
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Ler&lt;br&gt;
Considere o CSV a seguir:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;id,username,email
1,admin,admin@example.com
2,regis,regis@example.com
3,pedro,pedro@example.com
4,aline,aline@example.com
5,bianca,bianca@example.com
import csv

with open('users.csv') as f:
    users_reader = csv.reader(f)
    for row in users_reader:
        print(row)
Resultado dos print do bloco anterior:

['id', 'username', 'email']
['1', 'admin', 'admin@example.com']
['2', 'regis', 'regis@example.com']
['3', 'pedro', 'pedro@example.com']
['4', 'aline', 'aline@example.com']
['5', 'bianca', 'bianca@example.com']
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Note que cada row é uma lista de strings. Para retornar um dicionário podemos fazer:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;import csv

with open('users.csv') as f:
    users_reader = csv.DictReader(f)
    for row in users_reader:
        print(row['id'], row['username'], row['email'])
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Resultado dos print do bloco anterior:&lt;/p&gt;

&lt;p&gt;1 admin &lt;a href="mailto:admin@example.com"&gt;admin@example.com&lt;/a&gt;&lt;br&gt;
2 regis &lt;a href="mailto:regis@example.com"&gt;regis@example.com&lt;/a&gt;&lt;br&gt;
3 pedro &lt;a href="mailto:pedro@example.com"&gt;pedro@example.com&lt;/a&gt;&lt;br&gt;
4 aline &lt;a href="mailto:aline@example.com"&gt;aline@example.com&lt;/a&gt;&lt;br&gt;
5 bianca &lt;a href="mailto:bianca@example.com"&gt;bianca@example.com&lt;/a&gt;&lt;br&gt;
JSON&lt;br&gt;
todo&lt;/p&gt;

&lt;p&gt;Orientação a Objetos&lt;br&gt;
Abra o interpretador ipython e digite:&lt;/p&gt;

&lt;p&gt;TV&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;class Televisao():
    def __init__(self):
        self.ligada = False
        self.canal = 2

tv_quarto = Televisao()
tv_sala = Televisao()
tv_quarto.ligada
tv_quarto.canal
tv_sala.ligada = True
tv_sala.canal = 5
tv_sala.ligada
tv_sala.canal
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Agora crie um programa chamado tv.py.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;class Televisao():

    def __init__(self):
        self.ligada = False
        self.canal = 2

    def muda_canal_para_baixo(self):
        self.canal -= 1

    def muda_canal_para_cima(self):
        self.canal += 1


if __name__ == '__main__':
    tv = Televisao()
    print('Canal inicial:', tv.canal)

    print('Ligada:', tv.ligada)

    tv.ligada = True
    tv.canal = 5

    print('Ligada:', tv.ligada)
    print('Canal inicial:', tv.canal)
    tv.muda_canal_para_cima()
    print('Canal +', tv.canal)
    tv.muda_canal_para_cima()
    print('Canal +', tv.canal)
    tv.muda_canal_para_baixo()
    print('Canal -', tv.canal)
Veículos
class Veiculo(object):

    def __init__(self):
        self.porta = 0
        self.roda = 2
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;





&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;
class VeiculoMotorizado(Veiculo):

    def __init__(self):
        Veiculo.__init__(self)
        self.ligado = False

    def ligar_motor(self):
        self.ligado = True



&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;





&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;if __name__ == '__main__':
    bicicleta = Veiculo()
    print('Bicicleta:')
    print('Porta:' ,bicicleta.porta)
    print('Roda:' ,bicicleta.roda)

    triciclo = Veiculo()
    print('Triciclo:')
    triciclo.roda = 3
    print('Porta:' ,triciclo.porta)
    print('Roda:' ,triciclo.roda)

    moto = VeiculoMotorizado()
    print('Moto:')
    print('Porta:' ,moto.porta)
    print('Roda:' ,moto.roda)
    print('Motor:' ,moto.ligado)

    moto.ligar_motor()
    print('Motor:' ,moto.ligado)

    carro = VeiculoMotorizado()
    carro.porta = 4
    carro.roda = 4
    carro.ligar_motor()
    print('Carro:')
    print('Porta:' ,carro.porta)
    print('Roda:' ,carro.roda)
    print('Motor:' ,carro.ligado)
Veículos melhorado

class Veiculo(object):

    def __init__(self, porta=0, roda=2):
        super(Veiculo, self).__init__()
        self.porta = porta
        self.roda = roda
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;





&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;class VeiculoMotorizado(Veiculo):

    def __init__(self, porta=0, roda=2, ligado=False):
        super(VeiculoMotorizado, self).__init__(porta, roda)
        Veiculo.__init__(self)
        self.ligado = ligado

    def ligar_motor(self):
        self.ligado = True
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;





&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;if __name__ == '__main__':
    bicicleta = Veiculo()
    print('Bicicleta:')
    print('Porta:', bicicleta.porta)
    print('Roda:', bicicleta.roda)

    triciclo = Veiculo()
    print('Triciclo:')
    triciclo.roda = 3
    print('Porta:', triciclo.porta)
    print('Roda:', triciclo.roda)

    moto = VeiculoMotorizado()
    print('Moto:')
    print('Porta:', moto.porta)
    print('Roda:', moto.roda)
    print('Motor:', moto.ligado)

    moto.ligar_motor()
    print('Motor:', moto.ligado)

    carro = VeiculoMotorizado()
    carro.porta = 4
    carro.roda = 4
    carro.ligar_motor()
    print('Carro:')
    print('Porta:', carro.porta)
    print('Roda:', carro.roda)
    print('Motor:', carro.ligado)
Salas

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h1&gt;
  
  
  rooms.py
&lt;/h1&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;class Person(object):

    def __init__(self, username):
        self.username = username
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;





&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;class Room(object):

    def __init__(self, room):
        self.room = room
        self.persons = []

    def add_person(self, person):
        '''
        Adiciona pessoas na lista 'persons'.
        Se for uma lista ou tupla usa 'extend'.
        Caso contrário, usa 'append'.
        '''
        if isinstance(person, (list, tuple)):
            self.persons.extend(person)
        else:
            self.persons.append(person)
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;





&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;  def count_persons(self):
        # Conta os items da lista 'persons'.
        return len(self.persons)
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;





&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;if __name__ == '__main__':
    sala1 = Room('Think Lab')
    print(sala1.room)
    print(sala1.persons)
    sala1.add_person('Regis')
    sala1.add_person('Fernando')
    print(sala1.room, sala1.count_persons(), sala1.persons)

    sala2 = Room('Watson')
    sala2.add_person('Marcia')
    print(sala2.room, sala2.count_persons(), sala2.persons)

    sala3 = Room('Auditório')
    persons = ['Ana', 'Beatriz', 'Carlos', 'Daniel', 'Eduardo', 'Frederico']
    sala3.add_person(persons)
    print(sala3.room, sala3.count_persons(), sala3.persons)
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



</description>
      <category>python</category>
    </item>
  </channel>
</rss>
