Crossin的编程教室

标题: 关于生成list的条件判断错误 [打印本页]

作者: j_teacher    时间: 2018-6-3 12:18
标题: 关于生成list的条件判断错误
最近学习到关于生成新的list的条件判断
abs()函数在条件判断中会提示如截图所示的属性错误,但是在编译器中直接输入abs(-29)是可以运行出结果的,为什么在条件判断中运用就会提示属性错误?

2.PNG (8.34 KB, 下载次数: 453)

报错信息

报错信息

1.PNG (2.87 KB, 下载次数: 451)

源代码

源代码


作者: crossin先生    时间: 2018-6-3 12:44
abs(x) 不是 x.abs()
作者: j_teacher    时间: 2018-6-3 12:56
crossin先生 发表于 2018-6-3 12:44
abs(x) 不是 x.abs()

L=['Sean','ABC',-32.2,'IBM',-29]
list=[x.lower() for x in L if isinstance(x,str)==True]
print(list)

感谢回复!
如上代码中x.lower()可以这么调用,为什么x.abs()不能这么调用呢?
如果我想输出list中int型变量的绝对值,一下代码应该如何修改?

L=['Sean','ABC',-32.2,'IBM',-29]
list=[x.abs() for x in L if isinstance(x,int)==True]
print(list)
作者: crossin先生    时间: 2018-6-3 19:39
j_teacher 发表于 2018-6-3 12:56
L=['Sean','ABC',-32.2,'IBM',-29]
list=[x.lower() for x in L if isinstance(x,str)==True]
print(list ...

就是改成 abs(x) 啊

看到后面的函数和面向对象你就明白差别了




欢迎光临 Crossin的编程教室 (https://bbs.crossincode.com/) Powered by Discuz! X2.5