Problemas com python

Olá pessoal, eu to começando a aprender python e eu me deparei com um problema, toda vez que tento rodar o meu código aparece uma mensagem de erro, em outras máquinas roda normalmente mas no meu pc (que instalei recentemente KDE neon) está dando erro

O meu código:

valor1 = int(input('Digite um valor '))
valor2 = int(input('Digite outro valor '))
s = valor1 + valor2
print(‘A soma entre {} e {} é igual a {}’.format(valor1, valor2, s))

O erro:

SyntaxError: Non-ASCII character ‘\xc3’ in file /home/gmmacedo/Documentos/curso_de_python/teste.py on line 4, but no encoding declared; see PEP 263 – Defining Python Source Code Encodings | peps.python.org for details
Process returned 1 (0x1) execution time : 0.014 s

1 curtida

Já tentou colocar # -*- coding: utf-8 -*- na primeira linha do seu arquivo ?

1 curtida

Muito obrigado, deu certo mas não entendo o motivo dele rodar no meu notebook mas não rodar no pc

1 curtida

Há caracteres especiais no seu código, um cedilha sobre a letra e na linha 4.

Os códigos que você rodou nas outras máquinas, possuíam caracteres especiais também ?

O arquivo é o mesmo (20 caracteres)

A versão do python é a mesma em todas as máquinas ?

1 curtida

Eu creio que sim, gosto sempre de deixar o sistema na ultima atualização, a não ser que o KDE neon esteja com uma versão desatualizada do python (na outra máquina eu uso o Arch Gnome)

É provável que o KDE Neon esteja com uma versão desatualizada sim.

Rode um python --version no terminal para tirar a dúvida.

1 curtida

Na máquina que estava com o erro tá rodando na versão 2.7.17, já a que está tudo certo tá rodando 3.8.1

huuuuum…

Pode está aí o problema então.
Não mexo muito com python, logo, não tenho certeza disso, mas, ao que tudo indica, as versões mais recentes do python estão vindo com codificação utf-8 por padrão, diferente das versões mais antigas, que tinham como padrão o ASCII. É isso ou algo semelhante.

Alguém que mexe mais com python poderá esclarecer…

1 curtida

Digitando “python --verison” o terminal retorna a versão do python 2 instalada, tenta “python3 --version”.

Acabei de constatar que o python3 não estava instalado

2 curtidas

Uma dica, no python 3 ao invés de colocar “print(‘A soma entre {} e {} é igual a {}’.format(valor1, valor2, s))” você pode simplesmente deixar da seguinte forma: print (f’A soma entre {valor1} e {valor2} é igual a {s}’).
Caso queira determinar uma quantidade máxima de casas após a vírgula para a soma por exemplo, ficaria da seguinte forma: print (f’A soma entre {valor1} e {valor2} é igual a {s:.2f}’), especificando o número de casas desejado.

5 curtidas

Não sabia que dava para fazer isso, mas imaginava que dava para colocar alguma coisa dentro das chaves

1 curtida

Olá @gmmacedo! Só uma dica. Você pode usar o novo formato, que começa a partir da versão 3.7 eu acho, que é mais simples. Exemplo abaixo.

# Version 3.7 Formatting Example
name: str = input("Your name? ")
print(f"His name is {name}!") # O f está substituindo o format e ele deve está fora das aspas.

Obrigado, foi o mesmo que o @srcurdy falou