Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lära Sökning och mätning | Strängar
Datatyper i Python

bookSö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.

123
s = "Python programming" print("gram" in s) # True print("Java" not in s) # True
copy

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 som find, men kastar ValueError om delsträngen saknas.
12345
s = "abracadabra" print(s.find("bra")) # 1 print(s.rfind("bra")) # 8 print(s.find("xyz")) # -1 print(s.index("xyz")) # ValueError
copy

Räkna förekomster

count(sub) returnerar hur många icke-överlappande gånger delsträngen förekommer.

123
s = "banana" print(s.count("a")) # 3 print(s.count("na")) # 2
copy

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.

123
fname = "report_final.pdf" print(fname.startswith("report")) # True print(fname.endswith(".pdf")) # True
copy

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()).

123
msg = "Hello, World!" print("hello" in msg.lower()) # True print(msg.lower().startswith("hello")) # True
copy
Note
Notera

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"?

question mark

Vad kommer denna kod att skriva ut?

Select the correct answer

question mark

Vilket uttryck kastar inte ett fel när delsträngen saknas?

Select the correct answer

question mark

Givet s = "Banana", vilket uttryck returnerar True skiftlägesokänsligt vid kontroll av prefixet "ba"?

Select the correct answer

Var allt tydligt?

Hur kan vi förbättra det?

Tack för dina kommentarer!

Avsnitt 3. Kapitel 3

Fråga AI

expand

Fråga AI

ChatGPT

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

bookSö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.

123
s = "Python programming" print("gram" in s) # True print("Java" not in s) # True
copy

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 som find, men kastar ValueError om delsträngen saknas.
12345
s = "abracadabra" print(s.find("bra")) # 1 print(s.rfind("bra")) # 8 print(s.find("xyz")) # -1 print(s.index("xyz")) # ValueError
copy

Räkna förekomster

count(sub) returnerar hur många icke-överlappande gånger delsträngen förekommer.

123
s = "banana" print(s.count("a")) # 3 print(s.count("na")) # 2
copy

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.

123
fname = "report_final.pdf" print(fname.startswith("report")) # True print(fname.endswith(".pdf")) # True
copy

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()).

123
msg = "Hello, World!" print("hello" in msg.lower()) # True print(msg.lower().startswith("hello")) # True
copy
Note
Notera

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"?

question mark

Vad kommer denna kod att skriva ut?

Select the correct answer

question mark

Vilket uttryck kastar inte ett fel när delsträngen saknas?

Select the correct answer

question mark

Givet s = "Banana", vilket uttryck returnerar True skiftlägesokänsligt vid kontroll av prefixet "ba"?

Select the correct answer

Var allt tydligt?

Hur kan vi förbättra det?

Tack för dina kommentarer!

Avsnitt 3. Kapitel 3
some-alt