# What does the Double Star operator mean in Python?

• Difficulty Level : Easy
• Last Updated : 26 Nov, 2020

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```

### Conclusion:

Using **kwargs provides us with the flexibility to use keyword arguments in our program. When we use **kwargs as a parameter, we don’t need to know how many arguments we would eventually like to pass to a function. Creating functions that accept **kwargs are best used in situations where you expect that the number of inputs within the argument list will remain relatively small.

My Personal Notes arrow_drop_up
Recommended Articles
Page :