Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Oppiskele Haaste: Puhelinnumeron Muotoilu | Rekurssio ja Lambda-Funktiot
Python-Funktioiden Opas
Osio 5. Luku 2
single

single

bookHaaste: Puhelinnumeron Muotoilu

Pyyhkäise näyttääksesi valikon

Muista, että rekursiivinen funktio ratkaisee ongelman kutsumalla itseään yksinkertaisemmalla syötteellä, kunnes saavutetaan perusehto, joka lopettaa rekursion:

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

Huomaa, että jokainen rekursiivinen kutsu käsittelee pienempää versiota syötteestä — tässä tapauksessa listaa ilman ensimmäistä alkiota. Sama lähestymistapa pätee, kun käsitellään merkkijonoja merkki kerrallaan.

Tehtävä

Pyyhkäise aloittaaksesi koodauksen

Annettuna merkkijono, joka edustaa puhelinnumeroa ja voi sisältää välilyöntejä, viivoja, sulkuja tai muita ei-numeerisia merkkejä. Tavoitteena on poimia vain numerot rekursion avulla.

  1. Jos syötemerkkijono number on tyhjä, palautetaan tyhjä merkkijono;
  2. Tarkista, onko merkkijonon number ensimmäinen merkki numero käyttämällä isdigit()-metodia;
  3. Jos se on numero, yhdistä se rekursiivisen kutsun tulokseen, jossa parametrina on toisesta merkistä alkaen muodostettu aliketju;
  4. Jos se ei ole numero, tee rekursiivinen kutsu ohittaen ensimmäinen merkki.

Ratkaisu

Switch to desktopVaihda työpöytään todellista harjoitusta vartenJatka siitä, missä olet käyttämällä jotakin alla olevista vaihtoehdoista
Oliko kaikki selvää?

Miten voimme parantaa sitä?

Kiitos palautteestasi!

Osio 5. Luku 2
single

single

Kysy tekoälyä

expand

Kysy tekoälyä

ChatGPT

Kysy mitä tahansa tai kokeile jotakin ehdotetuista kysymyksistä aloittaaksesi keskustelumme

some-alt