三个循环,三个关键字
先来看看什么是可迭代对象:
- 所有序列类型:list、tuple、str
- 非序列类型
- 自己定义的带有 _ iter _对象的
1.for循环:
for i in iterator: 一定要是一个可迭代对象。
for i in [1,2,3,4]:
print (i)
2.if
if 条件语句:
执行语句
elif 条件语句: #这个可以有多个
执行语句
else:
执行语句
3、while
while 判断语句:
执行语句
4、break
跳出循环
for i in range(11):
if i == 5:
break #终止循环
print(i)
5、continue
for i in range(11):
if i == 5:
continue #跳过本次循环 continue后面的代码不执行,进入下次循环
print(i)
6、pass
用于我们在写函数之初调试用,防止在函数功能我们没有想全之前程序报错
num = int(num) #把str类型的数字转为int(整数)
if num > 0: #判断为True则执行缩进部分的代码 if statement
print('正数')
num +=num
print(num)
elif num < 0: #else if会报错
pass #占位
elif num == 0:
pass
7、序列解包
下面就是序列解包或者递归解包的操作——将多个值的序解开,然后放到变量的序列中。
>>> x,y,z = 1,2,3
>>> x
1
>>> y
2
>>> z
3
>>> values = 1,2,3
>>> x ,y,z = values
>>> x
1
>>> values = [4,5,6]
>>> x,y,z = values
>>> x
4
当函数或者方法返回元组(或者其他序列或者可迭代对象)时,这个特性尤其有用。假设需要获取(和删除)字典中任意的键值对,可以用popitem,这个方法将键值作为元组返回,那么这个元组就可以直接赋值到两个变量中:
>>> person = {'name':'Marry','age':24,'weight':100}
>>> key,value = person.popitem()
>>> key
'weight'
>>> value
100
>>> person
{'name': 'Marry', 'age': 24}
所解包的序列中元素必须和放置在赋值符号=左边的变量数量完全一致,否则Python会在赋值时产生异常:
但是Python3中可以用*表示这个变量将接收剩下的所有元素:
>>> a,b,*rest=[1,2,3,4]
>>> rest
[3, 4]
在for循环中使用序列解包遍历字典:
>>> person = {'name':'Marry','age':24,'weight':100}
>>> for key, value in person.items():
print (key,value)
name Marry
age 24
weight 100
8、is
只需要注意is和==的区别:
is:判定同一性,也就是判断变量是否指向同一个对象
==:判定相等性,也就是判断变量指向的对象值是否相同
>>> x=y=[1,2,3]
>>> z=[1,2,3]
>>> x==y
True
>>> x==z
True
>>> x is y #x,y指向同一个对象
True
>>> x is z #x,z指向不同对象,但是两者值相同
False
9、列表推导式
非常好用的一个东西:利用其它列表创建新列表。
>>> [x*x for x in range(5)]
[0, 1, 4, 9, 16]
>>> [x*x for x in range(10) if x%3==0] #也可以加一些限定条件
[0, 9, 36, 81]
>>> [(x,y) for x in range(2) for y in range(2)]
[(0, 0), (0, 1), (1, 0), (1, 1)]