Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
K
kurs_alx_pcz
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Patryk Czarnik
kurs_alx_pcz
Commits
cb12b8c6
Commit
cb12b8c6
authored
Nov 30, 2023
by
Patryk Czarnik
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
zadanie "formatuj" - wersja re
parent
56398c92
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
16 additions
and
3 deletions
+16
-3
formatowanie.py
dzien6/przyklady_funkcji/formatowanie.py
+16
-3
No files found.
dzien6/przyklady_funkcji/formatowanie.py
View file @
cb12b8c6
def
formatuj
(
*
args
,
**
kwargs
):
napis
=
'
\n
'
.
join
(
args
)
# etap 1: łączę linie do pojedynczego napisu
# zamiast tego można użyć join
napis
=
''
for
arg
in
args
:
if
napis
:
napis
+=
'
\n
'
napis
+=
arg
# etap 2: podmieniam wszystkie wystąpienia $parametr wartościami parametrów
for
k
,
v
in
kwargs
.
items
():
napis
=
napis
.
replace
(
'$'
+
k
,
str
(
v
))
return
napis
def
formatuj2
(
*
args
,
**
kwargs
):
import
re
return
re
.
sub
(
r'\$(\w+)'
,
lambda
m
:
str
(
kwargs
[
m
[
1
]]),
'
\n
'
.
join
(
args
))
def
test_formatuj_1
():
wynik
=
formatuj
(
'Pierwsza linia'
,
'Druga linia'
,
'Trzecia linia'
)
wynik
=
formatuj
2
(
'Pierwsza linia'
,
'Druga linia'
,
'Trzecia linia'
)
assert
wynik
==
'Pierwsza linia
\n
Druga linia
\n
Trzecia linia'
def
test_formatuj_2
():
wynik
=
formatuj
(
'Koszt towaru $nazwa wynosi $cena'
,
wynik
=
formatuj
2
(
'Koszt towaru $nazwa wynosi $cena'
,
'Wydaje mi się, że $cena PLN to trochę dużo'
,
cena
=
3900
,
nazwa
=
'karta graficzna'
)
assert
wynik
==
'Koszt towaru karta graficzna wynosi 3900
\n
Wydaje mi się, że 3900 PLN to trochę dużo'
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment