高级特性
# 高级特性
# 切片(Slice)
L = []
n = 5
m = 20
s = 2
for x in range(97,123):
L.append(chr(x))
print(L[n:m:s]) # 索引n到索引m,不包含m(n,m可以为负),s为步长.(-1为倒数第一个元素)
chr(97) #asc码转字符
ord('a') #字符转asc码
# 迭代
# 判断对象是否可以迭代
from collections import Iterable
flag = isinstance(18, Iterable)
print(flag)
# 遍历list/tuple
for x in L:
print(x)
# 遍历dictionary
D = {'a':'1', 'b':'2', 'c':'3'}
for value in D.values(): #遍历value
print(value)
for key in D.keys(): #遍历key
print(key)
for (key,value) in D.items(): #遍历key,value
print(key,value)
# 列表生成式
# 常规循环
l1 = []
for x in range(1, 11):
l1.append(x)
# 列表生成式
l2 = [x for x in range(1,11)]
l3 = [x*2+1 for x in range(1, 11) if(x%2==0)] #加判断和运算
l4 = [m + n for m in 'ABC' for n in 'XYZ'] #双层循环全排
l5 = [k + '=' + v for k, v in D.items()]
print(l1)
print(l2)
print(l3)
print(l4)
print(l5)
# 生成器(generator)
# 生成式[]改为()创建一个生成器
g1 = (x for x in range(1,11))
for n in g1:
print(n)
# 函数yield 一个值创建一个生成器
def sum(n):
swap = 0;
for x in range(n+1):
swap += x*x
yield swap
for x in sum(5):
print(x)