Merkkijonojen Vertailu
Merkkijonojen vertailu Pythonissa on oletuksena kirjainkoon huomioivaa. Jos käyttäjän syöte voi vaihdella kirjainkoon tai ylimääräisten välilyöntien osalta, normalisoi ensin ja vertaa vasta sitten. Yksinkertainen ja luotettava tapa on poistaa välilyönnit alusta ja lopusta sekä yhtenäistää kirjainkoko ennen yhtäsuuruus- tai alku-/loppuvertailuja.
Kirjainkoon huomioiva vs kirjainkoon huomiotta jättävä
Oletuksena "Apple" == "apple" on False. Kirjainkoon huomiotta jättämiseksi normalisoi molemmat puolet.
123a = "Hello" b = "heLLo" print(a.lower() == b.lower()) # True
casefold() on vahvempi, kansainvälisesti yhteensopiva versio lower()-metodista ja parempi oletusvaihtoehto kirjainkoon huomioimattomiin vertailuihin.
123s1 = "straße" s2 = "STRASSE" print(s1.casefold() == s2.casefold()) # True
Trimmaa ja vertaa
Käyttäjät lisäävät usein vahingossa välilyöntejä. Poista alussa ja lopussa olevat välilyönnit ennen vertailua.
123raw = " admin " role = "ADMIN" print(raw.strip().casefold() == role.casefold()) # True
Etu- ja loppuliitteiden tarkistukset
Käytä startswith ja endswith. Tapausherkkyyden poistamiseksi normalisoi ensin.
1234fname = "Report_Final.PDF" print(fname.lower().endswith(".pdf")) # True prefix = "rep" print(fname.strip().casefold().startswith(prefix.casefold())) # True
Johdonmukainen normalisointiprosessi
Valitse yksinkertainen, toistettava järjestys:
- Poista ulommat välilyönnit metodilla
.strip(); - Yhtenäistä kirjainkoko metodilla
.casefold()(tai.lower()tarpeen mukaan); - Käytä sitten tarkistuksia kuten
==,in,startswith,endswithtai muita.
1. Mikä rivi suorittaa kirjainkoon huomioivan tasa-arvotarkistuksen oikein?
2. Kun s = " Hello ", mikä lauseke palauttaa True kirjainkoon huomioivassa tasa-arvotarkistuksessa merkkijonolle "hello", kun ympäröivät välilyönnit jätetään huomiotta?
3. Mikä väite on tarkin, kun halutaan tehdä vankka kirjainkoon huomioimaton vertailu?
Kiitos palautteestasi!
Kysy tekoälyä
Kysy tekoälyä
Kysy mitä tahansa tai kokeile jotakin ehdotetuista kysymyksistä aloittaaksesi keskustelumme
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
Merkkijonojen Vertailu
Pyyhkäise näyttääksesi valikon
Merkkijonojen vertailu Pythonissa on oletuksena kirjainkoon huomioivaa. Jos käyttäjän syöte voi vaihdella kirjainkoon tai ylimääräisten välilyöntien osalta, normalisoi ensin ja vertaa vasta sitten. Yksinkertainen ja luotettava tapa on poistaa välilyönnit alusta ja lopusta sekä yhtenäistää kirjainkoko ennen yhtäsuuruus- tai alku-/loppuvertailuja.
Kirjainkoon huomioiva vs kirjainkoon huomiotta jättävä
Oletuksena "Apple" == "apple" on False. Kirjainkoon huomiotta jättämiseksi normalisoi molemmat puolet.
123a = "Hello" b = "heLLo" print(a.lower() == b.lower()) # True
casefold() on vahvempi, kansainvälisesti yhteensopiva versio lower()-metodista ja parempi oletusvaihtoehto kirjainkoon huomioimattomiin vertailuihin.
123s1 = "straße" s2 = "STRASSE" print(s1.casefold() == s2.casefold()) # True
Trimmaa ja vertaa
Käyttäjät lisäävät usein vahingossa välilyöntejä. Poista alussa ja lopussa olevat välilyönnit ennen vertailua.
123raw = " admin " role = "ADMIN" print(raw.strip().casefold() == role.casefold()) # True
Etu- ja loppuliitteiden tarkistukset
Käytä startswith ja endswith. Tapausherkkyyden poistamiseksi normalisoi ensin.
1234fname = "Report_Final.PDF" print(fname.lower().endswith(".pdf")) # True prefix = "rep" print(fname.strip().casefold().startswith(prefix.casefold())) # True
Johdonmukainen normalisointiprosessi
Valitse yksinkertainen, toistettava järjestys:
- Poista ulommat välilyönnit metodilla
.strip(); - Yhtenäistä kirjainkoko metodilla
.casefold()(tai.lower()tarpeen mukaan); - Käytä sitten tarkistuksia kuten
==,in,startswith,endswithtai muita.
1. Mikä rivi suorittaa kirjainkoon huomioivan tasa-arvotarkistuksen oikein?
2. Kun s = " Hello ", mikä lauseke palauttaa True kirjainkoon huomioivassa tasa-arvotarkistuksessa merkkijonolle "hello", kun ympäröivät välilyönnit jätetään huomiotta?
3. Mikä väite on tarkin, kun halutaan tehdä vankka kirjainkoon huomioimaton vertailu?
Kiitos palautteestasi!