Jump to content
Greemax

Erro estranho

Recommended Posts

Greemax

Boas pessoal,

Estou a tentar fazer algo tão trivial como isto:

pos = str(input())

O objectivo é inserir 4 inteiros, ou seja, no fundo quero ter 4 entradas numa linha, o problema e que se fizer algo como:

>>>0011

Fica algo como pos = 9 em vez de pos = '0011'. Eu estou a usar o eclipse com o PyDev, o mais estranho é que no IDLE nao ha problemas e resulta perfeitamente. Alguém já passou por isto ou sabe o que poderá ser?

Edited by Greemax

Share this post


Link to post
Share on other sites
thoga31

Por alguma razão o teu '0011' está a ser convertido para 9. Mais estranho ainda é que 0b0011 não é o binário de 9 :D

Como é que sabes que post fica com o valor 9? Nesse ponto do programa, qual é o tipo de dados de pos?

Nota: retira a função str, isso é redundante a partir do momento que a função input devolve uma string.

Edited by thoga31

Knowledge is free!

Share this post


Link to post
Share on other sites
Greemax

o uso do str() foi para ver se fazia diferença, mas realmente nao faz. Eu tinha uma função que verificava se o pos tinha pelo menos 4 elementos e dava sempre como se tivesse menos de 4. Fiz print(pos) e fez print de 9. Tambem ja reparei que so acontece quando o primeiro numero é 0.

Aqui vai a função

def getCoords(size,times): #Pede as coordenadas

  if not isinstance(times,int):
	   raise TypeError("argument 'times' is suposed to be an integer")

  coords = dict()

  for i in range(times):

	   pos = str(input()) #ERRO
	   print(pos)
	   if len(pos) < 4:
		   raise ValueError('The input has to have, at least, 4 integers')

	   coords[int(pos[0]),int(pos[1])] = [int(pos[2]),int(pos[3])]

  return coords

Edited by Greemax

Share this post


Link to post
Share on other sites
icemonster2

No cmd, no python se digitares help(input), o resultado vai ser:

  1. Bla bla bla (...) equivalent to eval(raw_input(prompt)). Ou seja, o input é a mesma coisa que fazeres eval(raw_input()). Procura o significado de eval e perceberás qual o problema.

Share this post


Link to post
Share on other sites

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 account

Sign in

Already have an account? Sign in here.

Sign In Now

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.