Input de Dados
Desenvolvedores geralmente precisam interagir com os usuários, seja para obter dados ou fornecer algum tipo de resultado. A maioria dos programas hoje em dia usam uma caixa de diálogo como uma forma de solicitar ao usuário algum tipo de input (entrada) do usuário.
Na maioria dos casos, o input vem do teclado. Para este propósito, Python fornece a função input()
, que possui um parâmetro opcional, que é a string que será enviada para o usuário.
Até então todos os nossos programas foram estáticos, os valores das variáveis foram definidos por nós no código fonte. De forma a aumentar nossas opções de criações, vamos então aprender como podemos coletar dados dos usuários.
Exemplos Input
Começaremos chamando a função input()
, passando como argumento uma string que será retornada como feedback ao usuário e armazenaremos o valor digitado pelo usuário na variável n
que será impressa na sequência.
n = input("Insira um número: ")print(n)
Ao executarmos o código acima, o prompt de comandos aguardará pela entrada de dados por parte de usuário, uma vez informado o valor e enviado, ele será impresso. Vamos agora ver qual o tipo de dados que temos em n:
print(type(n)) # <class 'str'>
Como podemos ver, embora tenhamos digitado um número, ele nos retorno uma string, para obtermos um número podemos utilizar as funções int() ou float() para fazer a conversão.
n = int(input("Insira um número: "))print(type(n)) # <class 'int'>
O método eval() também é capaz de solucionar o nosso problema e até mesmo resolver expressões, muito útil, mas tenha cuidado com ele!
eval('2+3') # 5numero = eval(input("Digite um valor: "))print(numero) # 2.3print(type(numero)) # <class 'float'>
Pedra, Papel e Tesoura
Uma vez que sabemos como coletar dados de usuários, podemos agora criar jogos. Neste exemplo vamos construir o clássico Pedra, Papel e Tesoura, também conhecido como Jankenpon.
Para nos auxiliar neste pequeno projeto, vamos contar com a ajuda da função choice() da biblioteca random, ela será responsável por emular uma escolha pseudo-aleatória da máquina, entre as três opções disponíveis (Pedra, Papel e Tesoura).
Também iremos utilizar um While Loop para manter o jogo executando até que o usuário deseje sair.
Coletaremos o input do usuário através da função input()
e testaremos uma série de if
, elif
e else
para sabermos quem é o vitorioso.
from random import choiceopcoes = ['pedra', 'papel', 'tesoura']maquina = choice(opcoes)jogando = Truewhile jogando:print("# pedra\n# papel\n# tesoura\n# sair")player = input('Escolha entre uma das opções: ')if maquina == player.lower():print(f'Ocorreu um empate!')elif player.lower() == 'pedra':if maquina == 'papel':print(f'Você perdeu! {maquina} cobre {player.lower()}!')else:print(f'Parabéns! Você venceu! {player.lower()} quebra {maquina}!')elif player.lower() == 'papel':if maquina == 'tesoura':print(f'Você perdeu! {maquina} corta {player.lower()}!')else:print(f'Parabéns! Você venceu! {player.lower()} cobre {maquina}!')elif player.lower() == 'tesoura':if maquina == 'pedra':print(f'Você perdeu! {maquina} esmaga {player.lower()}!')else:print(f'Parabéns! Você venceu! {player.lower()} corta {maquina}!')elif player.lower() == 'sair':jogando = Falseelse:print('Jogada inválida, verifique se digitou a opção corretamente!')print('-'*45)maquina = choice(opcoes)
Como podemos ver, a função input() pode nos auxiliar na questão de receber dados de usuários e através dos diversos métodos vistos, podemos converter os dados recebidos para trabalharmos com eles de forma adequada.