为了账号安全,请及时绑定邮箱和手机立即绑定

函数体返回的结果为true,则在filter中print出,否则过滤掉

import math

def is_sqr(x):
    f=int(math.sqrt(x))       #对列表中的每个数字开平方,结果为float型,且转换为int后再f*f 后会不等于x,就是不符合条件的False
    return f*f==x       #返回True的条件,被filter调用打印出
    
print filter(is_sqr, range(1, 101))   filter函数调用is_sqr函数过滤出符合条件的x打印出来

正在回答

1 回答

不对, f=int(math.sqrt(x))  是一个赋值语句,把int(math.sqrt(x)) 的值赋给f,不是一个逻辑判断语句,逻辑判断语句应该用“==”才对

1 回复 有任何疑惑可以回复我~
#1

unixcoder 提问者

感谢回复!我第一个注释里只是把这个赋值语句的int和float的类型转换和bool判断的情况描述了下,可能描述的不清楚,这句重点应该是float型转换为int型的原因是为下面的return True类型做准备,就是说int(float)在这里是个因素
2015-05-11 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
python进阶
  • 参与学习       255665    人
  • 解答问题       2949    个

学习函数式、模块和面向对象编程,掌握Python高级程序设计

进入课程

函数体返回的结果为true,则在filter中print出,否则过滤掉

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信