How do ** (double star/asterisk) differ from * (star/asterisk) parameters?

In Python, while learning functions I have found we can pass variable numbers of parameters to function by using ** (double asterisk) and * (single asterisk). I have found example codes of functions containing ** (double asterisk) and * (single asterisk), but I’m unable to understand the difference between them. Here are the codes:

Can someone explain the difference between ** (double asterisk) and * (single asterisk) to me? What does ** (double star/asterisk) and * (star/asterisk) do for parameters?