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

编译问题 为什么会出现这个结果

import math
def is_sqr(x):
   s=int(math.sqrt(x) )
   return s*s==x
print (filter(is_sqr,range(1,101)))

D:\Python34\python.exe D:/代码/practice.py
<filter object at 0x0000000002899780>

结果为什么是这个 我是想输出1-100之间能开平方的数

正在回答

2 回答

应该是3.*的特性导致的;换成2.6、2.7就ok了

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

慕慕3083393 提问者

恩恩 确实是 我的是3.4.3的 不过我想知道3.4.3的话 代码应该怎样修改
2016-02-27 回复 有任何疑惑可以回复我~
#2

weibo_左脚跳跳右脚蹦蹦_0 回复 慕慕3083393 提问者

这个 还没研究,也是py的新手; 我是先学2.7了;3.*后续再看。
2016-02-27 回复 有任何疑惑可以回复我~
#3

某花花 回复 慕慕3083393 提问者

print(list(filter(is_not_empty, ['test', None, '', 'str', ' ', 'END'])))
2016-06-22 回复 有任何疑惑可以回复我~

执行py文件的时候出错了吧?

代码是对的,没问题

我运行出的结果是这个

http://img1.sycdn.imooc.com//56d14e190001a56703110032.jpg

0 回复 有任何疑惑可以回复我~

举报

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

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

进入课程

编译问题 为什么会出现这个结果

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