Comparando Strings
Comparações de strings em Python são sensíveis a maiúsculas e minúsculas por padrão. Se a entrada do usuário puder variar em capitalização ou incluir espaços extras, normalize antes de comparar. Uma abordagem simples e confiável é remover espaços em branco e padronizar o uso de maiúsculas/minúsculas antes de realizar verificações de igualdade ou de prefixo/sufixo.
Sensível vs insensível a maiúsculas/minúsculas
Por padrão, "Apple" == "apple" resulta em False. Para ignorar diferenças de maiúsculas/minúsculas, normalize ambos os lados.
123a = "Hello" b = "heLLo" print(a.lower() == b.lower()) # True
casefold() é uma variante mais robusta e compatível internacionalmente de lower(), sendo uma melhor opção padrão para comparações sem distinção entre maiúsculas e minúsculas.
123s1 = "straße" s2 = "STRASSE" print(s1.casefold() == s2.casefold()) # True
Remover espaços e comparar
Usuários frequentemente adicionam espaços acidentalmente. Remova espaços em branco no início e no final antes de comparar.
123raw = " admin " role = "ADMIN" print(raw.strip().casefold() == role.casefold()) # True
Verificações de prefixo e sufixo
Utilize startswith e endswith. Para verificações sem distinção entre maiúsculas e minúsculas, normalize antes.
1234fname = "Report_Final.PDF" print(fname.lower().endswith(".pdf")) # True prefix = "rep" print(fname.strip().casefold().startswith(prefix.casefold())) # True
Pipeline consistente de normalização
Escolha uma ordem simples e repetível:
- Remova espaços em branco externos com
.strip(); - Padronize o uso de maiúsculas/minúsculas com
.casefold()(ou.lower()se preferir); - Em seguida, utilize
==,in,startswith,endswithou outras verificações.
1. Qual linha realiza corretamente uma verificação de igualdade sem diferenciar maiúsculas de minúsculas?
2. Dado s = " Hello ", qual expressão retorna True para uma verificação de igualdade sem diferenciar maiúsculas de minúsculas com "hello", ignorando espaços ao redor?
3. Qual afirmação é mais precisa para uma comparação robusta sem distinção entre maiúsculas e minúsculas?
Obrigado pelo seu feedback!
Pergunte à IA
Pergunte à IA
Pergunte o que quiser ou experimente uma das perguntas sugeridas para iniciar nosso bate-papo
Can you explain the difference between `lower()` and `casefold()` in more detail?
Are there any situations where `casefold()` might not be appropriate?
Can you show more examples of normalizing user input before comparison?
Awesome!
Completion rate improved to 5
Comparando Strings
Deslize para mostrar o menu
Comparações de strings em Python são sensíveis a maiúsculas e minúsculas por padrão. Se a entrada do usuário puder variar em capitalização ou incluir espaços extras, normalize antes de comparar. Uma abordagem simples e confiável é remover espaços em branco e padronizar o uso de maiúsculas/minúsculas antes de realizar verificações de igualdade ou de prefixo/sufixo.
Sensível vs insensível a maiúsculas/minúsculas
Por padrão, "Apple" == "apple" resulta em False. Para ignorar diferenças de maiúsculas/minúsculas, normalize ambos os lados.
123a = "Hello" b = "heLLo" print(a.lower() == b.lower()) # True
casefold() é uma variante mais robusta e compatível internacionalmente de lower(), sendo uma melhor opção padrão para comparações sem distinção entre maiúsculas e minúsculas.
123s1 = "straße" s2 = "STRASSE" print(s1.casefold() == s2.casefold()) # True
Remover espaços e comparar
Usuários frequentemente adicionam espaços acidentalmente. Remova espaços em branco no início e no final antes de comparar.
123raw = " admin " role = "ADMIN" print(raw.strip().casefold() == role.casefold()) # True
Verificações de prefixo e sufixo
Utilize startswith e endswith. Para verificações sem distinção entre maiúsculas e minúsculas, normalize antes.
1234fname = "Report_Final.PDF" print(fname.lower().endswith(".pdf")) # True prefix = "rep" print(fname.strip().casefold().startswith(prefix.casefold())) # True
Pipeline consistente de normalização
Escolha uma ordem simples e repetível:
- Remova espaços em branco externos com
.strip(); - Padronize o uso de maiúsculas/minúsculas com
.casefold()(ou.lower()se preferir); - Em seguida, utilize
==,in,startswith,endswithou outras verificações.
1. Qual linha realiza corretamente uma verificação de igualdade sem diferenciar maiúsculas de minúsculas?
2. Dado s = " Hello ", qual expressão retorna True para uma verificação de igualdade sem diferenciar maiúsculas de minúsculas com "hello", ignorando espaços ao redor?
3. Qual afirmação é mais precisa para uma comparação robusta sem distinção entre maiúsculas e minúsculas?
Obrigado pelo seu feedback!