Jump to content
RS39

Problemas com o Python 3

Recommended Posts

RS39

Boa noite ;-)

Eu estou a utilizar o Python 3.3 no entanto não entendo o que se esta a passar, alguém me pode ajudar?

s = 'aabbaa'
x = len(s)/2
a = (x - 1)
s1 = s[x:]

# Shift Esquerda

s2=(s[x] + s[:a])


if s1 == s2:
  x = True
else:
  x = False

print(x)

Porque que isto me dá erro?

Obrigado ;-)

Edited by RS39

Share this post


Link to post
Share on other sites
Rui Carlos

Qual é o erro que te dá? (E já agora, o que é que o programa é suposto fazer?)

Só por curiosidade, o código que estás a usar é exactamente igual ao que tens na mensagem? (É que parece-me que falta indentação em algumas linhas.)

  • Vote 1

Share this post


Link to post
Share on other sites
RS39

Qual é o erro que te dá? (E já agora, o que é que o programa é suposto fazer?)

Só por curiosidade, o código que estás a usar é exactamente igual ao que tens na mensagem? (É que parece-me que falta indentação em algumas linhas.)

Sim mas o programa esta isentado corretamente, no entanto dá este erro

Traceback (most recent call last):
 File "/Users", line 4, in <module>
   s1 = s[x:]
TypeError: slice indices must be integers or None or have an __index__ method

O que se terá a passar? Consegue-me ajudar?

Edited by thoga31

Share this post


Link to post
Share on other sites
thoga31

x é do tipo Float uma vez que utilizaste a divisão real e não inteira. Usa o operador // para a divisão.

Já agora, uma opinião acerca do código: acho que aquele if é desnecessário. Repara:

print(s1 == s2)

  • Vote 1

Knowledge is free!

Share this post


Link to post
Share on other sites
RS39

x é do tipo Float uma vez que utilizaste a divisão real e não inteira. Usa o operador // para a divisão.

Já agora, uma opinião acerca do código: acho que aquele if é desnecessário. Repara:

print(s1 == s2)

O problema está resolvido, muito obrigado ;-)

Mas apareceu outra duvida?

s = ' abcdef'
c =  len(s)
#print (c) # o resultado vai ser 6
print ( s[c])

isto da-me erro

print ( s[c])
IndexError: string index out of range

Dá para perceber o porque disto?

Edited by Rui Carlos

Share this post


Link to post
Share on other sites
Pedro C.

A contagem em Python começa em zero. A tua string tem 6 elementos nas posições 0,1,2,3,4,5.

Quando pedes s[6] ele dá erro. Se pretendes o último elemento podes fazer s[c-1] ou s[-1] (não sei se esta última opção resulta para strings).

Edited by Pedro C.

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.