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

循环和其他语句

赋值的方法:

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

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

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

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

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

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

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

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

 

5.5 if语句 

   

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

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

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

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

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

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

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

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 oldkangkang is 18 years oldkevin 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