Parameetrite kombineerimine Pythonis

Samasse funktsiooni saab üheaegselt edastada nii nimetatud kui positsioonilisi parameetreid. See tehakse sümboli * abil, mis tähistab, et sellest paremal pool määratud parameetreid tuleks lugeda nimetatud parameetriteks, kui nende vaikeväärtusi pole vaja kasutada.

Loome funktsiooni, mis väljastab kõik parameetrid konsooli. Muutuja data tähistab tavalist positsioonilist parameetrit. Seejärel pärast sümbolit * määratakse kaks muutujat start ja end vaikeväärtustega. Kuid funktsiooni kutsumisel teeme need muutujad nimetatuks:

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

Koodi täitmise tulemus:

python1 2 3

Kui eemaldada muutuja start vaikeväärtus ja samal ajal jätta see määramata nimetatud parameetrina, kuvatakse viga. See juhtub seetõttu, et sümbol * on juba määranud start nimetatud muutujaks:

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

Milline on järgmise koodi täitmise tulemus:

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

Milline on järgmise koodi täitmise tulemus:

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

Milline on järgmise koodi täitmise tulemus:

pythondef func(*, name='user1', age='18'):
  return 'Username is ' + name + ' age is ' + age
  
print(func(name='john'))