固定区间,求区间内的素数:(没有用暴力遍历法)
# - Tutorial 4
# - 2020-2-3
# - Johan
# - 题目:
# 1、求100以内的所有素数
"""
包含的语法:
1、函数
2、lambda函数
3、filter函数
4、列表和list()
"""
import math
def func_get_prime(n):
return list(filter(
lambda x: not [x % i for i in range(2, int(math.sqrt(x)) + 1) if x % i == 0],
range(2, n + 1))
)
print(func_get_prime(100))
运行结果:
三个关键点:
1、def fun():是Python自定义函数的格式,换行后空4格开始是函数体,和其他语言一样可以用return返回各种值
2、lambda函数叫匿名函数或lambda表达式,本质上据说是表达式,能简化一些简单功能函数的格式,还能自定义表达式名以引用,比如以下例子,可以看到lambda表达式的一些用法:
add = lambda a, b : a + b
minus = lambda a, b : a - b
ADD = add
print(add(1, 2))
print(minus(1, 2))
print(ADD(2, 2))
运行结果:
3、filter函数用于根据条件过滤列表内容,和lambda表达式经常配合使用:
# filter(func, iterable)
# 判断x是否是11的倍数
def func(x):
return x % 11 == 0
array = list(range(1, 100))
print(list(filter(lambda x : x % 17 == 0, array))) # lambda用于判断17的倍数
print(list(filter(func, array)))
运行结果: