Enviar um café pro programador

Mostrando postagens com marcador Looping. Mostrar todas as postagens
Mostrando postagens com marcador Looping. Mostrar todas as postagens

Primos em Python - Como Saber se um Número é Primo ?

Neste nosso Tutorial de Python, vamos falar sobre os números primos.

Vamos te explicar o que é, sua importância, onde são usados e o principal: como criar um programa que checa se um determinado inteiro positivo é um número primo ou não.

Como ser um excelente programador

Bem, chegou a hora de realmente colocar a mão na massa e começar a programar, ok?

Antes, gostaríamos de sugerir o nosso texto 'Como ser um excelente programador', nele a gente vai te orientar sobre:
  1. O que estudar
  2. Como estudar programação da maneira correta
  3. O que é importante estudar
  4. Quais linguagens é bom saber
  5. Qual a melhor a melhor linguagem de programação
  6. Como entrar no mercado do trabalho
  7. Como se portar corretamente numa entrevista de emprego
  8. A característica mais importante que um programador deve ter

É simplesmente tudo que eu gostaria de saber antes de começar minha carreira de programador. Se eu tivesse lido o texto no início de meus estudos, teria aprendido programação bem mais rapidamente e mais corretamente. Sério, não deixem de ler, vai mudar sua vida.

Acesse nossa apostila para ler:


Os Números Primos

Um número é dito primo quando é possível dividir ele (divisão de inteiro com inteiro) por 1 e por ele mesmo.

Exemplos de números primos:
2, 3, 5, 7,  11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97, 101, 103, 107, 109, 113, 127, 131, 137, 139, 149, 151, 157, 163, 167, 173, 179, 181, 191, 193, 197, 199, 211, 223, 227, 229, 233, 239, 241, 251, 257, 263, 269, 271, 277, 281, 283, 293, 307, 311, 313, 317, 331, 337, 347, 349, 353, 359, 367, 373 ...

Pode sair tentando dividir esses daí por outro número menor, que não seja 1 ou ele mesmo, que não vai conseguir.


Exemplos de números que não são primos:
4: É possível dividir por 1, 2, e 4
6: É possível dividir por 1, 2, 3 e 6
8: É possível dividir por 1, 2, 4 e 8
2112: É divisível por 2 3 4 6 8 11 12 16 22 24 32 33 44 48 64 66 88 96 132 176 192 264 352 528 704 e 1056

Primos: Para que servem ?

Não, não é um conjunto inútil e sem sentido de números.
Se fosse, nem seriam estudados.

O assunto número primo é um dos mais pesquisados, estudados e misteriosos da história da humanidade.

Até hoje, não se tem uma fórmula para se criar números primos.
Ainda não descobriram um 'padrão' definitivo.

Um dos usos mais importante é no ramo da criptografia, principalmente com o algoritmo do sistema RSA.

Existem dois tipos de cigarras que possuem ciclos de vida de 13 e 17 anos, assim somente a cada 221 anos elas tem que dividir a floresta quando saem da terra, evitando se encontrar, o que prejudicaria sua permanência na natureza.

Enfim, se pesquisar na internet, vai achar uma infinidade de coisas onde os números primos estão metidos no dia-a-dia.

Há até quem use os números primos para ganhar na Mega-Sena.

Checar se um número é primo

Como Determinar e Verificar se um Número é Primo em Python

Vamos ver o problema que deu origem a este tutorial de Python, de nossa Lista de Exercícios de Laços e Loops


Inicialmente, pedimos um número inteiro e positivo para o usuário e armazenamos na variável n.

Vamos armazenar na variável mult o número de múltiplos que existe de 2 até n-1.

Ou seja, do intervalo (2, 3, 4, ..., n-1)
Isso é obtido usando a função range: range(2,n).

Vamos usar a variável count pra receber cada um desses valores, dentro desse intervalo.

Dentro do looping, temos que testar se o resto da divisão de n por count vai ser 0. Se for, é porque n é múltiplo de count, logo não é primo.

A medida que nosso programa ai encontrando múltiplos, conta eles na variável mult e exibe na tela.

Após terminar o laço, testamos o valor de mult.
Se permanecer zerado, é porque o número fornecido pelo usuário é primo.

Vejamos nosso código Python:

n = int(input("Verificar numeros primos ate: "))
mult=0

for count in range(2,n):
    if (n % count == 0):
        print("Múltiplo de",count)
        mult += 1

if(mult==0):
    print("É primo")
else:
    print("Tem",mult," múltiplos acima de 2 e abaixo de",n)

Desafio: crie um script em Python que checa se um número fornecido pelo usuário é primo ou não, usando laço while dessa vez.

Poste no comentário sua solução.


Lista de Exercícios de Laços e Loops

Lista de exercícios, resolvidos e com código comentado, sobre os laços e loops WHILE e FOR.

Tente resolver as questões a seguir após estudar:
Laços em Python: WHILE e FOR

Já adquiriu seu certificado? Com ele é possível trabalhar e ganhar dinheiro com Python!

Exercícios de Python  de Laços

Chegou ao fim a parte de Laços e Loopings!
Aprendemos tudo sobre os laços WHILE e FOR, que não são importantes, são essenciais, obrigatórios.

É praticamente impossível fazer qualquer coisa em Python sem usar WHILE ou FOR. Por isso estude bem, entenda os exemplos resolvidos e depois venha tentar resolver os seguintes exercícios.

São questões de Estruturas de Repetição do site Python.org.br .
Sugerimos o seguinte:

  1. Tente
  2. Tente de novo
  3. Novamente
  4. Chore em posição fetal
  5. Passe horas tentando
  6. Não durma algumas noites tentando
  7. Tente novamente



Somente após tentar MUITO e não conseguir, é que aconselhamos você a ver a solução, ok?

Só assim se evolui.
Ler a questão e ver a solução é algo praticamente inútil.
Se fizer isso, nem diga que estudou aqui pelo Curso Python Progressivo, pois vai ser um péssimo programador.

Questões de Estruturas de Repetição em Python




  1. Faça um programa que peça uma nota, entre zero e dez. Mostre uma mensagem caso o valor seja inválido e continue pedindo até que o usuário informe um valor válido.
    Solução: Validação de dados em Python
  2. Faça um programa que leia um nome de usuário e a sua senha e não aceite a senha igual ao nome do usuário, mostrando uma mensagem de erro e voltando a pedir as informações.
    Solução: Validação de dados em Python
  3. Faça um programa que leia e valide as seguintes informações:
    1. Nome: maior que 3 caracteres;
    2. Idade: entre 0 e 150;
    3. Salário: maior que zero;
    4. Sexo: 'f' ou 'm';
    5. Estado Civil: 's', 'c', 'v', 'd';
    Use a função len(string) para saber o tamanho de um texto (número de caracteres).
    Solução: Validação de dados em Python

  4. Supondo que a população de um país A seja da ordem de 80000 habitantes com uma taxa anual de crescimento de 3% e que a população de B seja 200000 habitantes com uma taxa de crescimento de 1.5%. Faça um programa que calcule e escreva o número de anos necessários para que a população do país A ultrapasse ou iguale a população do país B, mantidas as taxas de crescimento.
  5. Altere o programa anterior permitindo ao usuário informar as populações e as taxas de crescimento iniciais. Valide a entrada e permita repetir a operação.

    (4 e 5): Solução: Validação de dados em Python
  6. Faça um programa que imprima na tela os números de 1 a 20, um abaixo do outro. Depois modifique o programa para que ele mostre os números um ao lado do outro.
  7. Faça um programa que leia 5 números e informe o maior número.
  8. Faça um programa que leia 5 números e informe a soma e a média dos números.
    07. e 08: Programa que pede números, diz o maior, soma e média
  9. Faça um programa que imprima na tela apenas os números ímpares entre 1 e 50.
  10. Faça um programa que receba dois números inteiros e gere os números inteiros que estão no intervalo compreendido por eles.
  11. Altere o programa anterior para mostrar no final a soma dos números.
  12. Desenvolva um gerador de tabuada, capaz de gerar a tabuada de qualquer número inteiro entre 1 a 10. O usuário deve informar de qual numero ele deseja ver a tabuada. A saída deve ser conforme o exemplo abaixo:
    • Tabuada de 5:
      5 X 1 = 5
      5 X 2 = 10
      ...
      5 X 10 = 50
       
    Tabuada em Python

  13. Faça um programa que peça dois números, base e expoente, calcule e mostre o primeiro número elevado ao segundo número. Não utilize a função de potência da linguagem.
    Potência (exponenciação)
  14. Faça um programa que peça 10 números inteiros, calcule e mostre a quantidade de números pares e a quantidade de números ímpares.
  15. A série de Fibonacci é formada pela sequência 1,1,2,3,5,8,13,21,34,55,... Faça um programa capaz de gerar a série até o n−ésimo termo.
    Sequência de Fibonacci em Python

  16. A série de Fibonacci é formada pela sequência 0,1,1,2,3,5,8,13,21,34,55,... Faça um programa que gere a série até que o valor seja maior que 500.
  17. Faça um programa que calcule o fatorial de um número inteiro fornecido pelo usuário. Ex.: 5!=5.4.3.2.1=120
    Fatorial em Python
  18. Faça um programa que, dado um conjunto de N números, determine o menor valor, o maior valor e a soma dos valores.
  19. Altere o programa anterior para que ele aceite apenas números entre 0 e 1000.
  20. Altere o programa de cálculo do fatorial, permitindo ao usuário calcular o fatorial várias vezes e limitando o fatorial a números inteiros positivos e menores que 16.
  21. Faça um programa que peça um número inteiro e determine se ele é ou não um número primo. Um número primo é aquele que é divisível somente por ele mesmo e por 1.
    Número Primo em Python

  22. Altere o programa de cálculo dos números primos, informando, caso o número não seja primo, por quais número ele é divisível.
  23. Faça um programa que mostre todos os primos entre 1 e N sendo N um número inteiro fornecido pelo usuário. O programa deverá mostrar também o número de divisões que ele executou para encontrar os números primos. Serão avaliados o funcionamento, o estilo e o número de testes (divisões) executados.
  24. Faça um programa que calcule o mostre a média aritmética de N notas.
  25. Faça um programa que peça para n pessoas a sua idade, ao final o programa devera verificar se a média de idade da turma varia entre 0 e 25,26 e 60 e maior que 60; e então, dizer se a turma é jovem, adulta ou idosa, conforme a média calculada.
  26. Numa eleição existem três candidatos. Faça um programa que peça o número total de eleitores. Peça para cada eleitor votar e ao final mostrar o número de votos de cada candidato.
  27. Faça um programa que calcule o número médio de alunos por turma. Para isto, peça a quantidade de turmas e a quantidade de alunos para cada turma. As turmas não podem ter mais de 40 alunos.
  28. Faça um programa que calcule o valor total investido por um colecionador em sua coleção de CDs e o valor médio gasto em cada um deles. O usuário deverá informar a quantidade de CDs e o valor para em cada um.
  29. O Sr. Manoel Joaquim possui uma grande loja de artigos de R$ 1,99, com cerca de 10 caixas. Para agilizar o cálculo de quanto cada cliente deve pagar ele desenvolveu um tabela que contém o número de itens que o cliente comprou e ao lado o valor da conta. Desta forma a atendente do caixa precisa apenas contar quantos itens o cliente está levando e olhar na tabela de preços. Você foi contratado para desenvolver o programa que monta esta tabela de preços, que conterá os preços de 1 até 50 produtos, conforme o exemplo abaixo:
    • Lojas Quase Dois - Tabela de preços
      1 - R$ 1.99
      2 - R$ 3.98
      ...
      50 - R$ 99.50
  30. O Sr. Manoel Joaquim acaba de adquirir uma panificadora e pretende implantar a metodologia da tabelinha, que já é um sucesso na sua loja de 1,99. Você foi contratado para desenvolver o programa que monta a tabela de preços de pães, de 1 até 50 pães, a partir do preço do pão informado pelo usuário, conforme o exemplo abaixo:
    • Preço do pão: R$ 0.18
      Panificadora Pão de Ontem - Tabela de preços
      1 - R$ 0.18
      2 - R$ 0.36
      ...
      50 - R$ 9.00
  31. O Sr. Manoel Joaquim expandiu seus negócios para além dos negócios de 1,99 e agora possui uma loja de conveniências. Faça um programa que implemente uma caixa registradora rudimentar. O programa deverá receber um número desconhecido de valores referentes aos preços das mercadorias. Um valor zero deve ser informado pelo operador para indicar o final da compra. O programa deve então mostrar o total da compra e perguntar o valor em dinheiro que o cliente forneceu, para então calcular e mostrar o valor do troco. Após esta operação, o programa deverá voltar ao ponto inicial, para registrar a próxima compra. A saída deve ser conforme o exemplo abaixo:
    • Lojas Tabajara 
      Produto 1: R$ 2.20
      Produto 2: R$ 5.80
      Produto 3: R$ 0
      Total: R$ 9.00
      Dinheiro: R$ 20.00
      Troco: R$ 11.00
      ...
  32. Faça um programa que calcule o fatorial de um número inteiro fornecido pelo usuário. Ex.: 5!=5.4.3.2.1=120. A saída deve ser conforme o exemplo abaixo:
    • Fatorial de: 5
      5! =  5 . 4 . 3 . 2 . 1 = 120
  33. O Departamento Estadual de Meteorologia lhe contratou para desenvolver um programa que leia as um conjunto indeterminado de temperaturas, e informe ao final a menor e a maior temperaturas informadas, bem como a média das temperaturas.
  34. Os números primos possuem várias aplicações dentro da Computação, por exemplo na Criptografia. Um número primo é aquele que é divisível apenas por um e por ele mesmo. Faça um programa que peça um número inteiro e determine se ele é ou não um número primo.
  35. Encontrar números primos é uma tarefa difícil. Faça um programa que gera uma lista dos números primos existentes entre 1 e um número inteiro informado pelo usuário.
  36. Desenvolva um programa que faça a tabuada de um número qualquer inteiro que será digitado pelo usuário, mas a tabuada não deve necessariamente iniciar em 1 e terminar em 10, o valor inicial e final devem ser informados também pelo usuário, conforme exemplo abaixo:
    • Montar a tabuada de: 5
      Começar por: 4
      Terminar em: 7
      
      Vou montar a tabuada de 5 começando em 4 e terminando em 7:
      5 X 4 = 20
      5 X 5 = 25
      5 X 6 = 30
      5 X 7 = 35
      Obs: Você deve verificar se o usuário não digitou o final menor que o inicial.
  37. Uma academia deseja fazer um senso entre seus clientes para descobrir o mais alto, o mais baixo, a mais gordo e o mais magro, para isto você deve fazer um programa que pergunte a cada um dos clientes da academia seu código, sua altura e seu peso. O final da digitação de dados deve ser dada quando o usuário digitar 0 (zero) no campo código. Ao encerrar o programa também deve ser informados os códigos e valores do clente mais alto, do mais baixo, do mais gordo e do mais magro, além da média das alturas e dos pesos dos clientes
  38. Um funcionário de uma empresa recebe aumento salarial anualmente: Sabe-se que:
    1. Esse funcionário foi contratado em 1995, com salário inicial de R$ 1.000,00;
    2. Em 1996 recebeu aumento de 1,5% sobre seu salário inicial;
    3. A partir de 1997 (inclusive), os aumentos salariais sempre correspondem ao dobro do percentual do ano anterior. Faça um programa que determine o salário atual desse funcionário. Após concluir isto, altere o programa permitindo que o usuário digite o salário inicial do funcionário.
  39. Faça um programa que leia dez conjuntos de dois valores, o primeiro representando o número do aluno e o segundo representando a sua altura em centímetros. Encontre o aluno mais alto e o mais baixo. Mostre o número do aluno mais alto e o número do aluno mais baixo, junto com suas alturas.
  40. Foi feita uma estatística em cinco cidades brasileiras para coletar dados sobre acidentes de trânsito. Foram obtidos os seguintes dados:
    1. Código da cidade;
    2. Número de veículos de passeio (em 1999);
    3. Número de acidentes de trânsito com vítimas (em 1999). Deseja-se saber:
    4. Qual o maior e menor índice de acidentes de transito e a que cidade pertence;
    5. Qual a média de veículos nas cinco cidades juntas;
    6. Qual a média de acidentes de trânsito nas cidades com menos de 2.000 veículos de passeio.
  41. Faça um programa que receba o valor de uma dívida e mostre uma tabela com os seguintes dados: valor da dívida, valor dos juros, quantidade de parcelas e valor da parcela.
    • Os juros e a quantidade de parcelas seguem a tabela abaixo:
      Quantidade de Parcelas  % de Juros sobre o valor inicial da dívida
      1       0
      3       10
      6       15
      9       20
      12      25
      Exemplo de saída do programa:
      Valor da Dívida Valor dos Juros Quantidade de Parcelas  Valor da Parcela
      R$ 1.000,00     0               1                       R$  1.000,00
      R$ 1.100,00     100             3                       R$    366,00
      R$ 1.150,00     150             6                       R$    191,67
  42. Faça um programa que leia uma quantidade indeterminada de números positivos e conte quantos deles estão nos seguintes intervalos: [0-25], [26-50], [51-75] e [76-100]. A entrada de dados deverá terminar quando for lido um número negativo.
  43. O cardápio de uma lanchonete é o seguinte:
    • Especificação   Código  Preço
      Cachorro Quente 100     R$ 1,20
      Bauru Simples   101     R$ 1,30
      Bauru com ovo   102     R$ 1,50
      Hambúrguer      103     R$ 1,20
      Cheeseburguer   104     R$ 1,30
      Refrigerante    105     R$ 1,00
      Faça um programa que leia o código dos itens pedidos e as quantidades desejadas. Calcule e mostre o valor a ser pago por item (preço * quantidade) e o total geral do pedido. Considere que o cliente deve informar quando o pedido deve ser encerrado.
  44. Em uma eleição presidencial existem quatro candidatos. Os votos são informados por meio de código. Os códigos utilizados são:
    • 1 , 2, 3, 4  - Votos para os respectivos candidatos 
      (você deve montar a tabela ex: 1 - Jose/ 2- João/etc)
      5 - Voto Nulo
      6 - Voto em Branco
      Faça um programa que calcule e mostre:
    • O total de votos para cada candidato;
    • O total de votos nulos;
    • O total de votos em branco;
    • A percentagem de votos nulos sobre o total de votos;
    • A percentagem de votos em branco sobre o total de votos. Para finalizar o conjunto de votos tem-se o valor zero.
  45. Desenvolver um programa para verificar a nota do aluno em uma prova com 10 questões, o programa deve perguntar ao aluno a resposta de cada questão e ao final comparar com o gabarito da prova e assim calcular o total de acertos e a nota (atribuir 1 ponto por resposta certa). Após cada aluno utilizar o sistema deve ser feita uma pergunta se outro aluno vai utilizar o sistema. Após todos os alunos terem respondido informar:
    1. Maior e Menor Acerto;
    2. Total de Alunos que utilizaram o sistema;
    3. A Média das Notas da Turma.
      Gabarito da Prova:
      
      01 - A
      02 - B
      03 - C
      04 - D
      05 - E
      06 - E
      07 - D
      08 - C
      09 - B
      10 - A
      Após concluir isto você poderia incrementar o programa permitindo que o professor digite o gabarito da prova antes dos alunos usarem o programa.
  46. Em uma competição de salto em distância cada atleta tem direito a cinco saltos. No final da série de saltos de cada atleta, o melhor e o pior resultados são eliminados. O seu resultado fica sendo a média dos três valores restantes. Você deve fazer um programa que receba o nome e as cinco distâncias alcançadas pelo atleta em seus saltos e depois informe a média dos saltos conforme a descrição acima informada (retirar o melhor e o pior salto e depois calcular a média). Faça uso de uma lista para armazenar os saltos. Os saltos são informados na ordem da execução, portanto não são ordenados. O programa deve ser encerrado quando não for informado o nome do atleta. A saída do programa deve ser conforme o exemplo abaixo:
    Atleta: Rodrigo Curvêllo
    
    Primeiro Salto: 6.5 m
    Segundo Salto: 6.1 m
    Terceiro Salto: 6.2 m
    Quarto Salto: 5.4 m
    Quinto Salto: 5.3 m
    
    Melhor salto:  6.5 m
    Pior salto: 5.3 m
    Média dos demais saltos: 5.9 m
    
    Resultado final:
    Rodrigo Curvêllo: 5.9 m
  47. Em uma competição de ginástica, cada atleta recebe votos de sete jurados. A melhor e a pior nota são eliminadas. A sua nota fica sendo a média dos votos restantes. Você deve fazer um programa que receba o nome do ginasta e as notas dos sete jurados alcançadas pelo atleta em sua apresentação e depois informe a sua média, conforme a descrição acima informada (retirar o melhor e o pior salto e depois calcular a média com as notas restantes). As notas não são informados ordenadas. Um exemplo de saída do programa deve ser conforme o exemplo abaixo:
    Atleta: Aparecido Parente
    Nota: 9.9
    Nota: 7.5
    Nota: 9.5
    Nota: 8.5
    Nota: 9.0
    Nota: 8.5
    Nota: 9.7
    
    Resultado final:
    Atleta: Aparecido Parente
    Melhor nota: 9.9
    Pior nota: 7.5
    Média: 9,04
  48. Faça um programa que peça um numero inteiro positivo e em seguida mostre este numero invertido.
    • Exemplo:
        12376489
        => 98467321
  49. Faça um programa que mostre os n termos da Série a seguir:
    •   S = 1/1 + 2/3 + 3/5 + 4/7 + 5/9 + ... + n/m. 
      Imprima no final a soma da série.
  50. Sendo H= 1 + 1/2 + 1/3 + 1/4 + ... + 1/N, Faça um programa que calcule o valor de H com N termos.
  51. Faça um programa que mostre os n termos da Série a seguir:
    •   S = 1/1 + 2/3 + 3/5 + 4/7 + 5/9 + ... + n/m. 
      Imprima no final a soma da série.


Envie sua solução

O mais bacana de se programar é ver soluções diferentes.
As vezes passamos meses programando, escrevemos milhares de linhas de código...aí vem um filho da mãe que resolve tudo de maneira melhor, mais rápido e usando só 20 linhas.

Acontece.

Por isso, poste ai nos comentários sua solução.
Não tenha vergonha, vamos discutir!

WHILE em Python - Como usar

Neste tutorial de nosso curso de Python, vamos estudar uma das coisas mais importantes e usada em programação: o laço while (ou looping while).



Laço WHILE

Sem mais delongas, vamos aprender a usar essa arma de destruição em massa, que é o laço while.

Seu formato é

while <teste>:
   codigo1
   codigo2
   codigo3
   ... 

codigo4

A instrução while funciona assim:
Assim que começa o while, ele faz um teste (como se fosse um IF teste condicional) e testa a instrução <teste>.

Se este teste resultar em verdadeiro (TRUE), tudo que está dentro do laço while (codigo1, codigo2, codigo3..., é executado).

Terminou de executar tudo?
Testa de novo. Deu true? Executa tudo de novo...

E fica assim, testando, executando, testando, executando...
Como se fosse um looping. E, de fato, é um looping.

E só vai parar quando o teste for FALSE.
Aí acaba o while e o 'codigo4', de fora, é executado e o script segue seu percurso naturalmente.

Você vai entender melhor usando alguns exemplos.




Exemplo 1 de uso do laço WHILE

"Crie um programa que imprima na tela os números 1 até o 10, usando o laço while".

Primeiro de tudo, vamos declarar a variável 'numero' e fazer ela iniciar com valor 1.

O que queremos é imprimir ela, depois fazer ela virar o número 2 e imprimir de novo. Fazer ela receber o número 3, e imprimir de novo...até virar o número 10, imprimir e acabar aí.

O nosso teste é: 'numero é menor ou igual a 10? Ok, então imprime'.
E o looping é simplesmente imprimir nossa variável.

Nosso código Python fica assim:

numero=1

while numero<=10:
    print(numero)
    numero += 1

Tem uma novidade aí: numero += 1
Que é o mesmo que: numero = numero + 1

Ou seja, estamos incrementando a variável 'numero' em uma unidade.
Vamos ver passo a passo como funciona esse tal de while.

Primeiro definimos nossa variável com valor 1.
Depois testamos se ela é menor que 10. Como é, vai executar o laço while.
Primeiro, imprime o valor da variável, que é 1.
Depois adiciona 1 a essa variável.

Agora ela vale 2. O teste é realizado, como 2 é menor que 10.
Executa de novo...imprime 2, incrementa e agora a variável é 3.

E assim vai indo, indo, repetindo, repetindo...vai chegar uma hora que 'numero=10'

Como 'numero<=10' é verdadeiro, o laço while é executado.
O número 10 é impresso na tela, e ele vira 11.

Agora, o teste vai dar falso e o while vai parar de executar.
E prontinho, você imprimiu do número 1 até o 10 usando o laço while!

Simples, não?
Vamos aprofundar mais e deixa esse código mais interessante.



Exemplo 2 de uso do laço WHILE

"Faça um programa que peça um número maior que 1 ao usuário. Em seguida, imprima todos os números, de 1 até o número que o usuário informou".

No exemplo anterior, a gente tinha um 'limite', que era o valor 10.
Quando chegava em 10...créu. Acabava o laço while.

Agora esse valor vai ser informado pelo usuário. Vamos armazenar essa informação na variável 'max' (de máximo).

Nosso código fica:

numero=1
max = int(input("Digite um inteiro maior que 1: ") )

while numero <= max:
    print(numero)
    numero += 1


Experimente digita 100, 1000, um milhão, um trilhão...
Veja que interessante: quantas vezes esse while vai ser executado?

Ué, depende do usuário!
Pode repetir uma vez, 10, mil, 1 trilhão...há uma interação entre o script e o usuário, vai fazer coisas diferentes de acordo com o desejo do usuário.

Exemplo 3 de uso do laço WHILE

"Escreva um programa que repita pra sempre, na tela, a mensagem 'Curso Python Progressivo'".

Quando que um laço vai se repetir pra sempre, indefinidamente?
Ué, quando seu teste for SEMPRE verdadeiro!

while True:
    print("Curso Python Progressivo")


Também poderia colocar '1', '2' ou qualquer outro valor diferente de 0 ou false no teste, que daria sempre verdadeiro e iria sempre repetir.

Exemplo 4 de uso do laço WHILE

"Crie um programa que peça um número ao usuário e imprima todos os números pares de 1 até o número fornecido"

Vamos usar o código do exemplo 2.
Porém, não vamos sair imprimindo tudo. Devemos fazer um teste antes (teste condicional IF) para saber se o número é primo, se for aí sim imprimimos.

Ou seja, vamos ter um IF dentro de um WHILE:

numero=1
max = int(input("Digite um inteiro maior que 1: ") )

print("Numeros pares entre 1 e", max, ":")

while numero <= max:
    if numero%2==0:
        print(numero,  end=" ")
    numero+=1

O end=" " é para mostrar um espaço em branco após imprimir cada número, ao invés de quebra de linha (enter).

Looping while em Python

Exemplo 5 de uso do laço WHILE

"Escreva um programa que pede a senha ao usuário, e só sai do looping quando digitarem corretamente a senha"

Obviamente, a senha é o número mais importante do universo:
senha='2112'

A senha que o usuário vai digitar, vai ficar na variável 'tentativa'.

Se 'senha' e 'tentativa' forem diferentes, o laço while fica repetindo e repetindo e repetindo...sempre pedindo a senha ao usuário.

O laço while só acaba quando as variáveis 'senha' e 'tentativa' forem iguais, ou seja, quando o usuário digitar a senha correta:

senha='2112'
tentativa=input("Digite a senha:")

while (senha != tentativa):
    print("Senha errada! Tente novamente!")
    tentativa=input("Digite a senha:")

print("Senha correta. Entrando no sistema...")

Pelo amor de deus, agora que sabe como funciona, não vai sair por aí usando seus conhecimentos pra invadir o sistema da Nasa, FBI, Polícia Federal ....


Exemplo 6 de uso do laço WHILE

"Programe um script em Python que calcule a média de uma turma, não importa o número de alunos que ela tenha, seu único script serve para todos os casos"

Esse é o problema que descrevemos quando falamos de laços e loopings em Python.

Primeiro, perguntamos quantos alunos tem na turma e armazenamos em "alunos".

Vamos usar uma variável de apoio, chamada 'count', ela vai de 1 até o número de alunos, ok ? Ela que é incrementada no laço while (cresce de um em um).
A soma de todos os alunos, armazenamos na variável 'soma'.

Agora vem o laço while.
O teste é se 'count' é menor que 'alunos'. Se sim, vamos pedir a nota de cada aluno, do primeiro até o aluno de número 'alunos'.

A nota que o usuário digitar, vai ser armazenada na variável 'nota'.
Em seguida, armazenamos na variável 'soma'.

E assim vai indo, de aluno em aluno...no final, temos a soma total das notas de tooodo mundo, e não importa o número de alunos na turma, seja um aluno, 10, 20 ou mil alunos, a variável 'soma' vai ter a soma da nota de todo mundo.

Quando acabar o while basta dividir essa 'soma' pelo número de alunos ('alunos') e prontinho, temos a média da turma, não importando o tamanho da turma:

alunos=int(input("Numeros de alunos na turma: "))

count=1; soma = 0.0
while count <= alunos:
    print("Nota do aluno ", count, ":")
    nota = float( input() )
    soma += nota
    count += 1

print("Media da turma: ", (soma/alunos) )

Foda, essa instrução while, não é?

Laços e Loopings - O que são? Para que servem ?

Antes de entrarmos em detalhes sobre um dos assuntos mais importantes de nosso Curso de Python, que são os laços (também conhecido por loopings) while e for, vamos tentar entender a motivação por trás deles.

Em vez de vir e jogar definições e instruções na sua cara, vou fazer entender que alguma coisa deve ser feita/estudada para que nossos conhecimentos possam fazer programas poderosos, grandes e interessantes.


Repetindo estruturas e códigos

"O professor Bruce Dickinson vai dar aula em uma faculdade, é o novo professor e ele precisa que você crie um programa que calcula a média de todos os alunos e diga a média da turma. O professor Bruce tem várias turmas, dos mais variados tamanhos. Resolva esse problema."

"Ah, moleza. Só pedir as notas de cada aluno, somar e calcular pelo tanto de alunos na turma. Até já fizemos exercício disso, Python Progressivo, esqueceu?"

Ok, vamos lá.
Vamos supor que nossa turma tenha 2 alunos.
Nosso código é

media2.py:
nota1 = float(input("Nota 1:"))
nota2 = float(input("Nota 2:"))

media = (nota1+nota2)/2

print("A media é: ", media)


Já se tiver 3 alunos, será
media3.py
nota1 = float(input("Nota 1:"))
nota2 = float(input("Nota 2:"))
nota3 = float(input("Nota 3:"))

media = (nota1+nota2+nota3)/3

print("A media é: ", media)


Se a turma tiver 50 alunos, nosso script é...
(imagine aqui um código gigante, que pede 50 notas, vá somando todas e divida tudo por 50).

Prontinho, você manda vários e vários scripts para o professor, para ele usar cada um de acordo com o número de alunos de cada turma.

Ok? Parece fazer sentido, ficou bacana?


Programação é simplificação

NÃO!!! Caramba, que ideia bizarra!

Para cada turma, usar um script diferente? Ia ter o que, uma pasta com 50 programas?

Quando quer usar duas células no Excel, você abre uma planilha.
Para usar três células, você vai abrir outra planilha? Claro que não!
Pode usar uma ou um milhão de células, pode usar a mesma planilha, o Excel não vai te fazer usar milhares de programas diferentes para trabalhar.

O mesmo vale para nosso script.
E se você for contratado para fazer o censo, vai fazer um script com 1 milhão de linhas, pedindo 1 milhão de informação diferente, de cada pessoa...vai usar milhões de variáveis num programa só?

Claro que não! Isso é impossível de se fazer manualmente!

A gente programa pra resolver problemas que seriam difíceis de se fazer na mão. A gente programa pra deixar a vida mais fácil.

E não tenha dúvidas,se estudar pelo Python Progressivo, vai fazer muitos e muitos programas úteis, uma nova rede social, um novo Google, um novo Youtube...

Progamar é encontrar padrões

O grande segredo da programação é na sua capacidade de notar padrões.
Identificar padrões é o ideal.

Vamos identificar em nosso exemplo?
Primeiro, devemos saber o número de alunos da turma.
E quem sabe isso? O Bruce. Então nosso programa vai pedir a ele esse valor x de alunos.

Em seguida, o que fazemos?
Para cada aluno, do primeiro até o de número x, vamos pedir um valor e armazenar em uma variável diferente.

Ao final de tudo, nosso script vai somar da primeira variável até a variável que contém o valor da nota do aluno de número x.

Depois simplesmente divide tudo por x. Essa é a média.

Veja o padrão: o x pode ser 1, 2, 3, 4, ..., 2112, ...1 milhão
Tanto faz. A ideia é sempre essa, sempre o mesmo roteiro (script em inglês).


Laços e Loopings em Python

Um laço, ou um looping, é algo que se repete.
Vamos estudar os laços while e for, e chamamos ele de estruturas de repetição.

No nosso exemplo, uma coisa se repete: ficar pedindo as notas.
Vamos fazer com que nossos programas fiquem presos em determinados loopings, fazendo coisas repetidas (como pedir nota), até onde desejarmos (no caso, deve se repetir x vezes).

Para nós, pedir 1 milhão de dados, usando 1 milhão de linhas de comando, é algo impossível de se fazer na mão.

Mas para os computadores não. Fazem isso em milésimos de segundos.

E o que um programador Python faz?
Manda no computador. Faz ele te obedecer. Cria programas Python que fazem de um computador seu escravo.

Assim, com poucas linhas, você vai programar scripts que fazem milhões de coisas, bilhões...quantas vezes você quiser e mandar.

Você tá ficando foda pra caramba.
Sinta o poder. É você saindo da Matrix e aprendendo a criar sua própria Matrix.

Operadores de Comparação em Python: ==, != , >, <, >=, <=

Já falamos em algum tutorial passado, que a função básica do computador é computar, ou seja, fazer contas, cálculos.

Outro pilar da computação é a comparação.
Você pode não acreditar agora, mas a tecnologia hoje é o que é por conta da capacidade dos computadores de contar e fazer comparações.

No término deste módulo, sobre teste condicionais e laços, você vai entender bem isso.

Mas antes de estudar estes assuntos, precisamos conhecer alguns operadores que fazem comparações.


Operador de igualdade: ==

Quando queremos comparar dois valores, usamos o operador de igualdade, que é: ==

Por exemplo, ao escrever 'x == y' estamos fazendo uma comparação, uma pergunta: x é igual a y?

Vamos fazer algumas comparações no interpretador do Python, e ver o resultado que ele nos dá:

Curso de Python

Basicamente, o que fizemos perguntar ao Python: '1 é igual a 1?', '2 é igual a 2?' e '1 é igual a 2'? E ele foi nos respondendo com True ou False.

Cuidado para não confundir:
x=1 : aqui estamos fazendo uma atribuição, dizendo que a variável x vai ter o valor 1 e ponto final. Acabou. É uma afirmação.
x==1 : aqui é uma comparação, estamos perguntando ao Python: 'Pyzinho querido, x tem valor 1?' E ele responde com verdadeiro ou falso. Ok ?



Operador de diferente: !=

O contrário do operador 'igual a' é o operador 'diferente de', representado por !=

Este operador compara duas coisas, e retorna True se forem diferentes e False se forem iguais.

Apostila de Python grátis para download

Operador maior que: >

Esse e os próximos, você vai se lembrar da escola.
> é o operador 'maior que'.

Quando fazemos: x > y, estamos querendo saber se x é maior que y.
Se for verdade, retorna True.
Se x por igual ou menor que y, retorna False.

Operador menor que: <

Ao fazer: x < y , estamos perguntando ao Python se x é menor que y.
Se ele for menor mesmo, retorna True.
Se for igual ou maior que y, retorna False.

Tutorial de Python online grátis

Operador maior igual a: >=

Seja a operação: x >= y
Você deve ler: x maior ou igual a y

Esse operador vai retornar True (verdadeiro) se x for igual a y ou se x for maior que y.
Vai retornar False apenas se x for menor que y.

Operador menor igual a: <=

x <= y
Você deve ler: x menor ou igual a y

Retorna True se x for igual a y ou menor.
Se x for maior que y, retorna False.

Curso Python Progressivo

Operadores de Comparação: Tabela

x == y         x é igual a y ?
x != y         x é diferente de y ?
x  > y         x é maior que y?
x  < y         x é menor que y ?
x >= y         x é maior ou igual a y ?
x <= y         x é menor ou igual a y ?Prontinho. Bem simples, fáceis e óbvios de se entenderem, os operadores de comparação, não é verdade?

Parece até algo 'bobo' demais, mas você vai ver que vai ser capaz de fazer muita, mas muita maldade mesmo, usando estes operadores.