从前200个自然数中筛选出所有奇数和平方根是整数的数字。要求通过Python 内置函数filter函数来实现该筛选功能。
时间: 2023-07-15 10:15:07 浏览: 124
可以通过以下代码实现:
```python
import math
def filter_func(num):
if num % 2 == 0: # 判断是否为偶数
return False
if math.sqrt(num) % 1 != 0: # 判断平方根是否为整数
return False
return True
nums = range(1, 201)
result = filter(filter_func, nums)
print(list(result))
```
输出为:
```
[1, 9, 25, 49, 81, 121, 169]
```
其中,`filter_func`函数作为`filter`函数的参数,用来筛选符合条件的数字。在该函数中,首先判断数字是否为偶数,如果是偶数则返回`False`,否则判断平方根是否为整数,如果不是则也返回`False`,最终返回`True`表示该数字符合条件。通过`filter`函数对`nums`列表进行筛选,返回一个迭代器,最后将其转换为列表并输出即可。
阅读全文