Ver Feed RSS

root@blog:/# chmod o+r *

[Curso de Python] Interação com o usuário - Parte 1

Avalie este Post de Blog

Antes de prosseguir leia os artigos anteriores aqui



Nesse artigo de hoje vamos aprender como "entrar em contato" com o usuário. Para isso vamos ver duas funções: input e raw_input.

Interação com o usuário



A interação com o usuário pode ser feita de várias maneiras, solicitando que ele digite alguma coisa, passando argumentos, arquivos de entradas e redirecionamento por pipe. Como ainda estamos engatinhando em Python vamos ver a mais básica delas: solicitar que o usuário digite alguma coisa.


Preparando o ambiente

Primeiro crie um arquivo que será o seu programa. Aqui vou utilizar o arquivo de nome 'teste_input.py'. Para quem usa Linux, não se esqueça de dar permissão de execução ao arquivo: chmod +x teste_input.py

Depois de criar o arquivo, abra-o com o seu editor predileto, quem usa o Windows pode usar o IDLE que vem junto com o Python, para isto basta clicar com o botão direito sobre o arquivo e escolher a opção 'Edit with IDLE'. Para quem usa Linux, pode usar o próprio gedit, ele inclusive colore o código automaticamente. Para quem gosta também pode usar o VI, VIM, MCEDIT ou EMACS, eu particularmente adoro o VIM depois de bem configurado!

Primeiro exemplo: raw_input

Depois de abrir o arquivo coloque nele o seguinte código:
Código:
#!/usr/bin/env python

nome = raw_input('Ola! Qual o seu nome? ')
print 'Muito prazer %s!!'%nome
Muito simples certo?? Agora vou deixar algo pra vocês:
Exercício: Façam um programa que receba 2 números e imprima a soma dos dois.

Postem os códigos nos comentários! No próximo post iremos analisar esse exercício e um pouco sobre os comandos de input.
Até mais...

Comentários

  1. Avatar de tony130666
    #!/usr/bin/env python

    n1= input('Insira o primeiro numero inteiro ')
    n2= input('Insira o segundo numero inteiro ')

    print "A soma dos dois numeros eh:" , n1+n2
  2. Avatar de Magnun
    Olá tony130666, muito bom! O seu código funciona mas tem uma pequena falha! Vou falar sobre isso no próximo post! Até lá...
  3. Avatar de ilsahec
    muito bom
  4. Avatar de Markim
    Primeiramente parabéns pela iniciativa e pelo blog.

    Meu exercício:

    #!usr/bin/python
    # -*- coding: utf-8 -*-

    def linha():
    print '\n'
    print '-'*25
    print '\n'


    nome = raw_input('Ola! qual o seu nome? ')
    linha()
    print 'Seja bem vindo %s' % nome
    linha()

    num1 = (int(raw_input('Por favor digite um numero: ')))
    linha()

    num2 = (int(raw_input('Por favor digite outro numero: ')))
    linha()

    soma = num1 + num2
    print 'A soma dos dois numeros é: %s' % soma
    linha()
  5. Avatar de Magnun
    Ótima solução Markim! Posso ver que seu conhecimento em Python não é "básico" pois você utilizou funções e outras coisas mais...

    Fico feliz que tenha lido meu post e comentado! Espero que tenha lido os posts que seguem essa linha, como esse: [Curso de Python] Interação com o usuário - Parte 2 - Blogs - Under-Linux.org

    Espero que continue participando! Até mais...
  6. Avatar de AondenetInformatica
    Interessante esse curso. Parece que Magnun além de um um bom curso mantém certa interatividade com os que estudam. Depois de finalizar o meu curso que estou fazendo em Shell e diversas linguagens imbuídas como awk. Vou verificar melhor esse curso de Python. Mas não deixo de acompanhar e verificar a qualidade do material que é relevante.
  7. Avatar de tony130666
    Demorei, mas estou aqui. Pois é fiz bem simples e sem nenhum tratamento de erro, e funções e tal. Pois foi pedido para entrada de dois número e a soma dos dois.....
    Afinal tem que se entrar bem com iniciante. ou não?

    Uso o shell + commander ou + zenity, xdialog e etc..
    Mas é puro hobby...
    Espero aprender um pouco desta linguagem maravilhosa que é python.

    Alias o código do Markim ficou bem completo e talvez até completo demais para iniciantes.
    Seria bom explicá-lo passo a passo mais adiante.
    Bom corrija o inicio onde está:
    #!usr/bin/python >>> seria melhor #!/usr/bin/env python
    Houve dois erros um muito grave onde não tem a barra "/" e a falta do env.

    O "env" é irrelevante.

    Mas, a falta da barra "/" retorna erro de caminho inválido, por não existir o "usr/bin/python" fora da raiz, que deverira ser "/usr/bin/python".

    Pelo menos usando o chmod u+x pyprog.py
    e:
    $ ./pyprog.py

    Mas, funciona usando:
    $ python pyprog.py

    E também a indetação, pois sem ela o código não funciona. Pois a função que termina com ":" exige a tal indentação.

    Erro de indentação é culpa do retorno da página. ......

    Me corrija se eu estiver errado.

    E viva a liberdade de informação!!!
    Atualizado 20-08-2010 em 22:26 por tony130666
  8. Avatar de tony130666
    ### Aqui o código corrigido: ###
    ### Percebi que onde se titulava erro de indentação, é um erro de retorno do html da página.
    ### Então onde tem pontinhos é o o espaço dado. Então esqueça os pontos...

    #!/usr/bin/env python
    # -*- coding: utf-8 -*-

    def linha():
    .......print '\n'
    .......print '-'*25
    .......print '\n'


    nome = raw_input('Ola! qual o seu nome? ')
    linha()
    print 'Seja bem vindo %s' % nome
    linha()

    num1 = (int(raw_input('Por favor digite um numero: ')))
    linha()

    num2 = (int(raw_input('Por favor digite outro numero: ')))
    linha()

    soma = num1 + num2
    print 'A soma dos dois numeros é: %s' % soma
    linha()
    Atualizado 20-08-2010 em 22:21 por tony130666
  9. Avatar de Magnun
    Olá tony,

    Mandou bem, a / do /usr/bin me passou despercebido. Quanto à identação é o que vc falou mesmo. Lembrem-se de quando postar codigo aqui utilize as tags code (entre colchetes) e /code (entre colchetes) para que seja preservado a edentação.

    Até mais...
  10. Avatar de Não Registrado(s)
    Olá, fiz o exercício e ficou praticamente igual ao do Tony, portanto nem vou colocá-lo aqui. No início tive um pouco de dificuldades pois eu estava usando o "raw_input", o que resultou numa soma de strings (Ex.: 5 + 2 = 52), depois eu coloquei apenas o "input" e deu tudo certo, no problem! Por conta disto, vi num outro blog uma breve comparação entre estas duas formas e gostaria de compartilhar com vocês a título de curiosidade, creio que possa ser útil para iniciantes como eu:
    http://blog.larryjr.com/2009/06/o-input-do-python-3.html

    Parabéns pela iniciativa Magnun! \o/
  11. Avatar de tony130666
    Quanto tempo Magnun. Senti saudades de seu curso. Sempre falo bem dele. Um jeito de aprender que não se encontra em outro lugar. Muitos tutoriais a gente lê um monte de coisa e não interage. É muita canseira. Já suas aulas são ótimas. Estou tendo um tempinho e quero aproveitar para aprender de vez. Lembrei que participei dessa aula. Já estou um pouco melhor. Lembrei que fiz um código parecido com os apresentados, mas tive que repensar sobre a pessoa digitar números complexos como um ponto flutuante. Tipo, 2.0 sendo que exige um inteiro. Porém o usuário não sabe disso. Mas, aí teríamos que ter um tratamento de "erro" para alertar o usuário a digitar números inteiros corretamente.
    E aí? Já fez um PDF desse curso? Seria uma boa. Tutorias pela net não chegam nem perto do que você faz. Abraços e continue assim. Não esqueço de você, só estou sem muito tempo mesmo. WOW!!! 2 anos e 1 mês se passaram...
  12. Avatar de tony130666
    Brincando um pouco...
    Testando as tags (code) e (/code)
    Parece que aprendi mais essa.
    Obrigado pelo alerta Magnun.
    O "-tt" que coloquei na frente do python (não sei se funciona com o env) é para ajustar os espaços com os Tabs (quem vir primeiro). Me parece que é isso...

    Código:
    #!/usr/bin/env python -tt
    #-*- coding: utf -*-
    
    
    teste=raw_input("Digite a palavra, digitei para um teste legal: ")
    if teste == 'digitei':
        print "Você digitou: ",teste,"muito bom!!!"
    else:
        print "Você digitou: ",teste," e isso não foi legal"
  13. Avatar de carlos_cordeiro
    Olá Magnun sou eu de novo, estou entendendo tudo que você está explicando mais quando digito no IDLE:



    nome = raw_input('Ola! Qual o seu nome? ') print 'Muito prazer %s!!'%nome

    pressiono f5 para executar da erro de sintaxe no
    comando print.
    Será o que está acontecendo?
    Eu criei o arquivo, digitei tudo que você fez e deu
    erro.
    Muito obrigado
  14. Avatar de tony130666
    Código:
    nome =  raw_input('Ola! Qual o seu nome? ')
    print 'Muito prazer %s!!' % nome
    testei e funcionou normal.
  15. Avatar de tony130666
    Citação Postado originalmente por carlos_cordeiro
    Olá Magnun sou eu de novo, estou entendendo tudo que você está explicando mais quando digito no IDLE:



    nome = raw_input('Ola! Qual o seu nome? ') print 'Muito prazer %s!!'%nome

    pressiono f5 para executar da erro de sintaxe no
    comando print.
    Será o que está acontecendo?
    Eu criei o arquivo, digitei tudo que você fez e deu
    erro.
    Muito obrigado
    Faça do jeito que eu fiz.
    Quando quiser postar um código aqui, selecione todo o código e clique na # que fica entre as ferramentas aqui mesmo no editor.
    Do jeito que fez dá erro de sintaxe.
  16. Avatar de marcelo75
    #!/usr/bin/env python

    num = raw_input('digite um numero:')
    num1 = raw_input('degite outro numero:')

    print('a soma:'+(num,num1))

+ Enviar Comentário



Visite: BR-Linux ·  VivaOLinux ·  Dicas-L