设为首页收藏本站

Crossin的编程教室

 找回密码
 立即加入
查看: 9788|回复: 3
打印 上一主题 下一主题

关于生成list的条件判断错误

[复制链接]

1

主题

0

好友

15

积分

新手上路

Rank: 1

跳转到指定楼层
楼主
发表于 2018-6-3 12:18:15 |只看该作者 |正序浏览
最近学习到关于生成新的list的条件判断
abs()函数在条件判断中会提示如截图所示的属性错误,但是在编译器中直接输入abs(-29)是可以运行出结果的,为什么在条件判断中运用就会提示属性错误?

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

报错信息

报错信息

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

源代码

源代码

回复

使用道具 举报

174

主题

45

好友

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

地板
发表于 2018-6-3 19:39: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的编程教室 ====#
微信ID:crossincode
网站:http://crossincode.com
回复

使用道具 举报

1

主题

0

好友

15

积分

新手上路

Rank: 1

板凳
发表于 2018-6-3 12:56:03 |只看该作者
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)
回复

使用道具 举报

174

主题

45

好友

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

沙发
发表于 2018-6-3 12:44:46 |只看该作者
abs(x) 不是 x.abs()
#==== Crossin的编程教室 ====#
微信ID:crossincode
网站:http://crossincode.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即加入

QQ|手机版|Archiver|Crossin的编程教室 ( 苏ICP备15063769号  

GMT+8, 2024-11-23 06:25 , Processed in 0.021972 second(s), 24 queries .

Powered by Discuz! X2.5

© 2001-2012 Comsenz Inc.

回顶部