Kurzusok
/
Python
Python
/
Feladatok
/
Telefonszám
Telefonszám

Telefonszám

Könnyű

Bevezetés

Csatlakoztál a LinkLine-hoz, egy vezető kommunikációs vállalathoz, amely azon dolgozik, hogy mindenki számára megbízható kapcsolatot biztosítson. A csapat nagy kihívás előtt áll: a felhasználók mindenféle formátumban küldik be a telefonszámokat, kötőjelekkel, szóközökkel, pontokkal, zárójelekkel, sőt előtagokkal is. Egyes számok érvényesek, másokat viszont lehetetlen használni.

A küldetésed az, hogy rendet teremts ebben a káoszban. Megtisztítod az érvényes számokat, és úgy formázod őket, hogy használhatók legyenek a rendszerben. Ezzel egy időben felismered és kiszűröd az érvénytelen bejegyzéseket.

A LinkLine működésének sikere azon múlik, hogy képes vagy-e különválasztani a hasznosat a használhatatlantól. Készen állsz rá, hogy belevágj a kihívásba, és a kapcsolatok zökkenőmentesen működjenek?

Utasítások

Tisztítsd meg a telefonszámokat, hogy SMS-t lehessen rájuk küldeni.

A North American Numbering Plan (NANP) egy olyan telefonszámozási rendszer, amelyet Észak-Amerika számos országa használ, például az Egyesült Államok, Kanada vagy Bermuda. Minden NANP-ország ugyanazt a nemzetközi országkódot használja: 1.

A NANP-számok tízjegyű számok, amelyek egy háromjegyű Numbering Plan Area kódból, közismertebb nevén körzetszámból, majd egy hétjegyű helyi számból állnak. A helyi szám első három jegye a központkód, amelyet az egyedi négyjegyű előfizetői szám követ.

A formátumot általában így jelölik:

NXX NXX-XXXX

ahol az N bármely 2 és 9 közötti számjegy, az X pedig bármely 0 és 9 közötti számjegy.

Néha az országkódot is a szám elé írják (amit 1 vagy +1 jelöl).

A feladatod, hogy a különböző formátumú telefonszámokat megtisztítsd: távolítsd el belőlük az írásjeleket, és ha van, az országkódot.

Például a következő bemenetek

  • +1 (613)-995-0253
  • 613-995-0253
  • 1 613 995 0253
  • 613.995.0253

mindegyikének a következő kimenetet kell adnia:

6139950253

Megjegyzés: Mivel ez a feladat csak a NANP-országokban használt telefonszámokkal foglalkozik, egyedül az 1 számít érvényes országkódnak.

Kivételüzenetek

Néha szükség van arra, hogy kivételt dobj. Amikor ezt teszed, mindig adj meg egy beszédes hibaüzenetet, amely jelzi, mi a hiba forrása. Ez olvashatóbbá teszi a kódodat, és nagyban segít a hibakeresésben. Ha tudod, hogy a hiba forrása egy bizonyos típusú lesz, választhatsz, hogy a beépített hibatípusok egyikét dobod, de ilyenkor is adj meg beszédes üzenetet.

Ez a feladat megköveteli, hogy a raise utasítás segítségével „dobj” több ValueErrors kivételt, ha a PhoneNumber() osztály konstruktorának olyan számot adsz át, amely nem érvényes telefonszám. Ez magában foglalja azokat az eseteket, amikor a körzetszám vagy a központi számok érvénytelenek, amikor a számnak túl sok (vagy túl kevés) számjegye van, és amikor írásjeleket vagy betűket adnak meg bemenetként. A tesztek csak akkor lesznek sikeresek, ha raise-elsz egy exception-t, és üzenetet is mellékelsz hozzá.

Ha egy ValueError-t üzenettel szeretnél dobni, írd az üzenetet az exception típus argumentumaként:

# if a phone number has less than 10 digits.
raise ValueError("must not be fewer than 10 digits")

# if a phone number has more than 11 digits.
raise ValueError("must not be greater than 11 digits")

# if a phone number has 11 digits, but starts with a number other than 1.
raise ValueError("11 digits must start with 1")

# if a phone number has an exchange code that starts with 0.
raise ValueError("exchange code cannot start with zero")

# if a phone number has an exchange code that starts with 1.
raise ValueError("exchange code cannot start with one")

# if a phone number has an area code that starts with 0.
raise ValueError("area code cannot start with zero")

# if a phone number has an area code that starts with 1.
raise ValueError("area code cannot start with one")

# if a phone number has punctuation in place of some digits.
raise ValueError("punctuations not permitted")

# if a phone number has letters in place of some digits.
raise ValueError("letters not permitted")
Szerkesztés GitHubon A hivatkozás új ablakban vagy lapon nyílik meg
Python Exercism

Készen állsz elkezdeni a(z) Telefonszám feladatot?

Iratkozz fel az Exercism-re, hogy megtanuld és elsajátítsd a(z) Python nyelvet 17 fogalom146 feladat segítségével, valódi emberi mentorálással, mindez ingyen.