uma dúvida sobre uma questão de Python

1,802 views
Skip to first unread message

Marcus V. Patriota

unread,
May 3, 2012, 7:59:52 PM5/3/12
to python...@googlegroups.com
Faça um programa que solicite a data de nascimento(dd/mm/aaaa) do usuário
 e imprima a data com o nome do mês por extenso. Exemplo: 
Data de Nascimento: 29/10/1973 o Você nasceu em 29 de Outubro de 1973.
'''
lista=(janeiro:[1],feverero:[2],...)
dia=input("Digite sua data de nascimento:") 
mes=input("Digite o mês de nascimento:")
ano=input("Digite o ano de nascimento:") 
print "%i/%i/%i" %(dia,mes,ano)

da dano erro na linha lista 
obs: a lista tem todos os meses 

obrigado pela atenção

Danillo Souza

unread,
May 3, 2012, 8:04:02 PM5/3/12
to python...@googlegroups.com
Ta dando erro porque você fez uma lista, com a intenção de usar como um dicionário, mas usou a sintaxe de forma muito errada, e depois apenas escreveu na tela o que o usuário já havia digitado.
Leia o link que já te mandei na oura thread, falando sobre dicionários[1] em Python, isso resolve esse seu problema, e aqueles anteriores também.

Abs.

--
------------------------------------
Grupo Python-Brasil
http://www.python.org.br/wiki/AntesDePerguntar
 
<*> Para visitar o site do grupo na web, acesse:
http://groups.google.com/group/python-brasil
 
<*> Para sair deste grupo, envie um e-mail para:
python-brasi...@googlegroups.com

Daniel Batista Lemes

unread,
May 3, 2012, 8:07:32 PM5/3/12
to python...@googlegroups.com

eh q ele quer q alguem faca para ele

Marcus V. Patriota

unread,
May 3, 2012, 8:12:31 PM5/3/12
to python...@googlegroups.com
naum quero tira uma dúvida com relação a lista pois naum aprendemos usar um dicionario 

--
------------------------------------
Grupo Python-Brasil
http://www.python.org.br/wiki/AntesDePerguntar
 
<*> Para visitar o site do grupo na web, acesse:
http://groups.google.com/group/python-brasil
 
<*> Para sair deste grupo, envie um e-mail para:

Marcus V. Patriota

unread,
May 3, 2012, 8:13:48 PM5/3/12
to python...@googlegroups.com

Filipe Cifali

unread,
May 3, 2012, 8:46:07 PM5/3/12
to python...@googlegroups.com
Básicamente, use a lista assim:

mes=['janeiro','fevereiro']

E acesse o ponto correto conforme os índices dela.

Nilson Pimentel

unread,
May 3, 2012, 8:48:42 PM5/3/12
to python...@googlegroups.com
Já fiz essa questão...
Taí o código pra você tirar essa dúvida, fiz de uma forma mais simples, use o meu código pra estudar e não apenas pra ganhar nota.

4ª Questao.py

Francisco Vianna

unread,
May 3, 2012, 8:49:19 PM5/3/12
to python...@googlegroups.com
Contra todos os meus pricípios vou te dar uma dica, mas por favor: Não precisa ser um Pasquale, mas vamos prezar pelo bom e velho português, bem como a pontuação.

Então vamos lá:

1º: Se você aprendeu listas, você sabe que a notação para construir uma lista é assim, por exemplo (constrói uma lista com 4 numeros):

lista = [1, 2, 3, 4] 

Cada elemento dessa lista possui um índice de acesso, que é um número inteiro. A notação de acesso a elementos de uma lista -- vc também deveria saber isso -- é a seguinte:

print lista[0] --> imprime 1
print lista[1] --> imprime 2

e assim por diante.

E claro, a lista pode ser de qualquer tipo de objeto, inclusive strings.

2º: Dito isso, a dica de verdade:
Cada mês é dado na entrada do programa como um número, e você precisa associar esse número a um texto. O resto você deduz sozinho, pelas informações de lista que eu dei aí em cima.

Boa sorte.

2012/5/3 Marcus V. Patriota <mac...@gmail.com>

Matheus Lima

unread,
May 3, 2012, 8:49:37 PM5/3/12
to python...@googlegroups.com
E o cara acha que ta aprendendo assim... :s
--
Att,

Matheus dos Santos Lima        
Bel. em Sistemas de Informação - UFS (2011.2)

Nilson Pimentel

unread,
May 3, 2012, 8:52:33 PM5/3/12
to python...@googlegroups.com
Por que eu não estaria ?

Matheus Lima

unread,
May 3, 2012, 8:53:31 PM5/3/12
to python...@googlegroups.com
Desculpe, não me referia a você. 

Francisco Vianna

unread,
May 3, 2012, 8:53:49 PM5/3/12
to python...@googlegroups.com
Nilson,

Abri seu código só de curiosidade.
Não me leve a mal, mas você precisa dar uma estudada também.

Pense nisso como uma crítica construtiva, por favor.

Só pra você refletir: Não é que seu código esteja errado, mas o que voce faria se o dado que tivesse que ser escrito por extenso fosse o ano? Ia escrever milhares de ifs?

2012/5/3 Nilson Pimentel <nilson.f...@gmail.com>

Matheus Lima

unread,
May 3, 2012, 8:56:45 PM5/3/12
to python...@googlegroups.com
Pra complementar a dica, procure usar laços pra não escrever código repetitivo.

Nilson Pimentel

unread,
May 3, 2012, 9:01:11 PM5/3/12
to python...@googlegroups.com
Ah sim, valeu ai...
Realmente, concordo com você que o meu código precisa ser melhorado.
Estou aprendendo python agora, nem tinha visto listas ainda quando fiz esse programinha. Vey, estou com muitas dúvidas em listas.

Danillo Souza

unread,
May 3, 2012, 9:04:05 PM5/3/12
to python...@googlegroups.com
Tendo dúvidas, é só dizer que ta todo mundo aqui pra ajudar mesmo.


--
Danillo Souza
Teck Software



Nilson Pimentel

unread,
May 3, 2012, 9:09:01 PM5/3/12
to python...@googlegroups.com
Ok, Valeu ai denovo...
Cometi a gafe ai em cima de ter pensado que o colega se referiu a mim, mas normal.
kkkkk

Marco André Lopes Mendes

unread,
May 3, 2012, 9:27:23 PM5/3/12
to python...@googlegroups.com
Como o Marcus foi legal e usou minha data de nascimento como exemplo, vou dar uma mão. ;-)

Primeiro de tudo: coloque o código num site de paste, como esse: http://pastebin.com/LjCBAH72. Eu tenho uma conta lá, é muito legal, tipo uma rede social de códigos. Assim fica fácil de você olhar o meu código ou copiá-lo pra testar. Legal né? Não perde formatação, fica endentado e ainda tem sintaxe destacada por cores. Bem melhor que colocar o código no corpo da mensagem.

Mas vamos ao código. Vou explicá-lo por partes, identificando as linhas:

1-2: cabeçalho do programa. Não pense muito nisso agora. ;-)
4: definição de uma função. Isso vai ser importante para usarmos testes unitários nessa função. Veja adiante.
6: explicação do que a função faz. :-P
7-14: alguns testes do funcionamento da função, com valores diversos. coloquei 4, mas podes colocar outros.
17-21: implementação da lógica que vai fazer passar os testes.
23-27: sempre que você rodar este arquivo ao invés de importá-lo, o teste será executado. Se houverem erros, serão reportados.

Para ver testes sendo executados, digite: "python data_extenso.py -v", supondo ser este o nome do arquivo.

Pra pensar: em fiz primeiro o esqueleto da função, com os testes, e só depois fui implementar o código que fez o teste passar. Se você incluir um teste novo e falhar, reimplemente até que passe em todos os testes. Assim, você garante que não arruma um lado e estraga outro. 

Tá bom, eu fiz os testes depois. Mas eu tinha implementado com dicionário, fiz os testes, passei em todos e depois mudei a implementação para usar uma lista. E passou nos testes, então o teste ajudou. Depois que escrevi os testes, ele deu uns errinhos, que eu consertei arrumando o código. Isso ajuda muito.

Aprenda a desenvolver assim, fazendo primeiro os testes e você vai longe. Dá mais trabalho, mas eu nunca contrataria um programador preguiçoso.

Eu não sou especialista em testes, mas nisso o pessoal aqui da lista pode ajudar.

Um abraço e boa noite.

Marco André

P.S.: Um dia ainda faço os testes unitários de toda a lista de exercícios do pythonbrasil. 

Felipe Mobus

unread,
May 3, 2012, 9:51:45 PM5/3/12
to python...@googlegroups.com
Já é a segunda thread iniciada pela mesma pessoa com dever de casa. Esta lista não é lugar para isso.

2012/5/3 Marco André Lopes Mendes <marco...@gmail.com>

--
------------------------------------
Grupo Python-Brasil
http://www.python.org.br/wiki/AntesDePerguntar
 
<*> Para visitar o site do grupo na web, acesse:
http://groups.google.com/group/python-brasil
 
<*> Para sair deste grupo, envie um e-mail para:
python-brasi...@googlegroups.com



--
Felipe Mobus
http://fmobus.wait4.org

Marcio Ricardo dos Santos

unread,
May 4, 2012, 9:04:22 AM5/4/12
to python...@googlegroups.com
Buenas Marcus, d� uma olhada talvez lhe de uma luz, essa seria a "minha"
maneira de fazer o que voc� propos, se tiver algo que n�o ficou claro
por favor � s� me questionar!

http://pastebin.com/8D0bqyuD

Abra�o,



Em 03-05-2012 20:59, Marcus V. Patriota escreveu:
> Fa�a um programa que solicite a data de nascimento(dd/mm/aaaa) do usu�rio
> e imprima a data com o nome do m�s por extenso. Exemplo:
> Data de Nascimento: 29/10/1973 o Voc� nasceu em 29 de Outubro de 1973.
> '''
> lista=(janeiro:[1],feverero:[2],...)
> dia=input("Digite sua data de nascimento:")
> mes=input("Digite o m�s de nascimento:")
> ano=input("Digite o ano de nascimento:")
> print "%i/%i/%i" %(dia,mes,ano)
>
> da dano erro na linha lista
> obs: a lista tem todos os meses
>
> obrigado pela aten��o
> --
> ------------------------------------
> Grupo Python-Brasil
> http://www.python.org.br/wiki/AntesDePerguntar
>
> <*> Para visitar o site do grupo na web, acesse:
> http://groups.google.com/group/python-brasil
>
> <*> Para sair deste grupo, envie um e-mail para:
> python-brasi...@googlegroups.com


--
_
�v� Marcio Ricardo dos Santos - Desenv. Python, PHP, Perl, Shell
/(_)\ CAXIAS DO SUL - BRAZIL
^ ^ Linux user number 373166
http://mrsantos76.wordpress.com

fmwellson

unread,
May 7, 2015, 1:44:19 PM5/7/15
to python...@googlegroups.com
##Resposta Simples!!


meses = {1: 'Janeiro',2: 'Fevereiro',3: 'Marco',4: 'Abril',5: 'Maio',6: 'Junho',7: 'Julho',8: 'Agosto',9: 'Setembro',10: 'Outubro',11: 'Novembro',12: 'Dezembro'}

dia = int(input('Informe o dia do seu nascimento:'))
mes = int(input('Informe o dia do seu nascimento:'))
ano = int(input('Informe o dia do seu nascimento:'))

print ('Data de Nascimento:',str(dia)+'/'+str(mes)+'/'+str(ano))
print('Você nasceu em %02d de'%(dia),meses[mes], 'de %04d' % (ano) ) 
Reply all
Reply to author
Forward
0 new messages