要求:生成一个列表,列表元素分别为[1**1 2**2 3**3...9**9]
使用列表生成式可以使脚本简化明了。
脚本如下所示:
import math
方法一:
li = [ ]
for i in range(1, 10):
li.append(i ** i)
print(li)
print([i ** i for i in range(1, 10)])#打印1~10的平方(列表生成式)可以简化方法一
print([i ** i for i in range(1, 10) if i % 2 == 0])#打印1~10中偶数的平方
# 找出1~10之间的所有偶数
print([i for i in range(1, 11) if i % 2 == 0])
# S1='ABC' S2='123' A1 A2 A3..
print([i + j for i in 'ABC' for j in '123'])
练习:
1.找出1~10之间的所有偶数.并且返回一个列表(包含以这个偶数为半径的园的面积)
方法一:
# print(math.pi)
# for r in range(2, 11, 2):
# square = math.pi * r * r
# li.append(square)
# print(li)
效果如图:
方法二:列表生成式
print([math.pi * r * r for r in range(2, 11, 2)])
方法三:调用函数
def square(r):
res = math.pi * r * r
return res
print([square(i) for i in range(2,11,2)])
练习二:找出1~100之间的所有素数(函数+列表生成式)
脚本如图:
def isprime(num):
for i in range(2,num):
if num % i == 0:
return False
else:
return True
print([i for i in range(2,101) if isprime(i)])