Gnrtuga Posted September 27, 2012 at 07:36 PM Report #476820 Posted September 27, 2012 at 07:36 PM Olá pessoal, estou agora a ver se aprendo um bocadinho de python, por isso estou a ler um pdf de Luciano Ramalho com o título de "Aprenda a Programar", esse pdf é para a versão anterior de Python, tenho feito as alterações que consigo e lá vou testando o código, e é aqui que surge o meu primeiro problema/dúvida.. Este é o código do pdf: # despdom1.py - Calculadora de despesas domesticas print 'Balanco de despesas domesticas' ana = raw_input('Quanto gastou Ana? ') bia = raw_input('Quanto gastou Bia? ') total = float(ana) + float(bia) print 'Total de gastos = R$ %s.' % total media = total/2 print 'Gastos por pessoa = R$ %s.' % media e ficou assim com as alterações: # despdom1.py - calculadora de despesas domésticas print ('Balanço de despesas domésticas') ana = input ('Quanto gastou a Ana? ') bia = input ('Qanto gastou a Bia? ') total = float(ana)+ float(bia) print ('Total de gastos = € %s.') % total media = total/2 print ('Gastos por pessoa = € %.s') % media o problema é que dá este erro: TypeError: unsupported operand type(s) for %: 'NoneType' and 'float' Ora já tentei muita coisa e ainda não consegui.. 😞 Férias! Estou por aqui: http://maps.google.p...001549&t=h&z=20 (a bulir claro está!) Nunca mais é verão outra vez.. :)
KTachyon Posted September 27, 2012 at 08:49 PM Report #476833 Posted September 27, 2012 at 08:49 PM Trocaste o ponto com o s no print da média: # despdom1.py - calculadora de despesas domésticas print ('Balanço de despesas domésticas') ana = input ('Quanto gastou a Ana? ') bia = input ('Qanto gastou a Bia? ') total = float(ana)+ float(bia) print ('Total de gastos = € %s.') % total media = total/2 print ('Gastos por pessoa = € %s.') % media “There are two ways of constructing a software design: One way is to make it so simple that there are obviously no deficiencies, and the other way is to make it so complicated that there are no obvious deficiencies. The first method is far more difficult.” -- Tony Hoare
Solution jpedro20 Posted September 27, 2012 at 09:24 PM Solution Report #476836 Posted September 27, 2012 at 09:24 PM (edited) Trocaste o ponto com o s no print da média: # despdom1.py - calculadora de despesas domésticas print ('Balanço de despesas domésticas') ana = input ('Quanto gastou a Ana? ') bia = input ('Qanto gastou a Bia? ') total = float(ana)+ float(bia) print ('Total de gastos = € %s.') % total media = total/2 print ('Gastos por pessoa = € %s.') % media O problema não é esse. Aliás o código que apresentas-te dá o mesmo erro. # despdom1.py - calculadora de despesas domésticas print ('Balanço de despesas domésticas') ana = input ('Quanto gastou a Ana? ') bia = input ('Qanto gastou a Bia? ') total = float(ana)+ float(bia) print ('Total de gastos = € %s.') % total media = total/2 print ('Gastos por pessoa = € %.s') % media o problema é que dá este erro: TypeError: unsupported operand type(s) for %: 'NoneType' and 'float' Ora já tentei muita coisa e ainda não consegui.. 😞 Na terceira versão do python, o print passou a ser uma função. O que estás a fazer é o resto da divisão entre o resultado da invocação da função print (NoneType) e a tua variável media (float). Como não é possível calcular o resto da divisão a partir do tipo None, é apresentado o erro. Uma possível solução é: print ('Balanço de despesas domésticas') ana = input ('Quanto gastou a Ana? ') bia = input ('Qanto gastou a Bia? ') total = float(ana)+ float(bia) print ('Total de gastos = €', total, end = '.\n') media = total/2 print ('Gastos por pessoa = €', media, end = '.') http://docs.python.org/release/3.0.1/whatsnew/3.0.html Edited September 27, 2012 at 09:34 PM by jpedro20
Gnrtuga Posted September 28, 2012 at 06:59 AM Author Report #476883 Posted September 28, 2012 at 06:59 AM 👍 isto no princípio é tudo muito confuso...Obrigado! Férias! Estou por aqui: http://maps.google.p...001549&t=h&z=20 (a bulir claro está!) Nunca mais é verão outra vez.. :)
Pedro C. Posted September 28, 2012 at 03:18 PM Report #476935 Posted September 28, 2012 at 03:18 PM O código que o KTachyon inseriu é funcional, pelo menos para o python 2.7 (e imagino que seja para qualquer um do 2.6 até 3.0 excluindo). O erro terá mesmo a ver com a versão do Python e não com a legitimidade do código se bem que se for esse o caso deveria ter dado erro de syntax (porque acho que o comando print deixou de existir). Gnrtuga qual é a versão do Python que tens?
Gnrtuga Posted September 28, 2012 at 06:09 PM Author Report #476965 Posted September 28, 2012 at 06:09 PM (edited) Tenho a versão 3.2.3. Mas já tenho o exercicio a funcionar com o código do jpedro20. E até já alterei a parte que converte para float para o momento em que se insere a variavel. Ficou assim: ana = float(input('Quanto gastou a ana')) bia = float(input('Quanto gastou a bia?')) total = ana + bia Edited September 28, 2012 at 06:12 PM by Gnrtuga Férias! Estou por aqui: http://maps.google.p...001549&t=h&z=20 (a bulir claro está!) Nunca mais é verão outra vez.. :)
icemonster2 Posted September 29, 2012 at 10:21 PM Report #477092 Posted September 29, 2012 at 10:21 PM Convém sempre usar o mesmo interpretador que o tutorial que estás a usar para evitar esses erros. Eu também começei a programar com esse tutorial, é muito bom de facto 😄
noguche Posted February 17, 2016 at 10:51 AM Report #593620 Posted February 17, 2016 at 10:51 AM (edited) Bom dia a todos, Me chamo Noguche e estou também a estudar pelo Guia do Prof. Luciano Ramalho, porém com a versão 3.5 do Python. Ao tentar executar a parte do programa sugerido onde se faz uso do float está a me surgir um erro de sintax, abaixo envio o exemplo de como o meu código está, alguém poderia por favor me ajudar a perceber o que se passa? Obrigado # despdom2.py - Calculadora de despesas domesticas print("Balanco de despesas domesticas") ana = float(input("Quanto gastou Ana? ")) bia = float(input("Quanto gastou Bia? ")) print( ) total = ana + bia print("Total de gastos = R$ %s" % total) media = total/2 print("Gastos por pessoa = R$ %s" % media) if ana < media: diferenca = media - ana print("Ana deve pagar: R$ %s" % diferenca) else: diferenca = media - bia print("Bia deve pagar: R$ %s" % diferenca) Edited February 17, 2016 at 08:58 PM by thoga31 Tags code + GeSHi
noguche Posted February 17, 2016 at 11:14 AM Report #593621 Posted February 17, 2016 at 11:14 AM (edited) Boas pessoal! Voltei pois acabei por descobrir onde estava o meu erro. A questão é que a minha indentação estava mal ao corrigi-la tudo ficou bem. Exemplo correto: # despdom1.py - Calculadora de despesas domesticas print("Balanco de despesas domesticas") ana = float(input("Quanto gastou Ana? ")) bia = float(input("Quanto gastou Bia? ")) print( ) total = ana + bia print("Total de gastos = R$ %s" % total) media = total/2 print("Gastos por pessoa = R$ %s" % media) if ana < media: diferenca = media - ana print("Ana deve pagar: R$ %s" % diferenca) else: diferenca = media - bia print("Bia deve pagar: R$ %s" % diferenca) Obrigado Edited February 17, 2016 at 08:59 PM by thoga31 Remoção de quote desnecessário; tags code + GeSHi
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now