Mudanças entre as edições de "Python 2021 Mod2"

De MediaWiki do Campus São José
Ir para navegação Ir para pesquisar
 
(10 revisões intermediárias pelo mesmo usuário não estão sendo mostradas)
Linha 3: Linha 3:
 
;Objetivos de aprendizagem:  
 
;Objetivos de aprendizagem:  
  
:Entender a estrutura dos loops for e while e a diferença entre iteração em relação ao index versus elemento. Reconhecer os efeitos do break e continue keywords. <br>
+
#Entender a estrutura dos loops for e while e a diferença entre iteração em relação ao index versus elemento. Reconhecer os efeitos do break e continue keywords. <br>
:Construir novas funções e fazer chamadas de funções. Compreender o papel dos parâmetros.
+
#Construir novas funções e fazer chamadas de funções. Compreender o papel dos parâmetros.
 +
 
 
==Loops==
 
==Loops==
 
  
 
=== Loops For/While===
 
=== Loops For/While===
Linha 12: Linha 12:
 
O Python tem uma implementação/estrutura do loop FOR que funciona tanto para o loop for padrão quanto para o loop for-Each de outras linguagens de programação.
 
O Python tem uma implementação/estrutura do loop FOR que funciona tanto para o loop for padrão quanto para o loop for-Each de outras linguagens de programação.
  
Existem algumas diferenças estruturais no loop FOR do Python. Considere-as nos exemplos abaixo.
+
''Existem algumas diferenças estruturais no loop FOR do Python. Considere-as nos exemplos abaixo.''
 
 
  
 +
<syntaxhighlight lang=python>
 
"""
 
"""
 
A variável **i** serve como o contador sobre RANGE de [0,10),  
 
A variável **i** serve como o contador sobre RANGE de [0,10),  
Linha 27: Linha 27:
 
for i in range(10):
 
for i in range(10):
 
   print(i)
 
   print(i)
 +
</syntaxhighlight>
  
 +
<pre>
 
0
 
0
 
1
 
1
Linha 38: Linha 40:
 
8
 
8
 
9
 
9
 +
</pre>
  
 +
<syntaxhighlight lang=python>
 
"""
 
"""
 
Estes exemplos especificam um limite inferior que difere do valor padrão de 0.
 
Estes exemplos especificam um limite inferior que difere do valor padrão de 0.
Linha 52: Linha 56:
 
"""
 
"""
 
for x in range(2, 10):
 
for x in range(2, 10):
   print(i)
+
   print(x)
 +
</syntaxhighlight>
  
 +
<pre>
 +
2
 +
3
 +
4
 +
5
 +
6
 +
7
 +
8
 
9
 
9
9
+
</pre>
9
 
9
 
9
 
9
 
9
 
9
 
  
 +
<syntaxhighlight lang=python>
 
"""
 
"""
 
O terceiro parâmetro range() define o número de etapas para incrementar o contador.
 
O terceiro parâmetro range() define o número de etapas para incrementar o contador.
Linha 72: Linha 80:
 
for i in range(0, 10, 3):
 
for i in range(0, 10, 3):
 
   print(i)
 
   print(i)
 +
</syntaxhighlight>
  
 +
<pre>
 
0
 
0
 
3
 
3
 
6
 
6
 
9
 
9
 +
</pre>
  
 +
<syntaxhighlight lang=python>
 
"""
 
"""
 
Loop 'for-Each' sobre cada caractere em uma string.
 
Loop 'for-Each' sobre cada caractere em uma string.
Linha 86: Linha 98:
 
for i in "hello!":
 
for i in "hello!":
 
   print(i)
 
   print(i)
 +
</syntaxhighlight>
  
 +
<pre>
 
h
 
h
 
e
 
e
Linha 93: Linha 107:
 
o
 
o
 
!
 
!
 +
</pre>
  
 +
<syntaxhighlight lang=python>
 
"""
 
"""
 
Poderíamos também iterar sobre a string por indexação.
 
Poderíamos também iterar sobre a string por indexação.
Linha 105: Linha 121:
 
for i in range(0, len(string), 2):
 
for i in range(0, len(string), 2):
 
   print(str(i) + "th letter is "+ string[i])
 
   print(str(i) + "th letter is "+ string[i])
 +
</syntaxhighlight>
  
 +
<pre>
 
0th letter is h
 
0th letter is h
 
2th letter is l
 
2th letter is l
Linha 112: Linha 130:
 
8th letter is r
 
8th letter is r
 
10th letter is d
 
10th letter is d
 +
</pre>
  
 
A estrutura do loop WHILE permanece em sua maioria idêntica a outras linguagens de programação.
 
A estrutura do loop WHILE permanece em sua maioria idêntica a outras linguagens de programação.
Linha 117: Linha 136:
 
Dê uma olhada no exemplo abaixo
 
Dê uma olhada no exemplo abaixo
  
 +
<syntaxhighlight lang=python>
 
#  Nota: sem a atualização da variável no loop while, este será um loop INFINITO!!
 
#  Nota: sem a atualização da variável no loop while, este será um loop INFINITO!!
  
Linha 125: Linha 145:
 
   # IMPORTANTE!!! Atualize o contador!
 
   # IMPORTANTE!!! Atualize o contador!
 
   count += 1
 
   count += 1
 +
</syntaxhighlight>
  
 +
<pre>
 
0
 
0
 
1
 
1
Linha 136: Linha 158:
 
8
 
8
 
9
 
9
 +
</pre>
  
2.1.2: Continue/Break Keywords
+
=== Continue/Break Keywords===
  
 
Como manipular loops (FOR e WHILE):
 
Como manipular loops (FOR e WHILE):
  
    Break: pular os códigos restantes no loop bem como as iterações remanecentes, quebrar (break) o loop mais interno.
+
*'''Break''': pular os códigos restantes no loop bem como as iterações remanecentes, quebrar (break) o loop mais interno.
    Continue: pular os códigos restantes no loop e continuar para a próxima iteração do loop.
+
*'''Continue''': pular os códigos restantes no loop e continuar para a próxima iteração do loop.
  
 +
<syntaxhighlight lang=python>
 
# Considere um programa que ecoe o input do usuário, exceto pelo "end".
 
# Considere um programa que ecoe o input do usuário, exceto pelo "end".
 
# Este programa roda infinitamente, exceto quando o usuário insere "end" para terminá-lo.
 
# Este programa roda infinitamente, exceto quando o usuário insere "end" para terminá-lo.
Linha 156: Linha 180:
 
     break
 
     break
 
   print(user)
 
   print(user)
 +
</syntaxhighlight>
  
 +
<pre>
 
Enter something to be repeated: a
 
Enter something to be repeated: a
 
a
 
a
Linha 163: Linha 189:
 
Enter something to be repeated: end
 
Enter something to be repeated: end
 
Terminate the program!!!
 
Terminate the program!!!
 +
</pre>
  
 +
<syntaxhighlight lang=python>
 
# Sem usar a palavra-chave "break", esta é outra implementação do mesmo programa de cima usando uma variável.
 
# Sem usar a palavra-chave "break", esta é outra implementação do mesmo programa de cima usando uma variável.
  
Linha 174: Linha 202:
 
   else:
 
   else:
 
     print(user)
 
     print(user)
 +
</syntaxhighlight>
  
 +
<pre>
 
Enter something to be repeated: a
 
Enter something to be repeated: a
 
a
 
a
Linha 185: Linha 215:
 
Enter something to be repeated: end
 
Enter something to be repeated: end
 
Program Ended!!!
 
Program Ended!!!
 +
</pre>
  
 +
<syntaxhighlight lang=python>
 
"""
 
"""
 
Vamos considerar um loop que conta de 1-20, mas ignora todos os números que são múltiplos de 5.  
 
Vamos considerar um loop que conta de 1-20, mas ignora todos os números que são múltiplos de 5.  
Linha 197: Linha 229:
  
 
# Implementação do loop WHILE
 
# Implementação do loop WHILE
while count + 1 <= 20:
+
while count <= 20:
 
   if count % 5 == 0:
 
   if count % 5 == 0:
 
     print("SKIP")
 
     print("SKIP")
Linha 204: Linha 236:
 
   print(count)
 
   print(count)
 
   count += 1
 
   count += 1
 +
</syntaxhighlight>
  
 +
<pre>
 
1
 
1
 
2
 
2
Linha 224: Linha 258:
 
18
 
18
 
19
 
19
 +
SKIP
 +
</pre>
  
 +
<syntaxhighlight lang=python>
 
# Implementação do loop FOR  
 
# Implementação do loop FOR  
  
Linha 232: Linha 269:
 
     continue
 
     continue
 
   print(i)
 
   print(i)
 +
</syntaxhighlight>
  
 +
<pre>
 
1
 
1
 
2
 
2
Linha 252: Linha 291:
 
18
 
18
 
19
 
19
 +
</pre>
  
2.2: Funções
+
== Funções==
  
Funções são úteis quando lhe é dado um problema que pode ser dividido em várias etapas e algumas etapas são usadas de forma repetitiva. Então, ter uma função para essas etapas é conveniente porque reduz a repetição de código e torna o código mais organizado.
+
'''Funções''' são úteis quando lhe é dado um problema que pode ser dividido em várias etapas e algumas etapas são usadas de forma repetitiva. Então, ter uma função para essas etapas é conveniente porque reduz a repetição de código e torna o código mais organizado.
  
 
Notas sobre a definição de uma nova função:
 
Notas sobre a definição de uma nova função:
  
    Definir/inicializar uma nova função com a palavra-chave def antes do nome da função.
+
#    Definir/inicializar uma nova função com a palavra-chave def antes do nome da função.
    NÃO definir o tipo de retorno na declaração da função.
+
#    NÃO definir o tipo de retorno na declaração da função.
    NÃO esquecer do parâmetro da função se sua função precisar de informações do main() ou de outras funções.
+
#    NÃO esquecer do parâmetro da função se sua função precisar de informações do main() ou de outras funções.
    A declaração RETURN não é necessária, dependendo das funções.
+
#    A declaração RETURN não é necessária, dependendo das funções.
  
 +
<syntaxhighlight lang=python>
 
"""
 
"""
 
Escreveremos nossa própria função que testa se um triângulo de 3 lados é um triângulo retângulo.  
 
Escreveremos nossa própria função que testa se um triângulo de 3 lados é um triângulo retângulo.  
Linha 309: Linha 350:
 
if __name__ == "__main__":
 
if __name__ == "__main__":
 
     main()
 
     main()
 +
</syntaxhighlight>
  
 +
<pre>
 
Enter the length for the first edge of the triangle:5
 
Enter the length for the first edge of the triangle:5
 
Enter the length for the second edge of the triangle:4
 
Enter the length for the second edge of the triangle:4
 
Enter the length for the last edge of the triangle:3
 
Enter the length for the last edge of the triangle:3
 
Right Triangle
 
Right Triangle
 +
</pre>
  
 +
<syntaxhighlight lang=python>
 
"""
 
"""
 
Outro exemplo: determinar se a entrada do usuário é um palíndromo.  
 
Outro exemplo: determinar se a entrada do usuário é um palíndromo.  
Linha 364: Linha 409:
 
if __name__ == "__main__":
 
if __name__ == "__main__":
 
     main()
 
     main()
 +
</syntaxhighlight>
  
 +
<pre>
 
Enter a sentence to be tested as a palindrome:racecar
 
Enter a sentence to be tested as a palindrome:racecar
 
racecar is a palindrome!
 
racecar is a palindrome!
 +
</pre>
  
 +
<syntaxhighlight lang=python>
 
# Considere esta implementação da função que RETURN (retorna) uma string.
 
# Considere esta implementação da função que RETURN (retorna) uma string.
 
# Anote a diferença entre main() e isPalindrom() após esta mudança.  
 
# Anote a diferença entre main() e isPalindrom() após esta mudança.  
Linha 388: Linha 437:
 
if __name__ == "__main__":
 
if __name__ == "__main__":
 
     main()
 
     main()
 +
</syntaxhighlight>
  
 +
 +
<syntaxhighlight lang=python>
 
"""
 
"""
 
Acima trabalhamos com um exemplo que testa se uma sentença é um palíndromo.  
 
Acima trabalhamos com um exemplo que testa se uma sentença é um palíndromo.  
 
Agora é a sua vez.
 
Agora é a sua vez.
  
Exercício: escreva uma função para testar se uma palavra do usuário é um palíndromo.  
+
;Exercício: escreva uma função para testar se uma palavra do usuário é um palíndromo.  
  
 
As declarações de função são fornecidas para você.
 
As declarações de função são fornecidas para você.
Linha 413: Linha 465:
 
if __name__ == "__main__":
 
if __name__ == "__main__":
 
     main()
 
     main()
 +
</syntaxhighlight>
  
NÃO VEJA A SOLUÇÃO ABAIXO ANTES DE TENTAR FAZER O EXERCÍCIO!
+
{{collapse top|NÃO VEJA A SOLUÇÃO ANTES DE TENTAR FAZER O EXERCÍCIO!}}
 
+
<syntaxhighlight lang=python>
NÃO VEJA A SOLUÇÃO ABAIXO ANTES DE TENTAR FAZER O EXERCÍCIO!
 
 
 
NÃO VEJA A SOLUÇÃO ABAIXO ANTES DE TENTAR FAZER O EXERCÍCIO!
 
 
 
NÃO VEJA A SOLUÇÃO ABAIXO ANTES DE TENTAR FAZER O EXERCÍCIO!
 
 
 
NÃO VEJA A SOLUÇÃO ABAIXO ANTES DE TENTAR FAZER O EXERCÍCIO!
 
 
 
NÃO VEJA A SOLUÇÃO ABAIXO ANTES DE TENTAR FAZER O EXERCÍCIO!
 
 
 
NÃO VEJA A SOLUÇÃO ABAIXO ANTES DE TENTAR FAZER O EXERCÍCIO!
 
 
 
NÃO VEJA A SOLUÇÃO ABAIXO ANTES DE TENTAR FAZER O EXERCÍCIO!
 
 
 
NÃO VEJA A SOLUÇÃO ABAIXO ANTES DE TENTAR FAZER O EXERCÍCIO!
 
 
 
NÃO VEJA A SOLUÇÃO ABAIXO ANTES DE TENTAR FAZER O EXERCÍCIO!
 
 
 
NÃO VEJA A SOLUÇÃO ABAIXO ANTES DE TENTAR FAZER O EXERCÍCIO!
 
 
 
NÃO VEJA A SOLUÇÃO ABAIXO ANTES DE TENTAR FAZER O EXERCÍCIO!
 
 
 
NÃO VEJA A SOLUÇÃO ABAIXO ANTES DE TENTAR FAZER O EXERCÍCIO!
 
 
 
NÃO VEJA A SOLUÇÃO ABAIXO ANTES DE TENTAR FAZER O EXERCÍCIO!
 
 
 
 
# Uma implementação de solução para o exercício acima.  
 
# Uma implementação de solução para o exercício acima.  
  
Linha 463: Linha 490:
 
if __name__ == "__main__":
 
if __name__ == "__main__":
 
     main()
 
     main()
 +
</syntaxhighlight>
  
 +
<pre>
 
Enter a WORD to be tested as a palindrome:racecar
 
Enter a WORD to be tested as a palindrome:racecar
 
racecar is a palindrome!
 
racecar is a palindrome!
 +
</pre>
 +
{{collapse bottom}}
 +
 +
  
 
-----
 
-----

Edição atual tal como às 16h24min de 28 de dezembro de 2021

Módulo 2: Loops, Funções

Objetivos de aprendizagem
  1. Entender a estrutura dos loops for e while e a diferença entre iteração em relação ao index versus elemento. Reconhecer os efeitos do break e continue keywords.
  2. Construir novas funções e fazer chamadas de funções. Compreender o papel dos parâmetros.

Loops

Loops For/While

O Python tem uma implementação/estrutura do loop FOR que funciona tanto para o loop for padrão quanto para o loop for-Each de outras linguagens de programação.

Existem algumas diferenças estruturais no loop FOR do Python. Considere-as nos exemplos abaixo.

"""
A variável **i** serve como o contador sobre RANGE de [0,10), 
inclusive do limite inferior, mas exclusive do limite superior.

O limite inferior de 0 NÃO precisa ser especificado;
ele é implementado por padrão, a menos que outro limite inferior seja especificado.

Também, por padrão, se NÃO existir um terceiro parâmetro para range(), 
então **i** aumenta em 1. 
"""
for i in range(10):
  print(i)
0
1
2
3
4
5
6
7
8
9
"""
Estes exemplos especificam um limite inferior que difere do valor padrão de 0.

A ordem do parâmetro é SEMPRE:
 1. Posição inicial, inclusive
 2. Posição de parada, exclusive
 3. Valor incremental


Neste exemplo, x começa com o valor igual a 2 e para em 9 inclusive, ou seja, 10 exclusive, 
com x acréscimos de 1 para cada iteração.
"""
for x in range(2, 10):
  print(x)
2
3
4
5
6
7
8
9
"""
O terceiro parâmetro range() define o número de etapas para incrementar o contador.

Neste exemplo, x começa com o valor igual a 0 e para em 9 inclusive, ou 10 exclusive, 
com x incrementos de 3 para cada iteração.
"""

for i in range(0, 10, 3):
  print(i)
0
3
6
9
"""
Loop 'for-Each' sobre cada caractere em uma string.

Neste exemplo, a variável 'i' representa cada elemento/caractere de 'hello'.
"""

for i in "hello!":
  print(i)
h
e
l
l
o
!
"""
Poderíamos também iterar sobre a string por indexação.

Considere o seguinte exemplo de iteração sobre a string por index, 
começando no índex 0 e terminando no último elemento, com os incrementos do contador em 2, 
portanto, imprimindo APENAS todos os outros elementos da string. 
"""

string = "hello world!"
for i in range(0, len(string), 2):
  print(str(i) + "th letter is "+ string[i])
0th letter is h
2th letter is l
4th letter is o
6th letter is w
8th letter is r
10th letter is d

A estrutura do loop WHILE permanece em sua maioria idêntica a outras linguagens de programação.

Dê uma olhada no exemplo abaixo

#  Nota: sem a atualização da variável no loop while, este será um loop INFINITO!!

count = 0
while (count < 10):
  print(count)

  # IMPORTANTE!!! Atualize o contador!
  count += 1
0
1
2
3
4
5
6
7
8
9

Continue/Break Keywords

Como manipular loops (FOR e WHILE):

  • Break: pular os códigos restantes no loop bem como as iterações remanecentes, quebrar (break) o loop mais interno.
  • Continue: pular os códigos restantes no loop e continuar para a próxima iteração do loop.
# Considere um programa que ecoe o input do usuário, exceto pelo "end".
# Este programa roda infinitamente, exceto quando o usuário insere "end" para terminá-lo.

while True:
  user = input("Enter something to be repeated: ")

  ## Quando o "break" é acionado, o print() abaixo NÃO será executado.
  ## O programa romperá o loop quando esta palavra-chave for lida.
  if user=="end":
    print("Terminate the program!!!")
    break
  print(user)
Enter something to be repeated: a
a
Enter something to be repeated: g
g
Enter something to be repeated: end
Terminate the program!!!
# Sem usar a palavra-chave "break", esta é outra implementação do mesmo programa de cima usando uma variável.

end = False
while end == False:
  user = input("Enter something to be repeated: ")
  if user=="end":
    print("Program Ended!!!")
    end = True
  else:
    print(user)
Enter something to be repeated: a
a
Enter something to be repeated: f
f
Enter something to be repeated: h
h
Enter something to be repeated: d
d
Enter something to be repeated: end
Program Ended!!!
"""
Vamos considerar um loop que conta de 1-20, mas ignora todos os números que são múltiplos de 5. 
Neste caso, NÃO poderíamos usar a palavra-chave "break", porque isso encerrará o loop. 
Queremos "continuar" o loop, exceto por alguns números. 

Vamos implementar isto tanto com um loop "while" quanto com um loop "for". 
"""

count = 1

# Implementação do loop WHILE
while count <= 20:
  if count % 5 == 0:
    print("SKIP")
    count += 1
    continue
  print(count)
  count += 1
1
2
3
4
SKIP
6
7
8
9
SKIP
11
12
13
14
SKIP
16
17
18
19
SKIP
# Implementação do loop FOR 

for i in range (1, 20):
  if i % 5 == 0:
    print("SKIP")
    continue
  print(i)
1
2
3
4
SKIP
6
7
8
9
SKIP
11
12
13
14
SKIP
16
17
18
19

Funções

Funções são úteis quando lhe é dado um problema que pode ser dividido em várias etapas e algumas etapas são usadas de forma repetitiva. Então, ter uma função para essas etapas é conveniente porque reduz a repetição de código e torna o código mais organizado.

Notas sobre a definição de uma nova função:

  1. Definir/inicializar uma nova função com a palavra-chave def antes do nome da função.
  2. NÃO definir o tipo de retorno na declaração da função.
  3. NÃO esquecer do parâmetro da função se sua função precisar de informações do main() ou de outras funções.
  4. A declaração RETURN não é necessária, dependendo das funções.
"""
Escreveremos nossa própria função que testa se um triângulo de 3 lados é um triângulo retângulo. 
Como não podemos controlar a ordem dos lados que o usuário nos dá (de tal forma que C é o comprimento mais longo), 
precisamos verificar manualmente se C é o comprimento mais longo (os comprimentos A e B podem estar em qualquer ordem). 
Caso contrário, nosso teorema de Pitágoras falhará. 
"""

def isRightTriangle(a, b, c):

  # Reatribuir valores variáveis para garantir que C seja o comprimento mais longo
  if (max(a,b,c) != c):

    # tmp armazena os valores anteriores de C, que não é o comprimento mais longo
    tmp = c
    c = max(a,b,c)

    if a == c:
      a = tmp
    elif b == c:
      b = tmp
    

  # Aplicar a fórmula
  if a**2 + b**2 == c**2:
    print("Right Triangle")

    # Se o programa vê uma declaração Return, este é o FIM do programa/função
    return True
  
  # Estas duas linhas funcionarão SOMENTE quando a condição IF for falsa
  print("NOT a right triangle")
  return False


# Solicite ao usuário que insira 3 comprimentos
def main():
  a = input("Enter the length for the first edge of the triangle:")
  b = input("Enter the length for the second edge of the triangle:")
  c = input("Enter the length for the last edge of the triangle:")

  # As entradas do usuário são armazenadas como uma string, então nós as computamos para ser int
  return isRightTriangle(int(a), int(b), int(c))

if __name__ == "__main__":
    main()
Enter the length for the first edge of the triangle:5
Enter the length for the second edge of the triangle:4
Enter the length for the last edge of the triangle:3
Right Triangle
"""
Outro exemplo: determinar se a entrada do usuário é um palíndromo. 

Palíndromo: se uma palavra/sentença é soletrada da mesma maneira quando é invertida. 
  EX: racecar (carro de corrida)

Para este exemplo, vamos tornar isto de forma mais abrangente. 
Em vez de verificar se uma palavra é um palíndromo, vamos testar se uma frase é um palíndromo. 

A fim de escrever este programa, estabeleceremos algumas especificações:
  - Tratar as letras maiúsculas como minúsculas
  - Ignorar todos os espaços brancos e pontuações
  - Uma sentença/string vazia é considerada como um palíndromo. 
"""

# importar o pacote de string
# Revisaremos mais pacotes/bibliotecas no Módulo 5
import string


# Esta implementação da função RETURN (retornar) um valor booleano, True/False (Verdadeiro/Falso)
def isPalindrome(str):

   # Como não conseguimos controlar o que o usuário insere na sentença, vamos esclarecer primeiro a sentença.
   # Vamos remover todas as pontuações e espaços brancos da sentença e colocar todas as letras em minúsculo 
   exclude = set(string.punctuation)
   str = ''.join(ch for ch in str if ch not in exclude)
   str = str.replace(" ", "").lower()

 # Comparar a string original com a string em ordem inversa
    # Observação de str[::-1]: os dois primeiros números definem o início e o fim da string, o último número de -1 indica a ordem inversa

  # Verificar se a string é a mesma tanto em ordem invertida quanto na ordem original
  if str == str[::-1]:
    return True
  else:
    return False

# Solicitar ao usuário que introduza a sentença
def main():
  userSentence = input("Enter a sentence to be tested as a palindrome:")

  if (isPalindrome(userSentence)):
    print(userSentence + " is a palindrome!")
  else:
    print(userSentence + " is NOT a palindrome!")

if __name__ == "__main__":
    main()
Enter a sentence to be tested as a palindrome:racecar
racecar is a palindrome!
# Considere esta implementação da função que RETURN (retorna) uma string.
# Anote a diferença entre main() e isPalindrom() após esta mudança. 

import string

def isPalindrome(str):
  exclude = set(string.punctuation)
  str = ''.join(ch for ch in str if ch not in exclude)
  str = str.replace(" ", "").lower()
  if str == str[::-1]:
    return str + " is a palindrome!"
  else:
    return str + " is NOT a palindrome!"

def main():
  userSentence = input("Enter a sentence to be tested as a palindrome:")
  print(isPalindrome(userSentence))

if __name__ == "__main__":
    main()


"""
Acima trabalhamos com um exemplo que testa se uma sentença é um palíndromo. 
Agora é a sua vez.

;Exercício: escreva uma função para testar se uma palavra do usuário é um palíndromo. 

As declarações de função são fornecidas para você.
"""

def isPalindrome(str):
  


# Solicitar que o usuário digite a sentença
def main():
  userInput = input("Enter a WORD to be tested as a palindrome:")

  if (isPalindrome(userInput)):
    print(userInput + " is a palindrome!")
  else:
    print(userInput + " is NOT a palindrome!")

if __name__ == "__main__":
    main()
NÃO VEJA A SOLUÇÃO ANTES DE TENTAR FAZER O EXERCÍCIO!
# Uma implementação de solução para o exercício acima. 

def isPalindrome(str):
  str = str.lower()
  if (str == str[::-1]):
    return True
  else:
    return False


# Solicitar ao usuário que introduza a sentença
def main():
  userInput = input("Enter a WORD to be tested as a palindrome:")

  if (isPalindrome(userInput)):
    print(userInput + " is a palindrome!")
  else:
    print(userInput + " is NOT a palindrome!")
    
if __name__ == "__main__":
    main()
Enter a WORD to be tested as a palindrome:racecar
racecar is a palindrome!



Icone voltar.png Icone menu.png Icone prox.png