解决complex转int的问题
代码
错误
int(999j)
Traceback (most recent call last):
File “<stdin>”, line 1, in <module>
int(999j)
TypeError: can’t convert complex to int
正确
def complextoint(cp):
cp = list(str(cp)) #从complex转str再转list
cp.remove(j) #去掉尾部的j
j = "" #创造空字符串变量j
for i in cp: #遍历列表
j += i
return int(j) #最后由str转int,并将此作为返回值。
有兴趣可以试试看下面👇。
调用
complextoint(1234567890j)
输出:
1234567890
惊讶吗?
顺序
程序把cp这个局部变量从complex转str,再转成list,然后去掉cp尾部的j(complex以j为后缀),接着创造一个空字符串变量j,接下来遍历列表,将这个空字符j增加列表cp里面的所有值,最后将j由str转int,并将此作为返回值。
拓展
int(abs(9j))
输出:
9
还可以直接用abs函数实现。
小结
今天我们知道了如何将complex转int,并知道了它的顺序是怎样的,还通过拓展知道了可以直接用abs函数实现。