Na última aula a gente aprendeu alguns ferramentos que nos deixa escrever codigos com mais facilidade: variaveis (para guardar, reutilizar e modificar valores) o ‘for loop’ (para repetir uma coisa varias vezes) e o ‘function’ (para organizar um serie de instruções num lugar). Agora a gente vai aprender outros e no fim dessa aula, vcs terão tudos os ferramentos que precisam para esse curso e a gente pode começar criar programas mais complexos.
if statement
- Até agora, o computador sempre executava todas as instruções que a gente escreveu. Porem, para programas e aplicativos mais complexos, a gente não quer sempre executar tudos os codigos.
- Em vez disso, a gente quer controlar o fluxo do programa e executar partes determinidos do programa, dependendo de uma condição. Por exemplo, num site como Facebook, se um usuario tem permissões para ver um post, o Facebook vai mostrar, mas, se ele não tem, não vai aparecer o post.
- Para fazer isso, a gente escreve um ‘if’, depois uma condição, e em baixo, os codigos que a gente quer executar caso essa condição seja verdade:
x = 7 if x > 5: print("ola")
- Nessa caso, o que vai acontecer? O computador guarda o valor ‘7’ na variavel ‘x’. E depois, ele vai checar: se o variavel ‘x’ (ou seja, 7) for maior do que 5. Como que 7 sim é maior do que 5, o computador vai executar os codigos dentro do ‘if statement’ e vai imprimir “ola”
- Agora vamos modificar o exemplo:
x = 3 if x > 5: print ("ola")
- Agora, o valor do ‘x’ não é maior do que 5, então o computador não vai imprimir nada
- Nota que a gente usa o simbilo ‘>’ para significar “maior do que”. Além disso, existem outros simbilos:
- ‘<‘ (menor do que)
- ‘<=’ (menor do que ou igual a)
- ‘>=’ (maior do que ou igual a)
- ‘==’ (igual a)
- ‘!=’ (não é igual a)
- Esses simbilos de comparação funcionam com palavras tambem:
nome = "thiago" if nome == "thiago": print("bom dia")
Esse programa vai imprimir “bom dia” por que o variavel ‘nome’ é igaul a “thiago”. Nota: no contexto das palavras (‘strings’) o simbilo ‘>’ significa ‘vem primeiro alfabeticamente’. Por exemplo:
nome = "pedro" if nome > "thiago": print ("bom dia")
Nesse caso, o computador não vai imprimir “bom dia” por que a palavra “thiago” vem depois do que “pedro” alfabeticamente, ou seja, “pedro” é maior do que “thiago”.
Combinar condições
- É possivel combinar varias condições num ‘if statement’. Há duas conjunções: ‘and‘ (e) e ‘or‘ (ou).
x = 5 y = 9 if x > 4 and y > 12:
Nesse exemplo, o computador não vai imprimir nada, por que mesmo que o ‘x’ seja maior do que 4, o ‘y’ não é maior do que 12. Como que a gente tem a conjução ‘and’ entres as duas condições, as duas tem que ser verdade para executar os codigos em baixo.
nacionalidade = "brasileiro" idade = 35 if nacionalidade == "brasileiro" and idade >= 18: print ("pode votar")
Nesse exemplo, as duas condições são verdade, ou seja, ‘nacionalidade’ é igual a “brasileiro” e idade e maior do que (ou igaul a) 18, então o computador vai imprimir “pode votar”.
idade = 70 if idade < 18 or idade > 65: preco = 15 print ("preco é", preco)
Aqui, a gente usa a conjução ‘or’. Então só uma das duas condições tem que ser verdade. Nesse caso a primeira condição (idade < 18) não é verdade, mais a segunda (idade > 65) é verdade, então os codigos dentro do if statement vai ser executados.
- Lembra que os espaços são importantes! Qualquer codigos que voçê quer colocar ‘dentro’ do if statement tem que começar com um ‘tab’
else
- Para ter ainda mais controle no fluxo do programa, a gente pode usar o ‘else statement’. ‘else’ significa ‘se não’ e o ‘else statement’ é usado conjunto com o ‘if statement’. Por exemplo
def ingresso (idade): if idade < 18 or idade > 65: print "preco meia" else: print "preco inteiro" ingresso(45)
Aqui, caso a condição seja verdade, vai imprimir “preco meia”, mas caso não, vai imprimir preco inteiro”. Como que idade é 45 (eu passo o valor como um parâmetro no function) Não esqueça os dois pontinhos depois do ‘else’!
Vamos combinar o if statement e o for loop para escrever um function que pode detectar se um numero for primo ou não.
- Para saber se um numero for primo, a gente tem que checar todos os numeros desde 2 até o numero, e ver se un deles divide o numero sem sobrar nada.
- A gente usa o ‘for loop’ para anda por todos os numeros
- A gente usa o ‘if statement’ para checar a condição de cada numero.
- Assim que a gente ache um numero que divide o numero original sem sobrar nada, a gente pode terminar, pois não se precisa checar os outros. Aí nesse caso a gente imprime “numero não é primo” e ‘return’ para sair do function.
- Caso a gente verifique que nenhum dos numeros divide o numero original (ou seja, o for loop termina) a gente pode dizer nesse momento que o numero original realmente é primo.
def isprime (num): for i in range (2, num): if num % i == 0: print ("numero não é primo") return print("numero é primo") isprime(13)