Jump to content

String Reverser


Localhost
 Share

Recommended Posts

Olá, comecei hoje a aprender python e já tenho aqui uma dúvida.

Qual é a maneira mais simples de ler uma string de trás para a frente? Eu arranjei uma maneira de fazer com slicing, mas não sei se é a maneira mais simples alguém pode dar a opinião?

Deixo aqui o meu código:

#!/usr/bin/env python
# -*- coding: utf-8 -*-

string = "ola"
print "Reversed: ", string[::-1]

E depois tenho mais aqui uma dúvida.

Neste código:

#!/usr/bin/env python
# -*- coding: utf-8 -*-

string = raw_input("Digite a string: ")
rev = string[::-1]
print rev

O que é que está a ser retornado pelo slice? Não estou a perceber o que é que é retornado.

here since 2009

Link to comment
Share on other sites

Existe um tutorial de slicing na Wiki:

http://wiki.portugal-a-programar.pt/dev_geral:python:slicing

Acho que de lá consegues ver algumas coisas. O slicing baseia-se na posição indexada de cada caractere, penso eu.

Nick antigo: softclean | Tens um projeto? | Wiki P@P

Ajuda a comunidade! Se encontrares algo de errado, usa a opção "Denunciar" por baixo de cada post.

Link to comment
Share on other sites

elemento[start:end:step]

Duma forma resumida, o slicing retorna-te os elementos de start (inclusive) até end (exclusivo), avançado step elementos de cada vez.

Duma forma resumida (e sem testar), retorno = elemento[start:end:step] pode ser replicado por isto:

retorno = []
i = start
while (i < end and step > 0) or (i > end and step <0):
    retorno.append(elemento[i])
    i += step

Os valores usados quando não especificas são 0 para o start, len(elemento) para o end e 1 para o step.

Não peças ajuda por PM! A tua dúvida vai ter menos atenção do que se for postada na secção correcta do fórum!

Link to comment
Share on other sites

O facto de ser apenas uma linha ser apreciado é bastante relativo. Quanto mais simples e óbvia for a solução melhor. E se tiver poucos caracteres. 😄

Não peças ajuda por PM! A tua dúvida vai ter menos atenção do que se for postada na secção correcta do fórum!

Link to comment
Share on other sites

Quanto a mim isso de uma só linha só complica o código e torna-o ilegivel, mas isso já é um assunto diferente.

Óbvio que gostei da maneira como em Python é permitido fazer este tipo de "código rápido" mas em projectos futuros e grandes acho que é complicado ler tudo aquilo numa só linha, se é que me entendes.

here since 2009

Link to comment
Share on other sites

Claro, mas há coisas que só te fazem confusão enquanto não te habituas. É como usar lista = [str(x) for x in lista if x > 0] ou lista = map(str, filter(lambda x: x > 0, lista)) para pegares numa lista com inteiros positivos e negativos e passar para apenas uma de positivos mas convertidos para string. Há situações em que usares uma linha torna a coisa muito mais simples e clara.

Não peças ajuda por PM! A tua dúvida vai ter menos atenção do que se for postada na secção correcta do fórum!

Link to comment
Share on other sites

I hope so.

Ainda me tenho de habituar a esta nova linguagem, é muito diferente de C e C++. Eu já tive contacto com Perl e tive exactamente a mesma dificuldade e também por isso não programo muito nessa linguagem, no entanto, vou tentar mesmo aprende Python, nem que seja pelo bot.  😄

here since 2009

Link to comment
Share on other sites

Peço desculpa a todos os apoiantes de Perl, mas eu detesto ler Perl. É deveras parecido com PHP e isso traz-me muitas más memórias :X Não significa no entanto que não seja uma linguagem poderosa, acredito ser uma das melhores para tratamento de texto.

Não peças ajuda por PM! A tua dúvida vai ter menos atenção do que se for postada na secção correcta do fórum!

Link to comment
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
 Share

×
×
  • 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.