Logo Passei Direto
Buscar
Material
páginas com resultados encontrados.
páginas com resultados encontrados.

Escolha uma das opções e acesse esse e outros materiais sem bloqueio. 🤩

Cadastre-se ou realize login

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Escolha uma das opções e acesse esse e outros materiais sem bloqueio. 🤩

Cadastre-se ou realize login

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Escolha uma das opções e acesse esse e outros materiais sem bloqueio. 🤩

Cadastre-se ou realize login

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Escolha uma das opções e acesse esse e outros materiais sem bloqueio. 🤩

Cadastre-se ou realize login

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Escolha uma das opções e acesse esse e outros materiais sem bloqueio. 🤩

Cadastre-se ou realize login

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Escolha uma das opções e acesse esse e outros materiais sem bloqueio. 🤩

Cadastre-se ou realize login

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Escolha uma das opções e acesse esse e outros materiais sem bloqueio. 🤩

Cadastre-se ou realize login

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Escolha uma das opções e acesse esse e outros materiais sem bloqueio. 🤩

Cadastre-se ou realize login

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Escolha uma das opções e acesse esse e outros materiais sem bloqueio. 🤩

Cadastre-se ou realize login

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Prévia do material em texto

Aula 14 – Estrutura de repetição while
Nessa aula, vamos continuar a estudar os laços e vamos aprender a usar a estrutura de repetição while no Python. Por exemplo:
	c=1 
	while c !=10:
	print(c)
	c+=1
	print(‘Acabou’)
Quando eu sei o limite de onde parar eu utilizo a estrutura ’for’, mas se não sabe o limite é obrigatório usar a estrutura ‘while’.
Já o while pode ser usado no lugar do ‘for’ .
While: estrutura de repetição com teste lógico.
For: estrutura de repetição com variável de controle.
	Enquanto não chegar a ‘tal lugar’
	While not ‘tal lugar’:
		Passo
	 passo
	Pega
	pega
- o comando ‘pega’ só vai acontecer quando ele chegar a ‘tal lugar’.
Enquanto não chegar a tal lugar ele segue rodando
	Enquanto não ‘chegar’
	While not ‘chegar’
		Se ‘tal coisa’
	 If ‘tal coisa’
			Passo
	 passo
		Se ‘outra coisa’
	 If ‘outra coisa’
			Pula
	 Pula
		Se ‘mais outra coisa’
	 If ‘mais outra coisa’
			Pega
	 pega
	Pega
	pega
	
	
	for c in range(1, 10):
	c = 1
	 print(c)
	while c < 10:
	print('fim')
	 print(c)
	
	 c = c + 1
	
	print('fim')
Abaixo: enquanto a resposta for igual a ‘S’ ele vai continuar pedindo para digitar um valor, no que digitar ‘n’ ele vai parar
	r = 'S'
	while r == 'S':
	 n = int(input('Digite um valor: '))
	 r = str(input('Quer continuar? [S/N]')).upper()
	print('fim')
Com o ‘while’ eu posso criar situações onde eu faça laços indeterminadamente, eu não tenho que determinar um ’range’ .
	n = 1
	par = impar = 0
	while n != 0:
	 n = int(input('Digite um valor: '))
	 if n % 2 == 0:
	 par += 1
	 else:
	 impar += 1
	print('Você digitou {} números pares e {} números impares.'.format(par, impar))
Nesse comando acima, ele conta o zero como número par e o zero não é considerado nem par e nem ímpar, o zero é um número nulo, veja no comando abaixo a solução
	n = 1
	par = impar = 0
	while n != 0:
	 n = int(input('Digite um valor: '))
	 if n != 0:
	 if n % 2 == 0:
	 par += 1
	 else:
	 impar += 1
	print('Você digitou {} números pares e {} números impares.'.format(par, impar))
Colocamos mais um ‘if’ dizendo que se o ‘n’ for diferente de zero ele executa o próximo comando, que foi separado por uma identação.
Exercício Python 57: Faça um programa que leia o sexo de uma pessoa, mas só aceite os valores ‘M’ ou ‘F’. Caso esteja errado, peça a digitação novamente até ter um valor correto.
	sexo = str(input('qual é o seu sexo: [M/F]')).strip().upper()[0]
	while sexo not in 'MnFf':
	 sexo = str(input('Dados inválidos. Digite novamente: ')).strip().upper()[0]
	print('Sexo {} registrado com sucesso.'.format(sexo))
Exercício Python 58: Melhore o jogo do DESAFIO 28 onde o computador vai “pensar” em um número entre 0 e 10. Só que agora o jogador vai tentar adivinhar até acertar, mostrando no final quantos palpites foram necessários para vencer.
from random import randint
computador = randint(0, 10)
print('Advinhe o número que eu acabei de pensar. ')
acertou = False
while not acertou:
 jogador = int(input('Qual é o seu palpite? '))
 if jogador == computador:
 acertou = True
print('Acertou')
#1° tem que fazer o computador pensar em um número
#2° tem que fazer o palpite do jogador
# na linha 3 é apenas uma leitura
#3° criar uma variavel para o computador
# enquanto o jogador não acertar ele vai seguir perguntando
# linha 6 vai ler o numero que o jogador digitar
# na linha 7 e 8 é a condição para caso o jogador acerte
#a linha 9 apenas faz uma leitura para dizer que o jogador acertou
PARA SABER QUANTOS PALPITES O JOGADOR FEZ E MOSTRAR NA TELA EU PRECISO ACRESCENTAR:
palpites = 0
#Abaixo da linha 5, depois da variável acertou eu vou criar outra variável com nome de palpites que recebe 0
palpites += 1
#quando o cara jogar (palpites += 1) (na linha 8)
print('Acertou com {} palpites.'.format(palpites))
#No último print eu acrescento com quantos paalpites o jogador acertou
else:
 if jogador < computador:
 print('Mais... Tente mais uma vez.')
 elif computador > jogador:
 print('Menos... Tente mais uma vez.')
#Para dar umas dicar para o jogador dizendo que o número é maior ou menor vou criar um 'if' abaixo do acertou = True, condição em que vai ler se o numero que o computador pensou é maior ou menor do que o jogador digitou
	from random import randint
	from time import sleep
	quant = 0
	print('Olá sou seu parceiro de jogo. ')
	print('Vou pensar em um número entre 0 e 10, será que você acertar? ')
	palpite_jogador = int(input('Qual é o seu palpite? '))
	quant += 1
	
	computador = randint(0, 10)
	while palpite_jogador != computador:
	
	 if palpite_jogador > computador:
	 print('Eu pensei em ...')
	 sleep(1)
	 palpite_jogador = int(input('É um número menor. Digite novamente: '))
	 quant += 1
	
	 elif palpite_jogador < computador:
	 print('Eu pensei em ...')
	 sleep(1)
	 palpite_jogador = int(input('É um número maior. Digite novamente: '))
	 quant += 1
	
	 elif palpite_jogador == computador:
	 print('Eu pensei em ...')
	 sleep(1)
	print(f'Acertooou!!!! Eu pensei {computador}')
	print(f'Acerto com {quant} palpites')
Exercício Python 059: Crie um programa que leia dois valores e mostre um menu na tela:
[ 1 ] somar
[ 2 ] multiplicar
[ 3 ] maior
[ 4 ] novos números
[ 5 ] sair do programa
Seu programa deverá realizar a operação solicitada em cada caso.
from time import sleep
valor1 = int(input('Digite um valor: '))
valor2 = int(input("Digite outro valor: "))
opção = 0
while opção != 5:
 print('''[1] somar
[2] multiplicar
[3] maior
[4] novos números
[5] sair do programa''')
 opção = int(input('Escolha sua opção:'))
 if opção == 1:
 soma = valor1 + valor2
 print('{} + {} = {}'.format(valor1, valor2, soma))
 elif opção == 2:
 produto = valor1 * valor2
 print('{} * {} = {}'.format(valor1, valor2, produto))
 elif opção == 3:
 if valor1 > valor2:
 maior = valor1
 else:
 maior = valor2
 print('entre {} e {} o maior é {}.'.format(valor1, valor2, maior))
 elif opção == 4:
 print('Informe os números novamente:')
 valor1 = int(input('Digite um valor: '))
 valor2 = int(input("Digite outro valor: "))
 elif opção == 5:
 print('Finalizando...')
 else:
 print('Opção inválida. Tente novamente!')
 print('~*' * 10)
 sleep(2)
print('Fim do programa. Volte sempre!')
Exercício Python 060: Faça um programa que leia um número qualquer e mostre o seu fatorial. Exemplo:
5! = 5 x 4 x 3 x 2 x 1 = 120
from math import factorial
num = int(input('Digite um número: '))
fac = factorial(num)
print('O fatorial de {} é {}.'.format(num, fac))
OUTRA FORMA
n = int(input('Digite um número para fatorar: '))
c = n
f = 1
print('Calculando {}!'.format(n), end=' = ')
while c > 0:
 print('{}'.format(c), end='')
 print(' x ' if c > 1 else ' = ', end='')
 f *= c
 c -= 1 #tirar um do c = c - c = 1
print('{} '.format(f))
OUTRA FORMA DE FATORAR
from math import factorial
n = int(input('Digite um número para fatorar: '))
c = n
f = factorial(n)
print('Calculando {}! = '.format(n),end='')
while c > 0:
 print('{}'.format(c), end='')
 print(' x ' if c > 1 else ' = ', end='')
 c -= 1
print(' {}.'.format(f))
FATORIAL COM FOR
	num = int(input('Digite um número: '))
	print(f'Calculando {num}!', end=' -> ')
	f = 1
	for c in range(num, 0, -1):
	 print(f'{c} ', end='')
	 print('x ' if c > 1 else ' = ', end='')
	 f *= c
	print(f)
	
	num = int(input('Digite um número: '))
	f = 1
	c = 2
	while c <= num:
	 f *= c
	 c += 1
	print(f)
Exercício Python 61: Refaça o DESAFIO 51, lendo o primeiro termo e a razão de uma PA, mostrando os 10 primeiros termos da progressão usando a estrutura while.
print('GERADOR DE PA')
print('--*'* 10)
primeirotermo = int(input('Primeiro termo: '))
razão = int(input('Razão da PA: '))
termo = primeirotermo #aqui ele me mostra o primeiro termo
cont = 1 #aqui ele vai contar quantos termos forão
while cont <= 10: #enquanto o contador for menor ou igual a 10
 print('{} ->'.format(termo), end='')
 cont += 1
 termo += razão
print('-FIM-')
Exercício Python 62: Melhore o DESAFIO 61, perguntando para o usuário se ele quer mostrar mais alguns termos. O programa encerrará quando ele disser que quer mostrar 0 termos.
print('GERADOR DE PA')
print('--*' * 10)
primeirotermo = int(input('Primeiro termo: '))
razão = int(input('Razão da PA: '))
termo = primeirotermo #aqui ele me mostra o primeiro termo
cont = 1 #aqui ele vai contar quantos termos forão
total = 0
mais = 10 #vou simular que o cara quer mais 10 termos, qie é o que começa o programa, o programa começa mostrando 10 termos, depois é que o usuario pode escolher
while mais != 0:
 total = total + mais
 while cont <= total: #esse total será o total de termos que ele quer mostrar
 print('{} ->'.format(termo), end='')
 cont += 1
 termo += razão
 print('PAUSA')
 mais = int(input('Quantos termos a mais você quer mostrar? '))
print('Progressão finalizada com {} termos mostrados.'.format(total))
Exercício Python 63: Escreva um programa que leia um número N inteiro qualquer e mostre na tela os N primeiros elementos de uma Sequência de Fibonacci. Exemplo:
0 – 1 – 1 – 2 – 3 – 5 – 8
print('_' * 30)
print('Sequência de Fibonacci')
print('_' * 30)
n = int(input('Quantos termos você quer mostrar? '))
t1 = 0
t2 = 1
print('~' * 30)
print('{} -> {}'.format(t1, t2), end='')
cont = 3
while cont <= n:
 t3 = t1 +t2
 print(' -> {}'.format(t3), end='')
 t1 = t2
 t2= t3
 cont += 1
print(' -> FIM <-')
Exercício Python 64: Crie um programa que leia vários números inteiros pelo teclado. O programa só vai parar quando o usuário digitar o valor 999, que é a condição de parada. No final, mostre quantos números foram digitados e qual foi a soma entre eles (desconsiderando o flag).
num = 0
cont = 0 #esse contador recebe 0 pq eu não li numero nenhum ainda
soma = 0
while num != 999: #condição de parada é 999, o flag é 999
 num = int(input('Digite um número [999 para parar]: '))
 soma = soma + num
 cont = cont + 1 #quando eu ler o numero o contador recebe contador + 1
print('Você digitou {} números e a soma entre eles foi {}'.format(cont, soma))
· Nesta resolução acima existe um problema, pois vai somar o 999 como contador e na soma também, lendo o seguinte resultado:
Você digitou 4 números e a soma entre eles foi 1005
E eu não quero que some o 999 nem conte como número digitado
Então eu posso fazer o seguinte:
num = 0
cont = 0 #esse contador recebe 0 pq eu não li numero nenhum ainda
soma = 0
while num != 999: #condição de parada é 999, o flag é 999
 soma = soma + num
 cont = cont + 1 #quando eu ler o numero o contador recebe contador + 1
 num = int(input('Digite um número [999 para parar]: '))
print('Você digitou {} números e a soma entre eles foi {}'.format(cont, soma))
trocando o campo sublinhado de lugar ele já não soma mais o 999 mas continua contando 999 como número digitado
print('Você digitou {} números e a soma entre eles foi {}'.format(cont - 1, soma - 999))
nesta resolução acima, também funciona
Mas na resolução abaixo também funciona trocando os comandos para ler o numero de lugar e adicionando o mesmo comando no inicio
num = 0
cont = 0 #esse contador recebe 0 pq eu não li numero nenhum ainda
soma = 0
num = int(input('Digite um número [999 para parar]: '))
while num != 999: #condição de parada é 999, o flag é 999
 soma = soma + num
 cont = cont + 1 #quando eu ler o numero o contador recebe contador + 1
 num = int(input('Digite um número [999 para parar]: '))
print('Você digitou {} números e a soma entre eles foi {}'.format(cont, soma))
Exercício Python 65: Crie um programa que leia vários números inteiros pelo teclado. No final da execução, mostre a média entre todos os valores e qual foi o maior e o menor valores lidos. O programa deve perguntar ao usuário se ele quer ou não continuar a digitar valores.
resp = 'S'
soma = quant = média = maior = menor = 0
while resp in 'Ss':
 num = int(input('Digite um número: '))
 soma += num
 quant += 1
 if quant == 1:
 maior = menor = num
 else:
 if num > maior:
 maior = num
 if num < menor:
 menor = num
 resp = str(input('Quer continuar? [S/N] ')).upper().strip()[0]
média = soma / quant
print('Você digitou {} número e a média foi {}.'.format(quant, média))
print('O maior valor foi {} e o menor valor foi {}'.format(maior, menor))
resposta = 'S'
contador = soma = maior = menor = 0
while resposta in 'S':
 numero = int(input('Digite um número: '))
 resposta = str(input('Quer continuar? [S/N] ')).strip().upper()[0]
 contador += 1
 soma += numero
 if contador == 1:
 maior = menor = numero
 else:
 if numero > maior:
 maior = numero
 if numero < menor:
 menor = numero
print(f'A quantidade de número solicitados foi: {contador}')
print(f'A soma de todos os numeros é {soma}')
print(f'A média de todos os números é : {soma / contador}')
print(f'O maior número é: {maior}')
print(f'O menor número é: {menor}')
TABUADA COM WHILE 
t = i = 0
num = int(input('Digite um número: '))
while i <= 9:
 i += 1
print(f'{num} x {i} = {num * i}')
vamos supor que eu tenho número inteiro grande, com muitos dígitos, e eu quero que você faça programa que vai calcular a soma dos dígitos desse número. Então, se o número é 6532, ele vai somar seis mais cinco mais três mais dois. E ele vai dizer: seis mais cinco é onze, com cinco, 16. Então, dado isso aqui ele tem que dar a soma dos dígitos que nesse caso aqui seria 16. Como que você vai conseguir fazer isso?
	decrescente = True
	anterior = int(input('Digite o primeiro número da sequência: '))
	valor = 1
	while valor != 0 and decrescente:
	 valor = int(input('Digite o próximo número da sequência: '))
	 if valor > anterior:
	 decrescente = False
	 anterior = valor
	if decrescente:
	 print('A sequência está em ordem decrescente. :-)')
	else:
	 print('A sequência não está em ordem decrescente. :-(')
QUANTIDADE DE PAR E IMPAR
	terminou = False
	p = i = 0
	while (not terminou):
	    n = int(input("Digite um número, ou zero para terminar: "))
	    if n == 0:
	        terminou = True
	    else:
	        if n % 2 == 0:
	            p = p + 1
	        else:
	            i = i + 1
	
	print ("P = ", p)
	print ("I = ", i)

Mais conteúdos dessa disciplina