Kurzusok
/
Python
Python
/
Feladatok
/
A kishúg fogalmazása
A kishúg fogalmazása

A kishúg fogalmazása

Tanulófeladat

Bevezetés

A str osztály számos hasznos metódust kínál a stringekkel való munkához és azok összeállításához. Ezek közé tartozik a keresés, a tisztítás, a felbontás, az átalakítás, a fordítás és számos más technika.

A stringek sorozatok, amelyek Unicode-kódpontokból állnak. Az egyes „karakterek” vagy kódpontok (1 hosszúságú stringek) balról egy 0-based index számmal, jobbról pedig egy -1-based index számmal érhetők el. A stringek minden általános sorozatműveletet megvalósítanak.

Bejárhatók for item in <str> vagy for index, item in enumerate(<str>) szintaxissal. Össze is fűzhetők a <str> + <other str> vagy a <str>.join(<iterable>) használatával.

A stringek változtathatatlanok, ami azt jelenti, hogy egy str objektum értéke a memóriában nem változhat meg. A str-en működő függvények vagy metódusok (mint amilyeneket itt épp megismerünk) az adott str objektum egy új instance-ét adják vissza ahelyett, hogy az eredeti str-et módosítanák.

A Python stringmetódusainak egy kis válogatása következik. A teljes listát a Python dokumentációjában találod, a str osztály leírásánál.

A <str>.title() feldolgoz egy stringet, és a benne talált minden „szó” első „karakterét” nagybetűssé alakítja. Pythonban ez nagyban függ a használt nyelvi kodektől, valamint attól, hogy az adott nyelv hogyan ábrázolja a szavakat és a karaktereket. Egy nyelvhez vagy karakterkészlethez locale szabályok is érvényben lehetnek.

man_in_hat_th = 'ผู้ชายใส่หมวก'
man_in_hat_ru = 'мужчина в шляпе'
man_in_hat_ko = '모자를 쓴 남자'
man_in_hat_en = 'the man in the hat.'

>>> man_in_hat_th.title()
'ผู้ชายใส่หมวก'

>>> man_in_hat_ru.title()
'Мужчина В Шляпе'

>>> man_in_hat_ko.title()
'모자를 쓴 남자'

>> man_in_hat_en.title()
'The Man In The Hat.'

A <str>.endswith(<suffix>) True-t ad vissza, ha a string végződése <suffix>, egyébként False-t.

>>> 'My heart breaks. 💔'.endswith('💔')
True

>>> 'cheerfulness'.endswith('ness')
True

# Punctuation is part of the string, so needs to be included in any endswith match.
>>> 'Do you want to 💃?'.endswith('💃')
False

>> 'The quick brown fox jumped over the lazy dog.'.endswith('dog')
False

A <str>.strip(<chars>) a str egy másolatát adja vissza, amelyből eltávolította a vezető és a záró <chars> karaktereket. A <chars>-ben megadott kódpontok nem előtagként vagy utótagként működnek: a kódpontok minden kombinációját eltávolítja, a string mindkét végétől kiindulva. Ha a <chars> nincs megadva, a whitespace-kódpontok minden kombinációja eltávolításra kerül.

# This will remove "https://", because it can be formed from "/stph:". 
>>> 'https://unicode.org/emoji/'.strip('/stph:')
'unicode.org/emoji'

# Removal of all whitespace from both ends of the str.
>>> '   🐪🐪🐪🌟🐪🐪🐪   '.strip()
'🐪🐪🐪🌟🐪🐪🐪'

>>> justification = 'оправдание'
>>> justification.strip('еина')
'оправд'

# Prefix and suffix in one step.
>>> 'unaddressed'.strip('dnue')
'address'

>>> '  unaddressed  '.strip('dnue ')
'address'

A <str>.replace(<substring>, <replacement substring>) a string egy másolatát adja vissza, amelyben a <substring> minden előfordulását <replacement substring> váltja fel.

Az alábbi idézet The Hunting of the Snark című műből származik, Lewis Carroll tollából.

# The Hunting of the Snark, by Lewis Carroll
>>> quote = '''
"Just the place for a Snark!" the Bellman cried,
   As he landed his crew with care;
Supporting each man on the top of the tide
   By a finger entwined in his hair.

"Just the place for a Snark! I have said it twice:
   That alone should encourage the crew.
Just the place for a Snark! I have said it thrice:
   What I tell you three times is true."
'''

>>> quote.replace('Snark', '🐲')
...
'\n"Just the place for a 🐲!" the Bellman cried,\n   As he landed his crew with care;\nSupporting each man on the top of the tide\n   By a finger entwined in his hair.\n\n"Just the place for a 🐲! I have said it twice:\n   That alone should encourage the crew.\nJust the place for a 🐲! I have said it thrice:\n   What I tell you three times is true."\n'

>>> 'bookkeeper'.replace('kk', 'k k')
'book keeper'

Utasítások

Ebben a feladatban a húgodnak segítesz szerkeszteni az iskolai dolgozatát. A tanár a helyes írásjelekre, a nyelvtanra és a kiváló szóhasználatra figyel.

Négy részfeladatban kell karakterláncokat megtisztítanod és módosítanod.

1. Írd nagybetűvel a dolgozat címét

Minden jó dolgozathoz megfelelően formázott cím kell. Valósítsd meg a capitalize_title(<title>) függvényt, amely paraméterként egy title str-t kap, és minden szó első betűjét nagybetűssé teszi. A függvény egy title case formátumú str-t adjon vissza.

>>> capitalize_title("my hobbies")
"My Hobbies"

2. Ellenőrizd, hogy minden mondat ponttal végződik-e

Szeretnéd, ha a dolgozat írásjelei tökéletesek lennének. Valósítsd meg a check_sentence_ending() függvényt, amely paraméterként egy sentence értéket kap. A függvény egy bool értéket adjon vissza.

>>> check_sentence_ending("I like to hike, bake, and read.")
True

3. Tisztítsd meg a szóközöket

Ahhoz, hogy a dolgozat professzionálisnak tűnjön, el kell távolítani a felesleges szóközöket. Valósítsd meg a clean_up_spacing() függvényt, amely paraméterként egy sentence értéket kap. A függvénynek el kell távolítania a felesleges szóközöket a mondat elejéről és végéről is, és egy új, frissített str mondatot kell visszaadnia.

>>> clean_up_spacing(" I like to go on hikes with my dog.  ")
"I like to go on hikes with my dog."

4. Cserélj ki szavakat szinonimára

Ahhoz, hogy a dolgozat még jobb legyen, néhány melléknevet kicserélhetsz a szinonimájára. Írd meg a replace_word_choice() függvényt, amely paraméterként egy sentence, egy old_word és egy new_word értéket kap. A függvény cserélje le az old_word összes előfordulását a new_word-re, és adjon vissza egy új str-t a frissített mondattal.

>>> replace_word_choice("I bake good cakes.", "good", "amazing")
"I bake amazing cakes."
Szerkesztés GitHubon A hivatkozás új ablakban vagy lapon nyílik meg
Python Exercism

Készen állsz elkezdeni a(z) A kishúg fogalmazása 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.