Yksi yleisimmistä toiminnoista kaikissa ohjelmointikielissä on määrittää, sisältääkö tietty merkkijono alimerkkijonoa. Pythonilla on useita menetelmiä määrittää, sisältääkö tietty merkkijono merkin. Pythonin 'in'-operaattori, joka toimii vertailutoimintojen työkaluna, on nopein ja helpoin tapa määrittää, sisältääkö Python-merkkijono merkin. Sen tarkistaminen, sisältääkö merkkijono alimerkkijonon, hyötyy myös muiden Python-funktioiden, kuten find(), index(), count() ja muiden käytöstä.
Pythonin 'in'-operaattorin käyttäminen
Pythonin 'in'-operaattori on nopein ja helpoin tapa määrittää, sisältääkö merkkijono alimerkkijonon vai ei. Jos merkkijonossa on merkit, tämä toiminto palauttaa boolen tosi; muussa tapauksessa se palauttaa väärin.
Koodi
# Python program to show how to use the in operator to check if a string contains a substring # Creating a string str='Python Tutorial' print('The string 'tut' is present in the string: ', 'Tut' in str)
Lähtö:
The string 'tut' is present in the string: True
Jos vasemmanpuoleisena argumenttina annettu merkkijono sisältyy oikeana argumenttina annetun merkkijonon sisälle, 'in'-operaattori antaa True-arvon. Se hyväksyy kaksi parametria, yksi kummallakin puolella. Pythonin 'in'-operaattori käsittelee isot ja pienet kirjaimet erikseen, koska se on isot ja pienet kirjaimet huomioiva operaattori.
Käyttämällä __contains__()-funktiota
Pythonin String-luokan __contains__()-funktio tarjoaa myös tavan määrittää, sisältääkö annettu merkkijono alimerkkijonoa vai ei. Pythonin 'in'-toiminto kutsuu __contains__()-metodia, kun sitä käytetään implisiittisesti. Kun luokkaobjekti näkyy 'in'- ja 'not in'-operaattoreiden oikealla puolella, käyttäytyminen määritellään __contains__-metodilla. Vaikka voimmekin, emme käytä tätä menetelmää nimenomaisesti. Vaikka funktioita, joiden ensimmäinen merkki on alaviiva, pidetään semanttisesti yksityisinä, on suositeltavaa käyttää 'in'-operaattoreita luettavuuden vuoksi.
Koodi
# Python program to show how to use the __contain__ method to check if a string contains a substring # Creating a string string = 'Python Tutorial' print('The string 'tut' is present in the string: ', string.__contains__('Tut'))
Lähtö:
The string 'tut' is present in the string: True
Pythonin str.find()-menetelmällä
Voit myös käyttää string.find()-tekniikkaa. Find()-funktio määrittää, onko annetussa merkkijonossa alimerkkijonoa. Jos se löytää, find()-funktio palauttaa -1; muuten se antaa merkkijonon sisällä olevan alimerkkijonon alkuindeksin.
Koodi
# Python program to find a character in a string and get its index # Creating a string string = 'Python Tutorial' index = string.find('T') if index != -1: print('The character 'T' is present in the string at: ', index) else: print('The character is not present in the string')
Lähtö:
Linuxin nimeä kansio uudelleen
The character 'T' is present in the string at: 7
Tämä lähestymistapa on hyväksyttävä; str.find():n käyttö on kuitenkin vähemmän pytoninen tapa suorittaa tämä tehtävä. Vaikka se on pidempi ja hieman sekavampi, se silti suorittaa tehtävän.
Str.count()-menetelmän käyttäminen
Käytä Python count() -funktiota, jos haluat laskea tietyn alimerkkijonon esiintymät merkkijonossa. Funktio antaa 0, jos se ei löydä osamerkkijonoa tai merkkiä annetusta merkkijonosta.
Koodi
# Python program to check a character is present in the string using the count() function # Creating a string string = 'Python Tutorial' count = string.count('o') if count != 0: print(f'The character 'o' is present in the string {count} times.') else: print('The character is not present in the string')
Lähtö:
The character 'o' is present in the string 2 times.