Parametrų kombinavimas Python kalboje

Į tą pačią funkciją vienu metu galima perduoti ir pavadintus, ir pozicinius parametrus. Tai daroma naudojant simbolį *, kuris nurodo, kad parametrai, nurodyti jo dešinėje, turi būti laikomi pavadintais, jei jų numatytosios reikšmės neturi būti naudojamos.

Sukurkime funkciją, kuri atspausdins visus parametrus konsolėje. Kintamasis data žymės įprastą pozicinį parametrą. Toliau po simbolio * nurodomi du kintamieji start ir end su numatytosiomis reikšmėmis. Tačiau iškviečiant funkciją padarykime šiuos kintamuosius pavadintais:

pythondef func(data, *, start=0, end=100):
  print(data, start, end)
  
func(1, start=2, end=3)

Kodo vykdymo rezultatas:

python1 2 3

Jei pašalinsime kintamojo start numatytąją reikšmę ir tuo pačiu metu jį nepadarysime pavadintu parametru, bus rodoma klaida. Taip atsitinka todėl, kad simbolis * jau apibrėžė start kaip pavadintą kintamąjį:

pythondef func(data, *, start, end=100):
  print(data, start, end)
  
func(1, 2, end=3) # rodys klaidą
Задание 1

Koks bus šio kodo vykdymo rezultatas:

pythondef func(num1, num2, *, num3):
  return (num1 + num2) * num3
  
print(func(2, 4, num3=3))
Задание 2

Koks bus šio kodo vykdymo rezultatas:

pythondef func(num1, *, num2, num3):
  return (num1 - num2) / num3
  
print(func(12, 4, num3=5))
Задание 3

Koks bus šio kodo vykdymo rezultatas:

pythondef func(*, name='user1', age='18'):
  return 'Vartotojo vardas yra ' + name + ', amžius yra ' + age
  
print(func(name='john'))