Parametrien yhdistäminen Pythonissa

Samaan funktioon voidaan samanaikaisesti välittää sekä nimettyjä että paikallisia parametreja. Tämä tehdään käyttämällä symbolia *, joka ilmaisee, että sen oikealla puolella määritellyt parametrit tulee käsitellä nimetyinä, jos niiden oletusarvoja ei tarvitse käyttää.

Luodaan funktio, joka tulostaa kaikki parametrit konsoliin. Muuttuja data edustaa tavallista paikallista parametria. Sen jälkeen *-symbolin jälkeen määritellään kaksi muuttujaa start ja end oletusarvoilla. Kuitenkin funktiota kutsuttaessa teemme näistä muuttujista nimetyt:

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

Koodin suorituksen tulos:

python1 2 3

Jos poistamme muuttujan start oletusarvon ja samalla emme määritä sitä nimetyksi parametriksi, tulee virhe. Tämä johtuu siitä, että symboli * on jo määritellyt start nimetyksi muuttujaksi:

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

Mikä on seuraavan koodin suorituksen tulos:

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

Mikä on seuraavan koodin suorituksen tulos:

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

Mikä on seuraavan koodin suorituksen tulos:

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