- Este tópico contém 3 respostas, 2 vozes e foi atualizado pela última vez 2 anos, 9 meses atrás por IcaroFilho.
-
AutorPosts
-
-
7 de fevereiro de 2022 às 19:46 #85731Gabriel BorbaParticipante
Boa noite a todxs!!!
Por gentiliza, uma dúvida sobre duas linhas de programação no exercício 53, sobre detecção de palíndromos:
Gostaria que reforçassem as finalidades das:
linha 4: inverso = ”
linha 6: inverso = inverso + junto[letra]Fiquei confuso com estas duas linhas, sobretudo com a parte “junto[letra]”
PROGRAMA:
1- frase = str(input(‘Digite uma frase: ‘)).strip().upper()
2- palavras = frase.split()
3- junto = ”.join(palavras)
4- inverso = ”
5- for letra in range(len(junto)-1, -1, -1):
6- inverso = inverso + junto[letra]
7- print(‘O inverso de {} é {}.’.format(junto, inverso))
8- if junto == inverso:
9- print(‘Neste caso, TEMOS um palíndromo!’.format(frase))
10- else:
print(‘Neste caso, NÃO é um palíndromo!’.format(frase))Obrigado!
Att,
Gabriel. -
8 de fevereiro de 2022 às 08:36 #85756IcaroFilhoModerador
Bom dia Gabriel,
Para entender estas linhas, deve-se entender as anteriores.1- Obtenção da string
2- Torna a string em uma lista de strings ( com cada palavra em um índice )
3- Junta as palavras dentro da lista em uma única string
4- Cria uma variável vaziainverso = ""
5- laço invertido
6- a variável vazia vai receber ela mesmo mais a adição da letra vinda da string criada ( juntando todos os elementos da lista )
<small>Ou seja, vai montar uma string invertida. OBS: Existem outras maneiras até mais simples, mas estes métodos possuem esta por de baixo dos panos</small>Caso não tenha ficado claro, diga qual a duvida que persiste que tentarei ser mais claro.
-
10 de fevereiro de 2022 às 22:29 #86006Gabriel BorbaParticipante
Olá! Obrigado pela explicação!
Talvez tenha clareado. Vamos ver:
Então, inverso =’ ‘, é um contador? Que vai recebendo literalmente letra por letra da string invertida que foi criada na linha 5?4- inverso = ‘ ‘
5- for letra in range(len(junto)-1, -1, -1):
6- inverso = inverso + junto[letra]-
11 de fevereiro de 2022 às 13:49 #86120IcaroFilhoModerador
não e sim
Oinverso
não é uma varável contadora, é uma variável acumuladora. seu papel é acumular os dados vindos de outro lugar.
Quanto a sua segunda parte, também esta parcialmente certaNa verdade [letra] não é uma letra e sim uma posição (índice).
A variável junto é na verdade a lista de letras.
quando passamos junto[letra] , estamos passando a ideia de lista[indice], que no final das contas irá retornar a letra.
e a cada laço o acumulador vai pegando e mantendo cada letra vinda do laço.caso ainda não tenha ficado claro, por favor pergunte.
não fique com duvida.
Bons estudos
-
-
-
AutorPosts
- Você deve fazer login para responder a este tópico.