Oi, Ruan! Tudo bem?
O código if(chute.upper() == letra.upper()): consegue encontrar a letra 'a' mesmo quando a palavra_secreta está em caixa alta justamente por causa do método .upper() que é aplicado tanto ao chute quanto à letra.
O método .upper() transforma todas as letras de uma string em maiúsculas, então, quando executamos chute.upper(), se o chute era "a", ele se torna "A". Da mesma forma, quando executamos letra.upper(), se a letra era "a", ela se torna "A". Isso significa que a comparação é feita sempre entre letras maiúsculas, independente de como a letra foi originalmente inserida.
Por exemplo, se a palavra_secreta for "BANANA" e o chute for "a", o que acontece é o seguinte:
chute.upper() transforma "a" em "A"letra.upper() transforma cada letra da palavra_secreta em maiúscula, mas como elas já são maiúsculas, elas permanecem as mesmas.- Então a comparação é feita entre "A" (chute) e "A" (letra da palavra_secreta), que são iguais.
O Python tem muitos métodos úteis como .upper() que nos ajudam a lidar com strings de maneiras flexíveis!
Espero ter ajudado! Caso tenha ficado alguma dúvida, sinta-se à vontade em comunicar, estou à disposição!
Um forte abraço e bons estudos!
Caso este post tenha te ajudado, por favor, marcar como solucionado ✓