Introdução a linguagem Python (parte 1)

Notebook para o curso de IoT - IFSP Piracicaba

Gustavo Voltani von Atzingen

Python - versão 2.7

Este notebook contém uma introdução aos comandos básicos em python. Serão cobertos os seguintes tópicos

  • Print
  • Comentários
  • Atribuição de variáveis e tipos
  • Trabalhando com strings (parte 1)
  • Listas (parte 1)
  • Estruturas de controle (if-elif-else, for, while)
  • Funções
  • Utilizando módulos (import)

Print

Para se "imprimir" algum texto na tela, o python (versão 2.7) possui uma palavra reservada, chamada print.


In [73]:
print "Hello Python 2.7 !"


Hello Python 2.7 !

Também podemos imprimir várias strings ou numeros, separando-os por ','


In [74]:
print 'Parte 1 - ', ' A resposta é: ', 42


Parte 1 -   A resposta é:  42

Podemos inserir variáveis (núméricas) no meio do texto utilizando o método .format


In [75]:
print 'O valor da leitura dos sensores são {}Votls e {}Volts'.format(4.2, 1.68)


O valor da leitura dos sensores são 4.2Votls e 1.68Volts

Comentários

Comentários são inseridos no programa utilizando o caracter '#' e com isso toda linha é ignorada pelo interpretador


In [76]:
# isto é uma linha de comentário

Para fazer um bloco de comentário (várias linhas), utiliza-se ''' no início e ''' no final do bloco de comentário


In [77]:
''' Isto e um bloco de comentarios

Todas as linhas neste bloco sao ignoradas
pelo interpretador
'''


Out[77]:
' Isto e um bloco de comentarios\n\nTodas as linhas neste bloco sao ignoradas\npelo interpretador\n'

Atribuição de variáveis

Em python as variáveis não são explicitamente declaradas. O interpretador faz a atribuição em tempo de execução. Os tipis de estrutura utilizadas pelo interpretador são:

  • Números (number) - Inteiro ou real
  • Strings (string)
  • Listas (list)
  • Tuplas (tuple)
  • Dicionários (dictionary)

In [78]:
a = 42       # A variável á recebe um número
b = 1.68     # Variável real
c = 'texto'  # Texto
print a, b, c


42 1.68 texto

As variáveis podem alterar o seu tipo durante a execução (runtime)


In [79]:
a = 1.3
print 'valor de a antes: ', a
a = 'texto'
print 'valor de a depois: ', a


valor de a antes:  1.3
valor de a depois:  texto

As variáveis podem sem atribuidas simultaneamente. Isto pode ser feito para simplificar o código e evitar a criação de variáveis temporárias


In [80]:
a, b = 1, 1
print a, b
a, b = b, a + b
print a, b


1 1
1 2

Strings

strings podem ser criadas utilizando ' ou " (aspas simples ou dupla)


In [81]:
nome = 'Gustavo'     # Isto é uma string
nome = "Joao"        # Isto também é uma string
letra = 'a'          # Strings também podem ter um único caracter

Podemos utilizar a indexação para acessar elementos da string ou partes dela


In [82]:
nome = 'Gustavo Voltani von Atzingen'
print nome[0], nome[1], nome[8]  # A indexação começa em zero e segue até o ultimo valor


G u V

In [83]:
nome = 'Gustavo Voltani von Atzingen'
print nome[-1], nome[-2] # Também existe a indexação do fim para o início com 
                         #números negativos iniciando em 1


n e

In [84]:
nome = 'Gustavo Voltani von Atzingen'
print nome[8:15]    # Podemos pegar parte da string desta forma
print nome[20:]     # Da osição 20 até o final
print nome[:7]      # Do início até a posição 6


Voltani
Atzingen
Gustavo

Existes vários métodos que podem ser aplicados na string. O método split divide a string em um caracter especificado. Outros métidis serão abordados em aulas posteriores.


In [85]:
nome = 'Gustavo Voltani von Atzingen'
print nome.split(' ') # separando o nome pelo espaço em branco


['Gustavo', 'Voltani', 'von', 'Atzingen']

Listas

Listas são sequencias ordenadas de objetos (que podem ser strings, numeros, listas ou outros)


In [86]:
lista = ['texto1', 'texto2', 'texto3', 'texto4']
print lista


['texto1', 'texto2', 'texto3', 'texto4']

In [87]:
# também podemos ter vários tipos na mesma lista
lista = [42, 'texto2', 1.68, 'texto4']
print lista


[42, 'texto2', 1.68, 'texto4']

In [88]:
# também podemos ter uma lista dentro de outra
lista = [ [42, 54, 1.7], 'texto2', 1.68, 'texto4'] 
print lista


[[42, 54, 1.7], 'texto2', 1.68, 'texto4']

In [89]:
# A lista também é indexada e pode ser buscada da mesma forma que
# foi feito com as strings
lista = [42, 34, 78, 1, 91, 1, 34]
print lista[0], lista[-1], lista[2:5]


42 34 [78, 1, 91]

Estruturas de controle: if


In [90]:
a = 4

if a < 1:
    print 'a é menor que 1'
elif a < 3:
    print 'a é menor que 3 e maior ou igual 1'
elif a < 5:
    print 'a é menor que 5 e maior ou igual 3'
else:
    print 'a é maior= 5'


a é menor que 5 e maior ou igual 3

Estruturas de controle: for

for é uma estrutura de controle que vai iterar sobre uma lista ou uma string


In [91]:
nome = 'gustavo'
for letra in nome:
    print letra


g
u
s
t
a
v
o

In [92]:
lista = ['texto1', 'texto2', 'texto3', 'texto4']
for item in lista:
    print item


texto1
texto2
texto3
texto4

In [93]:
# Se quisermos fazer uma repetição com contagem numérica, podemos 
# utilizar a função range() ou outras que serão mostradas futuramente

In [94]:
# Mostra os números de 0 a 9
for i in range(10):
    print i


0
1
2
3
4
5
6
7
8
9

In [95]:
# se quisermos contar os elementos de uma lista podemos usar a função enumerate
lista = ['texto1', 'texto2', 'texto3', 'texto4']
for indice, item in enumerate(lista):
    print indice, item


0 texto1
1 texto2
2 texto3
3 texto4

Estruturas de while: for

Repete até que a condição seja falsa


In [96]:
contador = 0
while contador < 5:
    print contador
    contador += 1


0
1
2
3
4

Funções

Funções são escritas com a palavra def e o nome da função, juntamente com os argumentos. Pode retorar (ou não) um ou mais ojbetos.


In [97]:
def somador(a, b):
    return a + a

somador(1, 2)


Out[97]:
2

In [98]:
def separa_por_espao(texto):
    if ' ' in texto:
        return texto.split(' ')
    else:
        return None
    
nome1, nome2 = separa_por_espao('nome1 nome2')
print nome1, nome2


nome1 nome2

In [99]:
# funções podem ter argumentos chave

def soma(a, b=1):
    return a + b

print soma(1,2)
print soma(1)


3
2

Módulos e importação


In [100]:
import datetime

tempo_atual = datetime.datetime.now()
print tempo_atual.hour, tempo_atual.minute, tempo_atual.second


16 26 42

In [101]:
from datetime import datetime as d

tempo_atual = d.now()
print tempo_atual.hour, tempo_atual.minute, tempo_atual.second


16 26 42

In [ ]:


In [ ]:


In [ ]: