Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lära Utmaning: Formatering av ett telefonnummer | Rekursion och Lambda-Funktioner
Handledning om Pythonfunktioner
Avsnitt 5. Kapitel 2
single

single

bookUtmaning: Formatering av ett telefonnummer

Svep för att visa menyn

Kom ihåg att en rekursiv funktion löser ett problem genom att anropa sig själv med en enklare indata, tills den når basfallet som stoppar rekursionen:

1234
def list_sum(numbers): if not numbers: # Base case return 0 return numbers[0] + list_sum(numbers[1:]) # Recursive case
copy

Observera hur varje rekursivt anrop arbetar med en mindre version av indatan — i detta fall listan utan sitt första element. Samma metod gäller vid bearbetning av strängar tecken för tecken.

Uppgift

Svep för att börja koda

Givet en sträng som representerar ett telefonnummer, vilken kan innehålla mellanslag, bindestreck, parenteser eller andra icke-numeriska tecken. Målet är att extrahera endast siffrorna med hjälp av rekursion.

  1. Om indatasträngen number är tom, returnera en tom sträng;
  2. Kontrollera om första tecknet i strängen number är en siffra med metoden isdigit();
  3. Om det är en siffra, konkatenera den med resultatet av ett rekursivt anrop där delsträngen från och med andra tecknet skickas in;
  4. Om det inte är en siffra, gör ett rekursivt anrop där första tecknet hoppas över.

Lösning

Switch to desktopByt till skrivbordet för praktisk övningFortsätt där du är med ett av alternativen nedan
Var allt tydligt?

Hur kan vi förbättra det?

Tack för dina kommentarer!

Avsnitt 5. Kapitel 2
single

single

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

some-alt