python基础教程(第2版)第五章读后总结;

Python5条件,本章所涉及的函数;

wKioL1TAspLRD2C1AAK0dTxxRNY386.jpg

循环和其他语句

赋值的方法:

wKiom1TAsZLSl7x5AAE63bfMa2I752.jpg

5.1序列解包: 将多个值得序列揭开,然后放到变量的序列中;

In [14]: values = 1,2,3
In [15]: values
Out[15]: (1, 2, 3)
In [16]: x,y,z=values
In [17]: x
Out[17]: 1

5.2链式赋值:是将同一个值赋给多个变量。如下;

In [18]: q=w=e=1
In [19]: q
Out[19]: 1
In [20]: w
Out[20]: 1


5.3增量赋值:将表达式运算符放置在赋值运算符=的左边.如下;

In [21]: x =2
In [22]: x +=3
In [23]: x
Out[23]: 5
In [24]: x *=2
In [25]: x
Out[25]: 10

5.4语句块:并非一种语句,实在条件为真(条件语句)时执行或者执行执行多次(循环语句)的一组语句,在代码前放置空格来缩进语句即可创建语句块;


   False None 0 "" () {} [] 这些类型在解释器解析时都为假,其他的一切都为真值,包括特殊值True.标准的真值为True和False。或者为1和0.

 

5.5 if语句 

   

If  条件1 :
    if 条件2 :
    print 结果2
elif 条件3 :
    print  结果3
else:
    print 结果4


附加:如果要确保程序中的某个条件为真才能让程序正常工作的话,assert语句就很有用了;

In [36]: age = -1
In [37]: assert 0<age<100, 'TMD,This is age,age not negative.'
---------------------------------------------------------------------------
AssertionError                            Traceback (most recent call last)
<ipython-input-37-26492895f2fc> in <module>()
----> 1 assert 0<age<100, 'TMD,This is age,age not negative'
AssertionError: TMD,This is age,age not negative.

5.6while循环 和shell一样,当条件为真时,重复执行;

x=1
while x <=100:
    print x
x +=1

5.7 for循环 和shell一样,给出一个列表,一次按顺序执行.

In [43]: numbers = [1,2,3,4]
In [44]: for num in numbers:
    print num
   ....:     
1
2
3
4

5.8 常用的一些迭代工具

  5.8.1 并行迭代:程序可以同时迭代两个序列。

In [13]: name = ['lambert','kangkang','kevin']
In [14]: age = [20,18,25]
In [15]: for i in range(len(name)):
    print name[i],'is',age[i],"years old"
   ....:     
lambert is 20 years old
kangkang is 18 years old
kevin is 25 years old

  

    5.8.2内建的zip函数可以用来进行并行迭代;

In [16]: name = ['lambert','kangkang','kevin']
In [17]: age = [20,18,25]
In [18]: zip(name,age)
Out[18]: [('lambert', 20), ('kangkang', 18), ('kevin', 25)]


    5.8.3编号迭代:有些时候想要迭代序列中的对象,同时还要获取当前对象的索引

    5.8.4翻转和排序迭代

  reversed和sorted函数

In [57]: sorted([34,234,3,9])
Out[57]: [3, 9, 34, 234]
In [61]: list(reversed('Hello,world'))
Out[61]: ['d', 'l', 'r', 'o', 'w', ',', 'o', 'l', 'l', 'e', 'H']


    5.9跳出循环

  break 直接跳出程序

  continue语句比break语句用得要少很多,它会让当前的迭代结束,跳到下一轮循环的开始,基本的意思是“跳过剩余的循环体,但是不结束循环”

           当循环体很大而且很复杂的时候,这会很有用。

5.10列表推导式---轻量级循环:是利用其他列表创建新列表,它的工作方式类似于for循环

  例如:

In [31]: [x*x for x in range(10) if x % 3 == 0]
Out[31]: [0, 9, 36, 81]
In [32]: [(x,y) for x in range(3) for y in range(3)]
Out[32]: [(0, 0), (0, 1), (0, 2), (1, 0), (1, 1), (1, 2), (2, 0), (2, 1), (2, 2)]


5.11 pass程序可以让程序什么都不做,对于没有完成的函数和类,这种方法很有用

5.12有些时候可能会需要动态地创造python代码,然后将其作为语句执行或作为表达式计算;

常见的方法有

exec eval


你可能感兴趣的:(while,python,循环,when,if)