1.if语句(思想与大多数编程语言类似,形式有区别)
(1)if语句的完整形式就是:
if <条件判断1>:
<执行1>
elif <条件判断2>:
<执行2>
else:
<执行3>
判定条件实际上最终是得到一个布尔值,即True 或False
(2)if语句判定条件可分为4种:
布尔表达式
比较表达式
逻辑运算
is 操作符就是用来进行身份对比的:
例如:>>>li= [1, 2, 3, 4]
>>> 2 in li
True
python中的三元运算符: >>>x=4,y=5
>>>smaller= x if x < y else y
2.for语句(思想与大多数编程语言类似,形式有区别,写完后加一个空行)
Python的循环有两种,一种是for...in循环,依次把list或tuple中的每个元素迭代出来,for.....in结构可以遍历序列或类序列类型:字符串、列表、元组、字典、文件,例如:
比如我们想计算1-10的整数之和,可以用一个sum变量做累加:
sum = 0
forx in [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]:
sum = sum + x
print sum
也可以使用range()函数,生成一个整数序列,再通过list()函数可以转换为list。
range(start,end, step =1)
python中for也支持嵌套使用3.while语句(使用思想与大多数编程语言类似,只是形式不同)
>>>count= 0
>>>while (count < 9):
... print 'the index is:', count
... count += 1
4.控制语句:break(跳出整个循环)、continue(跳出本次循环)、pass(pass 不做任何事情,一般用做占位语句)
5.迭代器: for 循环会访问一个可迭代对象(例如序列或是迭代器)中的所有元素, 并在所有条目都处理过后结束循环.
迭代器是一组数据结构,你可以利用它们的索引从0 开始一直"迭代" 到序列的最后一个条目,比如:通过for循环来遍历list,这种遍历我们称为迭代(Iteration)
迭代器可以迭代不是序列但表现出序列行为的对象, 例如字典的 keys , 一个文件的行等 “类”序列(sequence-like object)对象
迭代器就是有一个next()方法的对象, 而不是通过索引来计数.当用户或是一个循环(例如 for)需要下一个项时, 调用迭代器的 next() 方法就可以获得它.
比如,在整理表格或文件时,需要按照字母或日期进行排序,在python中:
>>>Li =[6, 2, 8, 4, 1, 3]
>>>for i in sorted(Li):
... print i,
输出:
?
在使用默认参数reverse后列表可以按照逆序整理:
>>>sorted(Li,reverse=True)
在整理列表的过程中,如果同时需要2个或多个列表该怎么办?这时候可以用到zip函数,
比如:
fora, binzip(nums, strs):
print b, 'is', a
列表是有序的,可以使用Python中独有的函数enumerate来进行:
![](https://i-blog.csdnimg.cn/blog_migrate/11be4425480da98748360b719ca0c8b7.png)
6.列表解析式(推导式)
列表添加10个元素(传统方法)
a= []
for i in range(1, 11):
a.append(i)
列表解析式方法
b= [iforiin range(1, 11)]
for循环后面还可以加上if判断,这样就可以筛选出符合条件的元素,比如选择偶数:
c = [i for i in range(1, 11,) if i % 2 == 0]
列表解析式的用法也很好理解,可以简单看作两部分:
字典解析式:
>>>res = [x+yfor x in [0,1,2] for y in [100,200,300]]
>>>res
列表解析+矩阵
矩阵:(也被称为多维数组)的一个基本的方法就是使用嵌套列表结构,如下
>>> m = [[1,2,3],
[4,5,6],
[7,8,9]]
>>> n =[[2,2,2],[3,3,3],[4,4,4]
使用这样的结构,我们总能索引行,以及索引行中的列
遍历某一列
>>> [m[row][1] for row in (0, 1, 2)]
遍历对角线
>>> [m[i][i] for i in range(len(m))]
遍历每一个元素
>>> [m[row][col]for row in range(3) for col in range(3)]
m+ n组成的新矩阵
>>> [m[row][col]+n[row][col] for row in range(3) forcol in range(3)]
m*n组成的新矩阵
>>>[[m[row][col]*n[row][col] for row in range(3)] for col in range(3)]