Get started learning Python with DataCamp's free Intro to Python tutorial. Learn Data Science by completing interactive coding challenges and watching videos by expert instructors. Start Now!
This site is generously supported by DataCamp. DataCamp offers online interactive Python Tutorials for Data Science. Join 11 million other learners and get started learning Python for data science today!
Good news! You can save 25% off your Datacamp annual subscription with the code LEARNPYTHON23ALE25 - Click here to redeem your discount
Více argumentů funkce
Každá funkce v Pythonu přijímá předem definovaný počet argumentů, pokud je deklarována běžným způsobem, jako je tento:
Je možné deklarovat funkce, které přijímají proměnlivý počet argumentů, pomocí následující syntaxe:
Proměnná "therest" je seznam proměnných, která přijímá všechny argumenty, které byly předány funkci "foo" po prvních 3 argumentech. Takže volání foo(1, 2, 3, 4, 5)
vytiskne:
Je také možné předat argumenty funkce podle klíčového slova, takže pořadí argumentů není důležité, pomocí následující syntaxe. Následující kód dá následující výsledek:
The sum is: 6
Result: 1
Funkce "bar" přijímá 3 argumenty. Pokud je přijat další argument "action", a ten zadává součet čísel, pak je součet vytištěn. Alternativně funkce také ví, že musí vrátit první argument, pokud je hodnota parametru "number", předaného funkci, rovna "first".
Exercise
Vyplňte funkce foo
a bar
, aby mohly přijímat proměnlivý počet argumentů (3 nebo více)
Funkce foo
musí vrátit počet přijatých dodatečných argumentů.
Bar
musí vrátit True
, pokud argument s klíčovým slovem magicnumber
má hodnotu 7, a False
v opačném případě.
# edit the functions prototype and implementation
def foo(a, b, c):
pass
def bar(a, b, c):
pass
# test code
if foo(1, 2, 3, 4) == 1:
print("Good.")
if foo(1, 2, 3, 4, 5) == 2:
print("Better.")
if bar(1, 2, 3, magicnumber=6) == False:
print("Great.")
if bar(1, 2, 3, magicnumber=7) == True:
print("Awesome!")
# edit the functions prototype and implementation
def foo(a, b, c, *args):
return len(args)
def bar(a, b, c, **kwargs):
return kwargs["magicnumber"] == 7
# test code
if foo(1, 2, 3, 4) == 1:
print("Good.")
if foo(1, 2, 3, 4, 5) == 2:
print("Better.")
if bar(1, 2, 3, magicnumber=6) == False:
print("Great.")
if bar(1, 2, 3, magicnumber=7) == True:
print("Awesome!")
test_output_contains("Good.")
test_output_contains("Better.")
test_output_contains("Great.")
test_output_contains("Awesome!")
success_msg("Great work!")
This site is generously supported by DataCamp. DataCamp offers online interactive Python Tutorials for Data Science. Join over a million other learners and get started learning Python for data science today!