-
Notifications
You must be signed in to change notification settings - Fork 17
Expand file tree
/
Copy pathBasic09_a.py
More file actions
34 lines (30 loc) · 1.35 KB
/
Basic09_a.py
File metadata and controls
34 lines (30 loc) · 1.35 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
'''
功能:100以内的素数和
重点:自定义函数的使用、逻辑常量True和False、列表生成式
作者:薛景
最后修改于:2019/05/27
'''
# 函数就是把一段代码包含起来,然后起个名字,方便后面的程序反复使用的编程机制
def isPrime(n): # isPrime是函数名,后面的n是函数的形式参数
for i in range(2,n):
if n%i == 0:
return False
else:
return True
# 函数的使用必须遵循先定义后使用的原则,所以函数的定义必须写在主程序前面
# 方案一,使用循环语句,逐个判定,若是素数就进行累加
S = 0
for i in range(2,101):
if isPrime(i):
S += i
print("方案一:100以内所有素数的和为%d" % S)
# 方案二,构造100以内的素数的列表,然后直接使用sum函数进行求和
nums = [i for i in range(2,101) if isPrime(i)]
print("方案二:100以内所有素数的和为%d" % sum(nums))
'''
对方案二的补充说明:这种用于生成一个数列的式子,叫做列表生成式,举几个简单的例子:
[i for i in range(5)] # 结果为:[0, 1, 2, 3, 4]
[i**2 for i in range(5)] # 结果为:[0, 1, 4, 9, 16]
[i**2 for i in range(5) if i%2==0] # 结果为:[0, 4, 16]
对于生成拥有通项公式的数列,用起来实在是太爽了^_^
'''