Sökning och mätning
När du kan läsa delar av en sträng, är nästa steg att ställa frågor om dess innehåll: "innehåller den detta?", "var finns det?", "hur många gånger?", "börjar/slutar den med…?".
Medlemskap
Använd in för att kontrollera om en delsträng förekommer någonstans i en sträng. Det returnerar ett booleskt värde.
123s = "Python programming" print("gram" in s) # True print("Java" not in s) # True
Hitta positioner
find(sub)returnerar startindex för den första träffen, eller -1 om den inte hittas;rfind(sub)söker från höger och returnerar index för sista träffen (eller -1);index(sub)fungerar somfind, men kastarValueErrorom delsträngen saknas.
12345s = "abracadabra" print(s.find("bra")) # 1 print(s.rfind("bra")) # 8 print(s.find("xyz")) # -1 print(s.index("xyz")) # ValueError
Räkna förekomster
count(sub) returnerar hur många icke-överlappande gånger delsträngen förekommer.
123s = "banana" print(s.count("a")) # 3 print(s.count("na")) # 2
Början och slut
För att kontrollera om en sträng börjar eller slutar med något, använd startswith eller endswith; dessa är tydligare och säkrare än att använda slicing när du endast behöver ett ja/nej-svar.
123fname = "report_final.pdf" print(fname.startswith("report")) # True print(fname.endswith(".pdf")) # True
Skiftlägesokänsliga kontroller (enkelt och praktiskt)
Strängmetoder är skiftlägeskänsliga. För skiftlägesokänslig sökning, normalisera båda sidor med .lower() (eller .upper()).
123msg = "Hello, World!" print("hello" in msg.lower()) # True print(msg.lower().startswith("hello")) # True
Vi använde redan len() i föregående kapitel för att mäta längd; här fokuserar vi på innehållskontroller och positioner.
1. Vad kommer denna kod att skriva ut?
2. Vilket uttryck kastar inte ett fel när delsträngen saknas?
3. Givet s = "Banana", vilket uttryck returnerar True skiftlägesokänsligt vid kontroll av prefixet "ba"?
Tack för dina kommentarer!
Fråga AI
Fråga AI
Fråga vad du vill eller prova någon av de föreslagna frågorna för att starta vårt samtal
Awesome!
Completion rate improved to 5
Sökning och mätning
Svep för att visa menyn
När du kan läsa delar av en sträng, är nästa steg att ställa frågor om dess innehåll: "innehåller den detta?", "var finns det?", "hur många gånger?", "börjar/slutar den med…?".
Medlemskap
Använd in för att kontrollera om en delsträng förekommer någonstans i en sträng. Det returnerar ett booleskt värde.
123s = "Python programming" print("gram" in s) # True print("Java" not in s) # True
Hitta positioner
find(sub)returnerar startindex för den första träffen, eller -1 om den inte hittas;rfind(sub)söker från höger och returnerar index för sista träffen (eller -1);index(sub)fungerar somfind, men kastarValueErrorom delsträngen saknas.
12345s = "abracadabra" print(s.find("bra")) # 1 print(s.rfind("bra")) # 8 print(s.find("xyz")) # -1 print(s.index("xyz")) # ValueError
Räkna förekomster
count(sub) returnerar hur många icke-överlappande gånger delsträngen förekommer.
123s = "banana" print(s.count("a")) # 3 print(s.count("na")) # 2
Början och slut
För att kontrollera om en sträng börjar eller slutar med något, använd startswith eller endswith; dessa är tydligare och säkrare än att använda slicing när du endast behöver ett ja/nej-svar.
123fname = "report_final.pdf" print(fname.startswith("report")) # True print(fname.endswith(".pdf")) # True
Skiftlägesokänsliga kontroller (enkelt och praktiskt)
Strängmetoder är skiftlägeskänsliga. För skiftlägesokänslig sökning, normalisera båda sidor med .lower() (eller .upper()).
123msg = "Hello, World!" print("hello" in msg.lower()) # True print(msg.lower().startswith("hello")) # True
Vi använde redan len() i föregående kapitel för att mäta längd; här fokuserar vi på innehållskontroller och positioner.
1. Vad kommer denna kod att skriva ut?
2. Vilket uttryck kastar inte ett fel när delsträngen saknas?
3. Givet s = "Banana", vilket uttryck returnerar True skiftlägesokänsligt vid kontroll av prefixet "ba"?
Tack för dina kommentarer!