🐍 Primeiros passos com python
Infelizmente esse tutorial foi pensado para ser ministrado em apenas algumas horas, o que nos deixa com pouco tempo para aprofundar na linguagem, aqui serão apresentados apenas alguns conceitos que serão necessários para o restante do tutorial.
Caso tenha chegado aqui por outros meios que não o curso presencial, e não tenha conhecimento na linguagem, recomendo dar uma parada, e assistir as excelentes aulas do Professor Masanori. O python para zumbis tem sido uma excelente porta para muitas pessoas, assim como o Curso em Vídeo - Python do professor Guanabara.
Uma outra dica é a Live de Python que ocorre às segundas, sempre às 22h.
Abra um console(sim, a tela preta), digite python e aproveite para testar os comandos ensinados abaixo de uma forma interativa.
Olá mundo
Olá Mundo em python é tão simples como print('Olá mundo')
por isso um Olá mundo mais pythônico seria import antigravity
.
Python é conhecido por suas baterias incluídas, e até mesmo o Olá mundo pode ser importado import __hello__
.
Por Favor e Obrigado
Duas funções que podem ser bastante úteis durante o desenvolvimento python e que costumo dizer que são como "por favor" e "obrigado", são as funções help e dir.
A função "help" pede ajuda sobre um determinado recurso, funcionando inclusive com palavras reservadas como 'if'. É retornado a documentação daquele recurso.
>>> help(abs)
Help on built-in function abs in module builtins:
abs(x, /)
Return the absolute value of the argument.
>>> help('if')
The "if" statement
******************
The "if" statement is used for conditional execution:
if_stmt ::= "if" expression ":" suite
( "elif" expression ":" suite )*
["else" ":" suite]
...
A função "dir" lista todos os atributos e métodos de uma determinada instância. Como em python tudo é objeto, esta função mostra como a instância do objeto se comporta e quais são seus atributos.
>>>dir(5)
['__abs__', '__add__', '__and__', '__bool__', '__ceil__', '__class__', '__delattr__', '__dir__', '__divmod__', '__doc__', '__eq__', '__float__', '__floor__', '__floordiv__', '__format__', '__ge__', '__getattribute__', '__getnewargs__', '__gt__', '__hash__', '__index__', '__init__', '__init_subclass__', '__int__', '__invert__', '__le__', '__lshift__', '__lt__', '__mod__', '__mul__', '__ne__', '__neg__', '__new__', '__or__', '__pos__', '__pow__', '__radd__', '__rand__', '__rdivmod__', '__reduce__', '__reduce_ex__', '__repr__', '__rfloordiv__', '__rlshift__', '__rmod__', '__rmul__', '__ror__', '__round__', '__rpow__', '__rrshift__', '__rshift__', '__rsub__', '__rtruediv__', '__rxor__', '__setattr__', '__sizeof__', '__str__', '__sub__', '__subclasshook__', '__truediv__', '__trunc__', '__xor__', 'bit_length', 'conjugate', 'denominator', 'from_bytes', 'imag', 'numerator', 'real', 'to_bytes']
Estrutura de chave e valor
Python possui por padrão uma estrutura de dados de array associativo, que é chamado dicionário. Esta estrutura armazena valores associando uma chave a seu conteúdo. Veja abaixo algumas tarefas rudimentares com esta estrutura.
>>> tarefas = {} # inicializando uma estrutura vazia
>>> tarefas[1] = 'tarefa 1' # definindo uma tarefa de chave 1, com conteúdo 'tarefa 1'
>>> print(tarefas[1]) # exibindo a tarefa 1
>>> tarefas[2] = 'tarefa 2' # definindo uma tarefa de chave 2, com conteúdo 'tarefa 2'
>>> tarefas[3] = 'tarefa-3' # definindo uma tarefa de chave 3, com conteúdo 'tarefa 3'
>>> tarefas[3] = 'tarefa 3' # editando uma tarefa
>>> del tarefas[1] # removendo a tarefa
Percorrendo estruturas
O laço de repetição da linguagem Python é através de iteração de coleções. Tudo que pode ser percorrível pode ser utilizado em uma estrutura de repetição.
>>> for tarefa in tarefas:
print(tarefa)
Funções
Porção de código que resolve um problema muito específico. Boas práticas dizem que uma função deve fazer somente uma coisa e fazer isto bem.
def soma(x, y):
return x + y
Decorador
É um açúcar sintático que nos permite alterar mais convenientemente funções e métodos. Pode ser definido como uma função, que ao invés de retornar algum resultado, retorna a função recebida como parâmetro modificada.
def p_decorate(func):
def func_wrapper(name):
return f"<p>{func(name)}</p>"
return func_wrapper
@p_decorate
def get_text(name):
return f"lorem ipsum, {name} dolor sit amet"
print (get_text("John"))
Saída:
<p>lorem ipsum, John dolor sit amet</p>
Vimos um pouco sobre a web, demos uma passada no python, então agora já vamos começar a escrever código?
Calma, ainda temos mais um conceito que é muito importante para nós. Já ouviu falar do desenvolvimento guiado por testes,
que popularmente é conhecido pelas letras TDD
? Vamos aprender como e por que escrever testes automatizados antes mesmo de escrever código.