Comandos básicos de python

Respostas aos comandos em Python 2.7

zip(…)

cria uma tupla com uma combinação sequencial de listas (empacota):

>>> a = [1,2,3,4,5]
>>> b = [6,7,8,9,10]
>>> zip(a,b)
[(1, 6), (2, 7), (3, 8), (4, 9), (5, 10)]
>>> c = [11,22,33,44,55]
>>>zip(a,b,c)
[(1, 6, 11), (2, 7, 22), (3, 8, 33), (4, 9, 44), (5, 10, 55)]

reverte uma tupla em listas (desempacota):

>>> pts = [(0, 0), (1, 0), (1, 1), (2, 1), (2, 2)]
>>> x, y = zip(*pts)
>>> print x, y
(0, 1, 1, 2, 2) (0, 0, 1, 1, 2)

enumerate(…)

Enumera um objeto iterável. Retorna um contador (x) e o elemento[x] do objeto.
Exemplo:

mangueio='caqui'
>>> for x, letra in enumerate(mangueio):
>>>    print letra, '(%d)' % x
c (0)
a (1)
q (2)
u (3)
i (4)

range(início, fim, passo)

Cria uma lista sequencial de números.
Exemplos:

>>> range(10)
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> range(2,5)
[2, 3, 4]
>>> range(1,10,2) #passo=2, pula de 2 em 2
[1, 3, 5, 7, 9]

help(…)

O mais importante dos comandos :)
Aperte a tecla “q” para sair.

type(…)

>>> type('abacate')
<type 'str'>

id (…)

Return the identity of an object. This is guaranteed to be unique among simultaneously existing objects. (Hint: it’s the object’s memory address.)

>>> id(a)
34434567

dir(…)

Retorna os atributos (métodos) de um objeto.

>>> dir('laranja')
['__add__', '__class__', '__contains__', '__delattr__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__getitem__', '__getnewargs__', '__getslice__', '__gt__', '__hash__', '__init__', '__le__', '__len__', '__lt__', '__mod__', '__mul__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__rmod__', '__rmul__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', '_formatter_field_name_split', '_formatter_parser', 'capitalize', 'center', 'count', 'decode', 'encode', 'endswith', 'expandtabs', 'find', 'format', 'index', 'isalnum', 'isalpha', 'isdigit', 'islower', 'isspace', 'istitle', 'isupper', 'join', 'ljust', 'lower', 'lstrip', 'partition', 'replace', 'rfind', 'rindex', 'rjust', 'rpartition', 'rsplit', 'rstrip', 'split', 'splitlines', 'startswith', 'strip', 'swapcase', 'title', 'translate', 'upper', 'zfill']

str(…)

Converte uma objeto para texto (string)

>>> str(12)
'12'

int(…)

Converte um objeto para número inteiro

>>> a= '33'   #uma string
>>> int(a)
33

Atribuições múltiplas

Atribui simultaneamente valores às variáveis!

>>> a = 1
>>> b = 'jota'
>>> a, b = b, a
>>> a
'jota'
>>> b
1
>>> c, d, e = 'sol'
>>> c
's'
>>> d
'o'
>>> e
'l'

input(…)

Abre o prompt para receber um valor. (Em Python 3, a entrada de input é uma string)

>>>idade = input('qual a sua idade? ')
qual a sua idade? 23
>>> print ('%d anos' %idade)
23 anos

Operadores relacionais e lógicos

Comparadores: é uma pergunta
a > b – é maior?
a < b – é menor?
a == b – é igual?
a != b – é diferente?

resposta à comparação: (iniciam com maiúscula)
True – verdadeiro
False – falso

atenção!
a = b – não é um comparador, à variável ‘a’ está sendo atribuída o conteúdo da variável ‘b’.

Conectores de comparações:
and: todas as condições devem ser satisfeitas
or: pelo menos uma condição deve ser satisfeita

Para repetir os comandos anteriores do interpretador

alt+p ou alt+n

Print

Marcadores

%d – números decimais
%s – string (texto)
%f – float (números com vírgula) → %.2f nesse caso o 2 estipula quantas casas decimais serão exibidas

>>> a=5
>>> b='casas'
>>> c=1.5
>>> print ('As %d belas %s têm %f telhados' %(a,b,c))
As 5 belas casas têm 1.500000 telhados

Uso com format e função

teste = 639884962
print('O renavam {} é {}.'.
format(teste, 'válido' if validar_renavam(teste) else 'inválido'))

Expressões Condicionais

if

Se a condição for True (verdadeira) então execute comando.
No caso de haver mais de uma condição fica assim:

if condição1 and/or condição2:
    comando

else

Usado para o caso de a condição testada der False.
Se a condição for True, execute comando 1; senão (ELSE), execute comando 2.

if condição:
    comando1
else:
    comando2

elif

Usado para verificação de vários casos.
Se a condição1 for True, então execute comando1; se a condição2 for True, execute comando2; senão execute o comando3.

if condição1:
    comando1
elif condição2:
    comando2
else:
    comando3

Lists

list.count(valor) → conta o número de ocorrências de “valor”

>>> mangueio = ['banana', 'maca', 'jaca', 'laranja', 'banana']
>>> mangueio.count('banana')
2

list.append(valor) → adiciona “valor” ao final da lista

>>> mangueio = ['banana', 'maca', 'jaca', 'laranja']
>>> mangueio.append('melao')
>>> print mangueio
['banana', 'maca', 'jaca', 'laranja', 'melao']

Strings

Strings são concatenáveis através de soma

>>> 'laranja' + ' e amarelo'
'laranja e amarelo'

string.split(…)

Separa uma string em uma lista. Se o caractere separador não for especificado, ele usa o espaço por padrão.

>>> mangueio = 'hoje vieram 3 mangas tommy e 2 mangas palmer'
>>> mangueio.split()
['hoje', 'vieram', '3', 'mangas', 'tommy', 'e', '2', 'mangas', 'palmer']
>>> mangueio.split('manga')
['hoje vieram 3 ', 's tommy e 2 ', 's palmer']

Trabalhando com índices em Strings

>>> fruta = 'abatace'
>>> print fruta [2:]
atace
>>> print fruta [1:-1]
batac
>>> print fruta[2::2]  # mostra o conteúdo da posição 2 até o final, pulando de 2 em 2
aae
>>> print fruta[::-1] # mostra o conteúdo do início até o fim, mas de trás pra frente
ecataba

string.find (…)

Encontra a posição onde inicia uma palavra

>>> mangueio = 'hoje vieram 3 mangas tommy e 2 mangas palmer'
>>> mangueio.find('manga')
14
>>> mangueio.find('manga', 20) #encontra a palavra a partir do índice 20
31
>>> mangueio.find('manga', 33)
-1      # -1 indica que a palavra não foi encontrada

‘…’.join(variavel)

Junta uma lista numa string. Podemos especificar o separador.

>>> frutas = ['laranja', 'maca', 'pera']
>>> ' + '.join(frutas)
'laranja + maca + pera'

string.title()

bota a primeira letra de cada palavra da string em maiúscula

string.capitalize()

bota a primeira letra da stirng e maiúscula

‘string’.zfill(n)

Completa uma string com zeros à esquerda até completar n caracteres.

>>>fruta = 'manga'
>>>fruta.zfill(10)
'00000manga'