这是本人在学习中的一些记录,只是针对自己的情况做记录,起到回顾,提醒的作用。
目录
1. for循环
1.1 Python中的for不同于C语言中的形式
C语言中的for循环:
for(i=0;i<10;i++){
print(i)
}
在Python中for是这样的:
s="good"
for i in s:
print(i,end=' ')
这就体现了Python是面向对象的。对for的使用定义如下:
for 迭代变量 in 可迭代对象:
代码块
如果我们要实现上述C语言的代码,就需要使用range()函数——
for i in range(0,10):
print(i,end = ' ')
同样在使用对象时,也可以利用它的下标来操作——
s="good"
for i in range(len(s)):
print(s[i],end=' ')
1.2 for循环中使用字典型变量
dic = {'a': 1, 'b': 2, 'c': 3, 'd': 4}
for key, value in dic.items():
print(key, value, sep=':', end=' ') # a:1 b:2 c:3 d:4
当然也可以分开使用,用字典的键值或者内容
dic = {'a': 1, 'b': 2, 'c': 3, 'd': 4}
for key in dic.keys():
print(key, end=' ') # a b c d
for value in dic.values():
print(value, end=' ') # 1 2 3 4
1.3for循环中使用enumerate()函数
enumerate(sequence, [start=0])
sequence – 一个序列、迭代器或其他支持迭代对象
start – 下标起始位置
返回 enumerate(枚举) 对象,该对象包含元素内容以及相应的下标
在使用enumerate()函数时,可以自定义元素内容的起始位置,这便是使用枚举函数的一个优势
s = ['good','very good','lucky']
for i,a in enumerate(s,1):
print(i,a,sep=':')
2.循环后可以跟一个 else
for——else
或者
while——else
我们都需要把它们看作一个整体,在使用break跳出的时候,else后面的内容是不执行的。
for——else:
s="good"
for i in range(len(s)):
print(s[i],end=' ')
else:
print('\n')
print("coming")
while——else:
s="good"
i=0
while i<len(s):
print(s[i],end=' ')
i+=1
else:
print('\n')
print("coming")
3.推导式
3.1列表推导式
[ expr for value in collection [if condition] ]
在区间[1500,2700]找出能被7和5同时整除的数:
x= [x for x in range(1500,2000) if ( x % 7 == 0) & ( x % 5 == 0 ) ]#使用的是中括号
print(x)
#[1505, 1540, 1575, 1610, 1645, 1680, 1715, 1750, 1785, 1820, 1855, 1890, 1925, 1960, 1995]
构建坐标时的便捷方法
x = [[i, j] for i in range(0, 3) for j in range(0, 3)]
print(x)
# [[0, 0], [0, 1], [0, 2], [1, 0], [1, 1], [1, 2], [2, 0], [2, 1], [2, 2]]
# [1,0]中的1的下标,x[3][0]。表示第4组的第1个元素
3.2 元组推导式
( expr for value in collection [if condition] )
注意代码中的tuple,以及使用的是小括号
a = (x for x in range(10))
print(a)
# <generator object <genexpr> at 0x0000025BE511CC48>
print(tuple(a)) #注意这里的 tuple
# (0, 1, 2, 3, 4, 5, 6, 7, 8, 9)
在元祖中可以使用迭代器中的next()来推出元素内容
x= (x for x in range(1500,2000) if ( x % 7 == 0) & ( x % 5 == 0 ) )
#print(tuple(x))
print(next(x))
print(next(x))
for e in x:
print(e,end=' ')
#1505
#1540
#1575 1610 1645 1680 1715 1750 1785 1820 1855 1890 1925 1960 1995
3.3 字典推导式
{ key_expr: value_expr for value in collection [if condition] }
注意使用的是大括号
b = {i: i % 2 == 0 for i in range(10) if i % 3 == 0}
print(b)
# {0: True, 3: False, 6: True, 9: False}
3.4 集合推导式
{ expr for value in collection [if condition] }
注意使用的是大括号
c = {i for i in [1, 2, 3, 3, 3, 4, 4, 5, 6, 6]}
print(c)
# {1, 2, 3, 4, 5, 6}
参考资料:
1.Datawhale的学习资料——Python编程语言