Python3中x=5+j为何被判定为int类型而非复数类型?
Python中
x=5+j被识别为int类型的原因 Python的复数语法要求虚数单位必须作为数值的后缀直接书写,不存在默认的全局变量j代表虚数单位,你遇到的现象是因为提前给变量j赋值了整数导致的。
核心规则说明
- 正确的复数虚部写法是数值加后缀j,如果虚部系数为1也不能省略,必须写为
1j - 单独出现的
j只会被识别为普通变量,和其他变量名没有区别 - 若你没有提前定义过
j,直接运行x=5+j会触发NameError,不会得到int类型结果,因此你运行代码前必然已经给j赋过整数值
验证示例
你可以执行以下代码确认语法规则:
# 正确定义复数 x_correct = 5 + 1j print(type(x_correct)) # 输出:<class 'complex'> # 提前给j赋值为整数的场景 j = 3 x_test = 5 + j print(type(x_test)) # 输出:<class 'int'> print(x_test) # 输出:8
内容的提问来源于stack exchange,提问作者LC Ranga
相关产品推荐
相关产品推荐

