Python 中的 ** 运算符是什么?


在本文中,我们将学习 Python 中的 ** 运算符。

双星号 (**) 是 Python 中的一种算术运算符(例如 +、-、*、**、/、//、%)。它也被称为幂运算符。

算术运算符的顺序/优先级是什么?

算术运算符和数学运算符的规则相同,如下所示:首先执行指数运算,然后是乘法和除法,最后是加法和减法。

以下是按递减顺序排列的算术运算符的优先级:

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

双星号 (**) 运算符的用途

将 ** 用作幂运算符

它也用于对数值数据执行幂运算。

示例

下面的程序演示了在表达式中使用 ** 运算符作为幂运算符:

# using the double asterisk operator as an exponential operator
x = 2
y = 4

# getting exponential value of x raised to the power y
result_1 = x**y

# printing the value of x raised to the power y
print("result_1: ", result_1)

# getting the resultant value according to the
# Precedence of Arithmetic Operators
result_2 = 4 * (3 ** 2) + 6 * (2 ** 2 - 5)

print("result_2: ", result_2)

输出

执行上述程序后,将生成以下输出:

result_1:  16
result_2:  30

在函数和方法中使用 ** 作为参数

双星号也称为函数定义中的 **kwargs。它用于将可变长度的关键字字典传递给函数。

我们可以使用一个简单的函数打印 **kwargs 参数,如下例所示:

示例

下面的程序演示了在用户自定义函数中使用 kwargs:

# creating a function that prints the dictionary of names.
def newfunction(**kwargs):
   # traversing through the key-value pairs if the dictionary
      for key, value in kwargs.items():
   # formatting the key, values of a dictionary
   # using format() and printing it
      print("My favorite {} is {}".format(key, value))
# calling the function by passing the any number of arguments
newfunction(language_1="Python", language_2="Java", language_3="C++")

输出

执行上述程序后,将生成以下输出:

My favorite language_1 is Python
My favorite language_2 is Java
My favorite language_3 is C++

借助 **kwargs,我们可以轻松地在代码中使用关键字参数。最好的部分是,当我们使用 **kwargs 作为参数时,我们可以向函数传递大量参数。当参数列表中的输入数量预期相对较少时,创建接受 **kwargs 的函数是最佳选择。

结论

本文介绍了 Python 的 ** 运算符。我们学习了 Python 编译器中运算符的优先级,以及如何使用 ** 运算符,它充当 kwargs 的作用,可以接受函数的任意数量的参数,也可用于计算幂。

更新于:2023年1月16日

2K+ 次浏览

启动您的职业生涯

完成课程获得认证

开始学习
广告