Open In App

# What does the Double Star operator mean in Python?

Double Star or (**) is one of the Arithmetic Operator (Like +, -, *, **, /, //, %) in Python Language. It is also known as Power Operator.

### What is the Precedence of Arithmetic Operators?

Arithmetic operators follow the same precedence rules as in mathematics, and they are: exponential is performed first, multiplication and division are performed next ,followed by addition and subtraction.

Arithmetic operators priorities order in Decreasing Mode:

`()   >>   **   >>   *  >>  /  >>  //  >>  %   >>   +   >>   -`

### Uses of Double Star operator:

As Exponentiation Operator

For numeric data types, double-asterisk (**) is defined as an Exponentiation Operator:

Example:

## Python3

 `# Python code to Demonstrate the Exponential Operactor` `a ``=` `2``b ``=` `5` `# using double asterisk operator``c ``=` `a``*``*``b``print``(c)`  `# using double asterisk operator``z ``=` `2` `*` `(``4` `*``*` `2``) ``+` `3` `*` `(``4` `*``*` `2` `-` `10``)``print``(z)`

Output:

```32
50```

As arguments in functions and methods

In a function definition, the double asterisk is also known  **kwargs. They used to pass a keyword, variable-length argument dictionary to a function. The two asterisks (**) are the important element here, as the word kwargs is conventionally used, though not enforced by the language.

First, let’s simply print out the **kwargs arguments that we pass to a function. We’ll create a short function to do this:

## Python3

 `# Python Program to create a function to get a dictionary of names.``# Here, we will start with a dictionary of three names`  `def` `function(``*``*``kwargs):``    ``for` `key, value ``in` `kwargs.items():``        ``print``(``"The value of {} is {}"``.``format``(key, value))`  `function(name_1``=``"Shrey"``, name_2``=``"Rohan"``, name_3``=``"Ayush"``)`

Output:

```The value of name_1 is Shrey
The value of name_2 is Rohan
The value of name_3 is Ayush```

Now here is another example where we will pass additional arguments to the function to show that **kwargs will accept any number of arguments:

## Python3

 `# Python Program to create a function to get a dictionary of as many names``# you want to include in your Dictionary`  `def` `function(``*``*``kwargs):``    ``for` `key, value ``in` `kwargs.items():``        ``print``(``"The value of {} is {}"``.``format``(key, value))`  `function(``    ``name_1``=``"Ayush"``,``    ``name_2``=``"Aman"``,``    ``name_3``=``"Harman"``,``    ``name_4``=``"Babber"``,``    ``name_5``=``"Striver"``,``)`

Output:

```The value of name_1 is Ayush
The value of name_2 is Aman
The value of name_3 is Harman
The value of name_4 is Babber
The value of name_5 is Striver```

The time complexity of the given Python program is O(n), where n is the number of key-value pairs in the input dictionary.

The auxiliary space complexity of the program is also O(n), as the program stores the input dictionary in memory while iterating over it.