Skip to content

Commit 1090bc1

Browse files
committed
Switch the "zamen" exercise in str to not ask for a function
1 parent 5e300ff commit 1090bc1

1 file changed

Lines changed: 32 additions & 12 deletions

File tree

  • lessons/beginners/str-index-slice

lessons/beginners/str-index-slice/index.md

Lines changed: 32 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -160,29 +160,49 @@ abys v tom měl{{a}} lepší přehled:
160160

161161
## Cvičení
162162

163-
Zkus napsat funkci `zamen(retezec, pozice, znak)`.
164-
165-
Tato funkce vrátí řetězec, který má na dané pozici
166-
daný znak; jinak je stejný jako původní `retezec`. Například:
163+
Zkus napsat program `zamen.py`, který umí zaměnit jedno písmeno ve slově za
164+
jiné. Například:
167165

168166
```python
169-
# Zaměň třetí znak ve slově "čokoláda"
170-
print(zamen('čokoláda', 3, 'u')) # → čokuláda
167+
slovo = input('Slovo: ')
168+
pozice = int(input('Které písmeno zaměnit (od nuly)? '))
169+
novy_znak = input('Nové písmeno: ')
170+
171+
... # sem doplň kód
172+
173+
print(nove_slovo)
171174
```
172175

176+
Příklad použití:
177+
178+
<pre>
179+
Slovo: <strong>čokoláda</strong>
180+
Které písmeno zaměnit (od nuly)? <strong>3</strong>
181+
Nové písmeno: <strong>u</strong>
182+
<strong>čokuláda</strong>
183+
</pre>
184+
185+
<pre>
186+
Slovo: <strong>kočka</strong>
187+
Které písmeno zaměnit (od nuly)? <strong>1</strong>
188+
Nové písmeno: <strong>a</strong>
189+
<strong>kačka</strong>
190+
</pre>
191+
173192
Pozor na to, že řetězce v Pythonu nelze měnit.
174193
Nemůžeš v existujícím řetězci zaměnit jeden znak za jiný;
175194
musíš vytvořit nový řetězec poskládaný z částí toho starého.
176195

177196
{% filter solution %}
178197
```python
179-
def zamen(retezec, pozice, znak):
180-
"""Zamění znak na dané pozici
198+
slovo = input('Slovo: ')
199+
pozice = int(input('Které písmeno zaměnit (od nuly)? '))
200+
novy_znak = input('Nové písmeno: ')
181201

182-
Vrátí řetězec, který má na dané pozici daný znak;
183-
jinak je stejný jako vstupní retezec
184-
"""
202+
zacatek_slova = slovo[:pozice]
203+
konec_slova = slovo[pozice + 1:]
204+
nove_slovo = zacatek_slova + novy_znak + konec_slova
185205

186-
return retezec[:pozice] + znak + retezec[pozice + 1:]
206+
print(nove_slovo)
187207
```
188208
{% endfilter %}

0 commit comments

Comments
 (0)