Preparando a aula 4
Na aula 4 vamos subir um pouco a dificuldade dos exemplos implementando alguns problemas cujo pseudo código vimos nas primeiras aulas.
Como preparação você pode tentar implementar e testar a especificação que estudamos na aula 1:
Dado um texto, conte o número de palavras que contém a letra a e a letra b
Dica: conte palavras somente após encontrar ambas as letras e cuide para não contar a mais se as letras ocorrem varias vezes na mesma palavra (por exemplo como na palavra 'ajkblmabab')
Na aula 4 vamos ver alguns conceitos mais avançados de Python e resolver alguns problemas "dificeis" usando comandos "magicos".
Para melhor aproveitamento leia os seguintes tópicos em Recursos:
Caracteres, números e variáveis
Tipos de dados nativos
Comandos
Aula 3 - strings, alguns comandos básicos
Nesta aula iniciamos o estudo do Python propriamente dito. O material coberto corresponde mais ou menos ao item Caracteres, números e variáveis e parte do item Comandos em Recursos.
Vimos um exercício implementando em Python um exemplo cujo pseudo código criamos em aulas anteriores:
Dado um texto contendo somente caracteres alfanuméricos e espaços em branco contar o número de palavras no texto. Uma palavra é definida como sequência ininterrupta de caracteres alfanuméricos terminada por espaço em branco.
Uma implementação possível seria a seguinte:
''' conta o numero de palavras num texto. Caracteres permitidos:
alfanumericos e espaço em branco'''
txt = input()
na_palavra = (txt[0] != ' ')
if na_palavra:
conta = 1
else:
conta = 0
# percorre o texto caracter a caracter
for car in txt:
# verifica se caracter é espaço ou alfanumerico
if car != ' ':
n_pal = True
else:
n_pal = False
# verifica se passou fronteira de entrada em palavra
if na_palavra == False:
if n_pal == True:
# entrou numa palavra
conta = conta + 1
na_palavra = True
else:
# estamos numa palavra: verifica se terminou
if n_pal == False:
na_palavra = False
# imprime numero de palavras encontradas
print('Numero de palavras encontradas = ', conta)
Verifique que este programa implementa a especificação digitando o código no IDLE e executando. Teste casos extremos.
O código abaixo tem o mesmo efeito e é mais sucinto:
txt = input()
na_palavra = (txt[0] != ' ')
conta = int(na_palavra)
# percorre o texto caracter a caracter
for car in txt:
# verifica se caracter é espaço ou alfanumerico
n_pal = (car != ' ')
# verifica se passou fronteira de entrada em palavra
if not na_palavra:
if n_pal:
# entrou numa palavra
conta = conta + 1
na_palavra = True
else:
# estamos numa palavra: verifica se terminou
if not n_pal:
na_palavra = False
# imprime numero de palavras encontradas
print('Numero de palavras encontradas = ', conta)
Lembrando que not e and correspondem aos conectivos lógicos negação e conjunção, experimente o código acima no IDLE e verifique que é outra implementação válida.
Para entender porque atribuições como n_pal = (car != ' ') funcionam lembre, como explicado na aula, que o valor de uma expressão booleana é True ou False. Assim n_pal irá receber um valor True ou False respectivamente.
Podemos ainda generalizar o problema permitindo qualquer caracter whitespace no texto, não somente o espaço em branco ' '.
Neste caso a implementação acima deve ser ligeiramente modificada usando uma das muitas funções de objetos string. No caso dado um caracter lido basta testar se car.isalnum() retorna True ("é caracter alfanumérico") ou False ("não é um caracter alfanumerico"). O trecho modificado do código fica assim:
# percorre o texto caracter a caracter
for car in txt:
# verifica se caracter é alfanumerico
n_pal = car.isalnum()
........................................ etc
Preparando a aula 3
Por decisão da turma vamos abreviar a introdução a algoritmos e passar a ver a linguagem Python propriamente dita.
Os que tiverem notebook próprio podem trazê-lo para instalar o Anaconda 3 e preparar o ambiente de trabalho, à menos que já o tenham feito.
É recomendável ter seu computador caseiro preparado para praticar programação em casa, dado a baixa carga horária semanal do curso.
De qualquer forma é recomendável que você leia os artigos sobre a linguagem Python na aba direita, sob o título "Recursos".
Aula 2
Coloquei os slides para a aula 2 aqui. Estamos ainda vendo noções intuitivas de algoritmos e fazendo exercicios em aula.
Em breve começaremos com a linguagem Python propriamente dita. Mas como dito em aula, programar é muito mais ter noção de algoritmos do que detalhes de linguagem. Com o bonus adicional de poder implementar o mesmo algoritmo em diversas linguagens, não somente Python.
Aula 1
A primeira aula do curso foi em 12/9/2016. Quem quiser revisar os slides apresentados pode baixá-los deste link (vide abaixo). Um aviso do Dropbox aparece (arquivos .rar não podem ser previstos) e pode ser ignorado.
O arquivo baixado deve conter página HTM, a qual pode ser vista em seu browser.
Nota: Infelizmente o Powerpoint corrompeu alguns slides na conversão para HTM. Então decidi colocar os próprios slides para download, que você pode fazer aqui.