sexta-feira, 25 de janeiro de 2013

Python 3 - Leitura de dados com input()

Introdução

Olá pessoal, ultimamente venho estudando a linguagem de programação Python. Quando iniciei meus estudos o Python estava em sua versão 2.7. Nessa versão criei toda a minha base que tenho hoje de Python, porém, o Python foi atualizado para a versão 3. Nessa versão algumas funções foram modificadas consequentemente o modo de utilizá-las também. Hoje foi falar da função de capturar entradas do teclado.

Python 2

Na versão anterior (usada em vários sistemas) para se capturar entradas do teclado era necessário utilizar a função raw_input(). A função raw_input() retorna uma string que pode ser convertida em qualquer tipo númerico de Python. Exemplo:

nome = raw_input('Entre com o nome : ') idade = int(raw_input('Entre com a idade : ')
A primeira linha retorna uma string com o nome que o usuário digitou. A segunda linha retorna uma string com a idade digita e logo em seguida a função int() converte essa string para um valor número inteiro.

Python 3

Na versão 3 do Python a função raw_input() mudou de nome e passou a se chamar apenas input(). A ideia original na versão 3 do Python era que as funções input e raw_input() deixassem de existir. Se isso acontecesse uma simples ação de ler dados do teclado seria algo assim:

import sys print ('Entre com o nome : ') nome = sys.stdin.readline()
Muito mais trabalhoso não é mesmo!!! Portanto a escolha foi substituir raw_input() por input(). Veja como ficaria:

nome = input('Entre com o nome : ') idade = int(input('Entre com a idade : ')
Bom é isso ai galera, se você gosta de Python, Java e programação em geral continue acompanhando o blog. Deixe o seu comentário!!! Abs.

8 comentários:

  1. Muito, bom!
    Como faço para fazer várias atribuições usando atribuição mutlipas na mesma linha do console: tipo >>>> a,b,c,d = int(input()), int(input()), int(input()), int(input()) ?
    sendo que a minha entrada de dados é feito na mesma linha. Ex: 4 55 12 3

    ResponderExcluir
    Respostas
    1. a,b,c,d= map(int,input().split())
      print(a,b,c,d)

      Excluir
  2. input expected at most 1 arguments, got 2. No meu codigo ta dando esse erro. O que sera?

    #desprepl.py - calculo de despesas da republica

    print("Balanço de despesas da Casa dos estudantes")
    print
    print("Deixe um nome em branco para encerrar")
    print
    total = 0
    contas = {}
    while 1:
    pessoa = str(input("Digite o nome da pessoa: "))
    if not pessoa: break
    while 1:
    resp = (input("Quanto gastou:", pessoa))
    try:
    gasto = (resp)
    break
    except:
    print("Numero invalido.")
    contas[pessoa] = gasto
    total = total + gasto

    num_pessoas = len(contas)
    print
    print("Numeros de pessoas: ", num_pessoas)
    print("Total de gastos: R$ ", total)
    media = total/num_pessoas
    print('Gastos por pessoa: R$', media)
    print
    for nome in contas.keys():
    saldo = contas[nome]-media
    print('Saldo de: ') (nome, saldo)

    ResponderExcluir
  3. Olá amigo,

    No input não pode haver virgula, se vc quiser concatenar texto vc tem que interpolar (https://www.python.org/dev/peps/pep-0498/).

    Dá uma olhada aqui: https://gist.github.com/anonymous/23a0fe37f6691a0ed7ec55a83a4eaf91.

    Coloquei umas funções para dividir o código.

    ResponderExcluir

Novidade!!! Agora vamos ter canal no Youtube =D

Fala pessoal tudo beleza, estou sumido a correria está forte por aqui. Estou querendo dar um start em um projeto antigo que vem desde o temp...