Fórum Ubuntu Linux - PT

Suporte Técnico => Programação e Scripts => Tópico iniciado por: Altair Julião em 27 de Setembro de 2010, 23:41

Título: [Resolvido] Erro na codificação UTF-8 no Python 2.6.5
Enviado por: Altair Julião em 27 de Setembro de 2010, 23:41
Olá pessoal, estava fazendo um programa com o seguinte código:

#! /usr/bin/env python
# -*- coding: utf-8 -*-
print ('Digite três números inteiros positivos: ')
a = int(input('a = '))
b = int(input('b = '))
c = int(input('c = '))
limb = b//a
limc = c//a
if a>0 and b>0 and c>0:
   print ('Os múltiplos de', a, 'maiores ou iguais a', b, 'e menores ou igual', c, 'são: ')   
   for m in range (limb, limc+1):
       print (a*m)
else: print ('Dados inválidos')

Alguém sabe porque o python só está mostrando os acentos do primeiro print e do print de else?

Obrigado
Título: Re: Erro na codificação UTF-8 no Python 2.6.5
Enviado por: sistematico em 28 de Setembro de 2010, 00:41
Tentou com aspas duplas?
Título: Re: Erro na codificação UTF-8 no Python 2.6.5
Enviado por: Altair Julião em 28 de Setembro de 2010, 14:44
Ola Sistematico, tentei com aspas simples e com aspas duplas e o resultado é o sempre o mesmo:

python Documentos/exercicio_3.2.1_1.py
Digite três números inteiros positivos:
a = 2
b = 4
c = 8
('Os m\xc3\xbaltiplos de', 2, 'maiores ou iguais a', 4, 'e menores ou igual', 8, 's\xc3\xa3o: ')
4
6
8

Título: Re: Erro na codificação UTF-8 no Python 2.6.5
Enviado por: fpissarra em 28 de Setembro de 2010, 19:08
Retire os parenteses dos "print" que funciona!

"print" statement é diferente de "print" function.

[]s
Título: Re: Erro na codificação UTF-8 no Python 2.6.5
Enviado por: Altair Julião em 28 de Setembro de 2010, 19:57
Valeu fpissara, tirei os parênteses e funcionou perfeitamente, você poderia explicar a diferença entre print statement e print function?
Título: Re: [Resolvido] Erro na codificação UTF-8 no Python 2.6.5
Enviado por: fpissarra em 29 de Setembro de 2010, 14:13
Hehe... sem querer ser sacana, e já sendo: Diferença entre print statement e function: Um obedece o charset e o outro não... hehehehe

Sério agora: O statement é incorporado à linguagem e a própria documentação do Python recomenda que seja usado, ao invés da função print. Isso deve ser modificado na versão 3 do python (pelo que li) - quer dizer, o statement continuará lá, mas é possível que recomendem o uso da função ao invés do statement.

[]s
Título: Re: [Resolvido] Erro na codificação UTF-8 no Python 2.6.5
Enviado por: Darcamo em 29 de Setembro de 2010, 23:55
Fiquei curioso e pesquisando descobri que dá para usar a função print. Pode usar assim
Código: [Selecionar]
print( unicode('Os múltiplos de %s maiores ou iguais a %s e menores ou igual a %s são: ' % (a,b,c), 'UTF8') )