Satisfação aspira! Bem vindo aos Tutoriais Marrs.

Hoje você vai aprender a fazer seus LOOPs usando a função WHILE no Python.

Basicamente, um loop ou laço de repetição acontece nas linguagens de programação quando você define uma instrução verdadeira e usa o comando para repetir.

FOR cria um incremento numérico para executar as instruções fazendo a contagem desse incremento. Mas se você quer executar uma instrução repetidamente e indefinidamente, você precisa instruir ao programa que a execução deve ser feita ENQUANTO uma condição estiver sendo atendida.

Algumas linguagens possuem uma instrução chamada DO… WHILE, não confunda! O WHILE fará a primeira execução apenas se a condição passada estiver OK, o DO… WHILE vai rodar pelo menos uma vez.

Bora pro exemplo,mas como sempre:

  • Não copie e cole, escreva o código
  • Não se limite ao exemplo, experimente
  • Tente entender o que está acontecendo

#Vamos simular um processo de inclusão de créditos para um jogo de JOKENPO

#primeiro as variáveis de controle

import random  # necessário para utilizar o módulo random para o CPU poder executar.

import time # só para dar uma pausa de 1 segundo na jogada!

credito = 0

options=('PEDRA', 'PAPEL', 'TESOURA') #Use uma tupla, pois as opções são constantes

win=loose=draw=0

#Primeiro vamos carregar uma variável para controlar o while

continua = input("Inserir crédito? S/N: ")

 

while (continua=='S' or continua=='s'): # Condicionado, o programa testa o que foi digitado e se digitar qualquer coisa diferente o loop acaba.

   credito+=1;

   print("###Você tem ", credito, "créditos")

   continua = input("Inserir crédito? S/N: ")

#perceba que foi necessário repetir o input aqui? Se não colocar 'continua' nunca mudará seu valor interno e o loop ficará infinito.

print("\n@@@-> Hora de JO.KEN.PO <-@@@" )

#Saindo do loop, se tiver pelo menos 1 crédito entramos no segundo loop que é o jogo, verificando se tem créditos

while credito !=0:

   cpu = random.choice(options) #aqui o programa escolhe entre uma das posições da tupla.

   human = int(input('\n[1]PEDRA\n[2]PAPEL\n[3]TESOURA\nESCOLHA: '))  #aqui o usuário entrará com uma opção

   if human == 1:

       human = 'PEDRA'

   elif human == 2:

       human = "PAPEL"

   elif human == 3:

       human = "TESOURA"

   else:

       print = "Escolheu errado - Perdeu!"

 

   time.sleep(1) #Aqule pausa que falei.

   print ("JO KEN PO!")

   time.sleep(1)   

   print ("##########CPU->", cpu)

   print ("##########VOCÊ->", human)

 

   if cpu == human:

       print ("EMPATE")

       draw+=1

   elif cpu == 'PEDRA' and human =='PAPEL':

       print ("Você ganhou!")

       win+=1

   elif cpu == 'PEDRA' and human =='TESOURA':  

       print ("CPU ganhou!")

       loose+=1

   elif cpu == 'PAPEL' and human =='PEDRA':  

       print ("CPU ganhou!")

       loose+=1

   elif cpu == 'PAPEL' and human =='TESOURA':  

       print ("Você ganhou!")

       win+=1

   elif cpu == 'TESOURA' and human =='PEDRA':  

       print ("Você ganhou!")

       win+=1

   elif cpu == 'TESOURA' and human =='PAPEL':  

       print ("CPU ganhou!")

       loose+=1

   else:

       print ("CPU ganhou!")

       loose+=1  

 

   credito-=1; # De novo, você PRECISA controlar quando o loop vai parar condicionando através de uma variável. Aqui os créditos vão acabando a cada jogada

  

#A condição do loop não sendo mais atendida você vai receber as mensagens finais.   

print("\n->Vitórias:",win, '\n->Derrotas:', loose, '\n->Empates:',draw)  

print("###ACABOU O CRÉDITO-OBRIGADO E VOLTE SEMPRE###")

 

O while é um ótimo controle de interação entre programa e usuário. Domine-o e seus programas vão ficar muito bons.

Você conseguiu fazer? 

Tente incrementar um programa de saque de dinheiro ou um programa que simule um caixa de supermercado incluindo valores de produtos.

Quer aprender como fazer, deixe nos comentários.

Até a próxima.