Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lære Challenge: Formatering af et Telefonnummer | Rekursion og Lambda-Funktioner
Python Funktioner Vejledning
Sektion 5. Kapitel 2
single

single

bookChallenge: Formatering af et Telefonnummer

Stryg for at vise menuen

Husk, at en rekursiv funktion løser et problem ved at kalde sig selv med et simplere input, indtil den når basis-tilfældet, der stopper rekursionen:

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

Bemærk, hvordan hvert rekursivt kald arbejder på en mindre version af inputtet — i dette tilfælde listen uden det første element. Den samme tilgang gælder, når man behandler strenge tegn for tegn.

Opgave

Swipe to start coding

Givet en streng, der repræsenterer et telefonnummer, som kan indeholde mellemrum, bindestreger, parenteser eller andre ikke-numeriske tegn. Målet er at udtrække kun cifrene ved hjælp af rekursion.

  1. Hvis inputstrengen number er tom, returneres en tom streng;
  2. Kontroller om første tegn i strengen number er et ciffer ved hjælp af metoden isdigit();
  3. Hvis det er et ciffer, sammenkæd det med resultatet af et rekursivt kald, hvor delstrengen starter fra andet tegn;
  4. Hvis det ikke er et ciffer, udfør et rekursivt kald, hvor første tegn springes over.

Løsning

Switch to desktopSkift til skrivebord for at øve i den virkelige verdenFortsæt der, hvor du er, med en af nedenstående muligheder
Var alt klart?

Hvordan kan vi forbedre det?

Tak for dine kommentarer!

Sektion 5. Kapitel 2
single

single

Spørg AI

expand

Spørg AI

ChatGPT

Spørg om hvad som helst eller prøv et af de foreslåede spørgsmål for at starte vores chat

some-alt