首页Python【Python内置函数】c...

【Python内置函数】complex()函数

Python 提供了许多内置函数,这些函数是Python语言的一部分,可以直接在Python程序中使用而无需导入任何模块。

本系列将会陆续整理分享一些的Python内置函数。

文章配套代码获取有以下两种途径:
  • 通过百度网盘获取:
链接:https://pan.baidu.com/s/11x9_wCZ3yiYOe5nVcRk2CQ?pwd=mnsj 提取码:mnsj
  • 前往GitHub获取
https://github.com/returu/Python_built-in_functions





01
简介

complex() 函数用于创建一个复数。复数是由实部和虚部组成的数,通常表示为a + bj,其中a是实部,b是虚部,而 j 是虚数单位。

complex() 函数的基本语法如下:

complex(number=0, /)complex(string, /)complex(real=0imag=0)
参数说明:
  • number:数字;
  • string:字符串,必须表示一个有效的复数形式
  • real:复数的实部,默认值为 0;
  • imag:复数的虚部,默认值为 0。

返回值:

complex() 函数返回一个复数对象。

02
使用

下面是一些使用 complex() 函数的示例:

  • 示例 1:字符串转换

当传递一个字符串时,该字符串必须必须符合特定规则:
  • 有效的字符串格式包括:仅实部(如'12')、仅虚部(如'4j''5J')、以及实部和虚部(如'-1+2j''3-4J')。
  • 字符串可以包含前导和尾随空白字符,也可以被圆括号包围,但这些都会被忽略。
  • 虚部前的符号(+ 或 -)是必需的。
  • 不允许在符号、‘j’ 后缀和数字之间有空白,否则会引发 ValueError
  • Python3.6开始,数字可以使用下划线进行分组(如'1_000_000')。
# 有效的字符串
print(complex("3.14"))  # 输出:(3.14+0j)
print(complex("2j"))    # 输出:2j
print(complex("3+4j"))  # 输出:(3+4j)
print(complex("  (3-4j) "))  # 输出:(3-4j)


  • 示例 2:数字转换

  • 如果输入是复数,则直接返回。

  • 如果输入是实数,则成为复数的实部,虚部为 0。

# 数字
print(complex(3.14))  # 输出:(3.14+0j)
print(complex(2j))    # 输出:2j


  • 示例 3:两个参数

  • 当传递两个参数时,可以是任何数值类型(包括复数)。

  • 如果两个参数都是实数,则返回一个具有相应实部和零虚部的复数。
  • 如果两个参数都是复数,则返回的复数的实部是第一个复数的实部减去第二个复数的虚部,虚部是第一个复数的虚部加上第二个复数的实部。
  • 如果一个参数是实数,另一个参数是复数,则只使用该参数的实部进行计算。
# 两个参数都是实数
print(complex(3, 4))  # 输出:(3+4j)

# 两个参数都是复数
# 解释:实部 = 1 - 4 = -3,虚部 = 2 + 3 = 5
print(complex(1+2j, 3+4j))  # 输出:(-3+5j)

# 一个参数是实数
# 解释:实部 = 3 - 2 = 1
print(complex(3, 2j))  # 输出:(1+0j)

  • 示例 4:无参数

如果不传递任何参数给 complex(),则返回 0j

print(complex())  # 输出:0j


  • 示例 5:从对象转换

  • 对于一般的Python对象xcomplex(x)会尝试调用x.__complex__()

  • 如果__complex__()未定义,则回退到x.__float__()

  • 如果__float__()未定义,则回退到x.__index__()Python 3.8引入)。

class MyClass:
    def __complex__(self):
        return complex(1, 2)

obj = MyClass()
print(complex(obj))  # 输出:(1+2j)

本篇文章来源于微信公众号: 码农设计师

RELATED ARTICLES

欢迎留下您的宝贵建议

Please enter your comment!
Please enter your name here

- Advertisment -

Most Popular

Recent Comments