Blog JSystems - uwalniamy wiedzę!
Blog JSystems - uwalniamy wiedzę!

Wyrażenia z jedną gwiazdką (*) używamy gdy do funkcji chcemy przekazać dowolną liczbę argumentów pozycyjnych. Przyjrzyjmy się prostemu przykładowi
def args(*args):
for a in args:
print(f'{a}')
Dla każdego elementu w "args" wypisujemy jego zawartość. Args jest więc iterowalne. Zauważ że deklarując argument piszę "*" przed args, ale już iterując po nim tego nie robię. Wywołanie funkcji:
args(1,2,3,4,5)
Powoduje wyświetlenie każdej z wartości w osobnej linii.
1
2
3
4
5
Zwróć uwagę, że elementy nie zostały przekazane jako lista, ale jako kolejne argumenty!
Przyjrzyjmy się jeszcze jednemu prostemu przykładowi:
def powiekszacz(*slowa):
for s in slowa:
print(s.upper())
powiekszacz('siema','tu','mapet')
Po wywołaniu dostajemy na konsoli:
SIEMA
TU
MAPET
Nazwa *args nie jest wymagana, jest to tylko taka przyjęta konwencja. Może się nazywać choćby *slowa jak w powyższym przykładzie.
Do funkcji poza parametrami *args możemy przekazać jeszcze jakieś dodatkowe parametry, ale wtedy bedą musiały być one wymienione jako pierwsze.
def dlakazdego(param1,*args):
print(f'param1={param1}')
for a in args:
print(a)
dlakazdego('pierwsza wartość','pierwszy arg','drugi arg', 3)
Należy być ostrożnym przy przekazywaniu list do takiej funkcji. Weźmy pod uwagę taki przypadek:
def argi(*args):
for e in args:
print(e)
argi([1,2,3,4],'coś')
Przekazana lista zostaje potraktowana jako jeden element. Zobaczmy co zostało wyświetlone:
[1, 2, 3, 4]
coś
Jeśli chcemy by każdy z elementów tej listy został potraktowany jako osobny argument, musimy tę listę rozpakować za pomocą operatora "*":
argi(*[1,2,3,4],'coś')
co skutkuje wyrzuceniem na konsolę:
1
2
3
4
coś
Ten kurs daje Ci solidne podstawy Pythona. Jeśli chcesz pójść dalej i pod okiem trenera dojść od pierwszej linijki kodu do własnego modelu uczenia maszynowego, sprawdź nasze pięciodniowe szkolenie Python od podstaw, przez analizę danych, do machine learning. Pierwsze trzy dni to Python w praktyce: typy i kolekcje, instrukcje warunkowe i pętle, funkcje, moduły i pakiety, pliki tekstowe, usługi sieciowe oraz praca z bazą PostgreSQL. Czwarty dzień to analiza danych w pandas (wczytywanie CSV, TSV i XLS, filtrowanie, agregacje, statystyki) i wizualizacja w Matplotlib, Seaborn oraz Plotly. Piąty dzień to uczenie maszynowe w scikit-learn: regresja liniowa i logistyczna, drzewa decyzyjne, las losowy, XGBoost, walidacja predykcji, dobór hiperparametrów i przeciwdziałanie przeuczeniu. Szkolenie ma terminy gwarantowane, czyli odbywa się niezależnie od wielkości grupy.
Szkolenie Python od podstaw, przez analizę danych, do machine learning
To szkolenie może być dofinansowane dla Ciebie z KFS lub BUR.
★★★★★Średnia ocena naszych szkoleń w Google: 5/5
Komentarze (0)
Brak komentarzy...