• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

Knitter

Syntax Error: Unexpected EOF

14 mensagens neste tópico

import time  
  
name = raw_input("What is your name? ")  
yearBorn = input("In what year were you born? ")

currentYear = time.localtime()[0]  

print name+", you were born",currentYear-yearBorn,"years ago." 

Só para não abrir um tópico por uma coisa tão parva, o que é que está errado no código acima?

O erro que obtenho é: SyntaxError: unexpected EOF while parsing, no texto 1982, que não é texto de input, porque é que o código está a engasgar com input?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Não tens um espaço no currentYear? Entre o () e o [ 0 ]?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Knitter, o yearBorn é str e tu não podes subtrair texto, assim já dá:

import time

name = raw_input("What is your name? ")  
yearBorn = input("In what year were you born? ")

currentYear = time.localtime()[0]  

print name+", you were born",currentYear-int(yearBorn),"years ago." 

EDIT: O JoaoRodrigues antecipou-se, e respondi ao erro errado :P

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Não devia ser fnds. Ele está a usar o input, não o raw_input. E aqui funciona perfeitamente. Knitter, como te chamas? Pode ser o teu nome (se tiver um til por exemplo) a chatear.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Não tens um espaço no currentYear? Entre o () e o [ 0 ]?

Espaço onde?

Não devia ser fnds. Ele está a usar o input, não o raw_input. E aqui funciona perfeitamente. Knitter, como te chamas?

Não só não devia como não é, acho que esta coisa de blocos usando identação me vai dar algumas dores de cabeça.

Como me chamo? Não sei como isso ajudará a corrigir o meu erro :D, mas chamo-me Knitter :P

Em relação a locks para threads, não sei muito sobre o assunto, procura por aqui:

http://docs.python.org/lib/lock-objects.html

http://docs.python.org/lib/rlock-objects.html

e os outros 15.3.x

Vou guardar esses para quando não estiver em choque :P

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

:P Pode ser um til no teu nome.

Mas devia funcionar Knitter. Estás a correr isso no IDLE?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Em relação ao teu problema, qual é o input que lhe estás a dar no ano? Algo me diz que tens caracteres marados no source, e o interpretador entrou em parafuso...

:P Pode ser um til no teu nome.

Nop, o raw_input convertia para hex.
0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Não devia ser fnds. Ele está a usar o input, não o raw_input. E aqui funciona perfeitamente. Knitter, como te chamas? Pode ser o teu nome (se tiver um til por exemplo) a chatear.

Erro meu, não reparei que era input, li raw_input...
0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

OK, descobri o erro.

Não existe erro!

Na consola do windows funciona, na consola do Pydev não funciona e dá o erro idiota. Estava a acontecer outra coisa estranha, na consola do Pydev o cursor, na altura do segundo input, em vez de aparecer no fim do texto, aparece no início, e quando escrevia qualquer coisa, saltava para o fim, assim que carregava no enter, dava erro no texto que eu tinha introduzido.

Para que raio serve uma consola que não funciona?

Confirmei a configuração do IDE, não tenho nada no código que não deva lá estar :P

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

LOL! O Pydev não é para o Eclipse ou assim? Eu com a consola do Geany não tenho esses problemas...

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

LOL! O Pydev não é para o Eclipse ou assim? Eu com a consola do Geany não tenho esses problemas...

Sim, é, foi o melhor que encontrei para Windows, como estou a usar fazer o relatório de projecto e preciso usar o MS Office, é um pouco chato ter de fazer reboot a cada pausa :D

Hey, quem dividiu o tópico? Só por isso aqui está mais uma dúvida, (dividam lá isto se conseguirem :D).

No seguinte código:

class A:
   def name(self):
       print "class A"
class B:
   def name(self):
       print "class B"

def printclassname(obj):
   obj.name()

a = A()
printclassname(a)
b = B()
printclassname(b)
[/quote]

As duas classes definem dois objectos diferentes, mas que por acaso possuem o mesmo método, certo?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Chato! :D Ainda mudo o nome do tópico pa "As mil e uma dúvidas do Knitter" :P

Sim, os métodos das classes são "próprios" de cada classe :P Basta pensares no método __init__ de cada classe, ou no __doc__ :P Existem em todas :)

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

As duas classes definem dois objectos diferentes, mas que por acaso possuem o mesmo método, certo?

Sim.
0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora