//O operador // realiza a divisão inteira de dois números.
Veja um exemplo a seguir.
minutos = 252
horas = minutos // 60
print(minutos, "minutos contêm", horas, "horas completas")
%O operador % devolve o resto da divisão inteira entre dois números.
Veja exemplos de uso a seguir:
resto = 13 % 5
print(resto)
minutos = 252
horas = minutos // 60
minutos_excedentes = minutos % 60
print(minutos, "minutos =", horas, "horas e", minutos_excedentes, "minutos")
if - elseComandos para a execução condicional dão ao programador a habilidade de verificar condições e mudar o comportamento do programa de acordo com isso.
O comando if é a forma mais simples de se fazer uma execução condicional. Veja o exemplo a seguir.
def main():
x = int(input("Digite um número: "))
if x > 0:
print(x, "é um número positivo.")
print("Tchau!")
#-----
main()
A expressão lógica depois do if é chamada de condição. Se ela for verdadeira, o bloco de comandos indentados será executado. Se ela for falsa, nenhum comando de dentro do bloco indentado será executado.
Não há um limite para a quantidade de comandos que podem aparecer dentro de um bloco do if, mas sempre deve haver pelo menos um comando no bloco.
Uma segunda forma do comando if é a execução alternativa, ou comando if-else, em que há duas possibilidades de execução e é a condição quem determina qual delas será realizada.
Os comandos relacionados a uma das possibilidades aparecem como um bloco indentado do if e serão executados quando a condição for verdadeira. Os comandos da outra possibilidade aparecem como um bloco indentado do else e serão executados quando a condição do if for falsa. Veja um exemplo de uso a seguir:
def main():
x = int(input("Digite um número: "))
if x > 0:
print(x, "é um número positivo.")
else:
print(x, "NÃO é um número positivo.")
print("Tchau!")
#-----
main()
for e a função rangeNa Aula 2, vimos como usar o comando while para criar laços para executar repetidamente blocos de comandos.
Quando se sabe exatamente quantas vezes é preciso repetir a execução de um bloco, uma alternativa ao uso do while é o uso do comando for combinado à função range.
Veja um exemplo de programa que usa o for a seguir:
def main():
print("Iniciando contagem:")
for i in range(5):
print(i)
print("Bum!")
#-----
main()
Usando while, o programa acima ficaria duas linhas mais longo:
def main():
print("Iniciando contagem:")
i = 0
while i < 5 :
print(i)
i = i + 1
print("Bum!")
#-----
main()
Dados um número inteiro n, n > 0, e uma sequência com n números inteiros, determinar quantos números da sequência são pares e quantos são ímpares. Por exemplo, para a sequência
6
-2 7 0 -5 8 4
o seu programa deve escrever o número 4 para o número de pares e 2 para o de ímpares.
Nessa primeira solução apresentada, exercitaremos o uso do operador % e do comando if:
def main():
n = n_salvo = int(input("Digite o tamanho da sequência: ")) # atribuição múltipla
conta_par = 0
while n > 0:
num = int(input("Digite um número da sequência: "))
n = n - 1
if num % 2 == 0:
conta_par = conta_par + 1
print(conta_par, "números pares")
print(n_salvo-conta_par, "números ímpares")
#-----
main()
Um número é par quando ele é divisível por 2. Isso equivale a dizer que um número é par quando o resto da divisão inteira dele por 2 é zero. No programa acima, a linha que verifica se o número digitado é par é a seguinte:
if num % 2 == 0:
Quando a condição desse if é satisfeita (ou seja, quando o resto da divisão inteira do número por 2 é zero), então a contagem dos números pares é incrementada.
Ao final do programa, teremos que quantidade de números ímpares pode ser obtida subtraindo a quantidade de pares da quantidade total de números lidos como entrada.
Atenção: A primeira linha da Solução 1 acima se trata de um comando de atribuição múltipla. Em uma atribuição desse tipo, uma sequência de variáveis recebe um mesmo valor (o que aparece do lado direito do operador de atribuição = mais à direita no comando).
Nessa segunda solução, exercitaremos o uso do else:
def main():
n = int(input("Digite o tamanho da sequência: "))
conta_par = 0
conta_impar = 0
while n > 0:
num = int(input("Digite um número da sequência: "))
n = n - 1
if num % 2 == 0:
conta_par = conta_par + 1
else:
conta_impar = conta_impar + 1
print(conta_par, "números pares")
print(conta_impar, "números ímpares")
#-----
main()
No programa acima, quando a condição do if é satisfeita (ou seja, quando o número lido é divisível por 2), então o contador de pares é incrementado. Entretanto, como esse if possui um comando else associado a ele, quando o número lido não é divisível por 2, o bloco de comandos associado ao else é executado, causando um incremento na contagem de números ímpares.
Na Solução 3, substituiremos o laço while usado nas duas soluções anteriores por um laço for + range:
def main():
n = int(input("Digite o tamanho da sequência: "))
conta_par = 0
conta_impar = 0
for i in range(n):
num = int(input("Digite um número da sequência: "))
if num % 2 == 0:
conta_par = conta_par + 1
else:
conta_impar = conta_impar + 1
print(conta_par, "números pares")
print(conta_impar, "números ímpares")
#-----
main()
Dados um número inteiro n, n > 0, e um dígito d (0 ≤ d ≤ 9), determinar quantas vezes d ocorre em n.
Exemplo 1:
Digite o valor de n (n > 0): 63543
Digite o valor de d (0<=d<=9): 3
O dígito 3 ocorre 2 vezes em 63543
Exemplo 2:
Digite o valor de n (n > 0): 0
Digite o valor de d (0<=d<=9): 0
O dígito 0 ocorre 0 vezes em 0
Exemplo 3:
Digite o valor de n (n > 0): 0110
Digite o valor de d (0<=d<=9): 0
O dígito 0 ocorre 1 vezes em 110
Nessa solução, mais uma vez exercitamos o uso dos operadores // e %, e do comando if:
def main():
n = int(input("Digite o valor de n (n > 0): "))
d = int(input("Digite o valor de d (0<=d<=9): "))
conta_digito = 0
n_salvo = n
while n > 0:
dig = n % 10
n = n // 10
if dig == d:
conta_digito = conta_digito + 1
print("O dígito", d, "ocorre", conta_digito, "vezes em ", n_salvo)
#-----
main()
É importante observar que, nessa solução, os operadores % e // estão sendo usados para "descascar" um número inteiro (ou seja, para obter cada um dos seus dígitos separadamente).
Se n é um número na base decimal, o resultado da operação n % 10 é o dígito menos significativo de n, ao passo que o operação n // 10 devolve como resultado o próprio n sem o seu dígito menos significativo.
Dizemos que um número inteiro positivo é triangular se ele é o produto de três números inteiros consecutivos.
Por exemplo, 120 é triangular, pois 4 × 5 × 6 é igual a 120.
Dado um número inteiro positivo n, verificar se n é triangular.
Obs.: Este problema corresponde ao exercício 10 da lista de exercícios sobre inteiros.
'''
Programa que lê um inteiro positivo n e imprime uma mensagem
indicando se ele é ou não triangular
'''
def main():
print("Determina se um número n é triangular\n")
# leia o valor de n
n = int(input("Digite o valor de n: "))
i = 1
while i * (i+1) * (i+2) < n:
i = i + 1
if i * (i+1) * (i+2) == n:
print("%d é o produto %d*%d*%d" %(n,i,i+1,i+2))
else:
print("%d não é triangular" %(n))
#----------
main()
ifif-else//%