Python基础教程笔记——第5章:条件,循环和其他语句

5.1 print和import的更多信息

1. print()3.0之后print不再是语句,而是函数,

       >>> print('udg',12,13)   udg 12 13

       >>> name='yanliang'  >>> print(name)  yanliang 

2. import 把某件事当做另外一件事导入

import somemodule

from somemodule import somefunction

from somemodule import somefunction1,somefunction2,somefunction3.。。。

from somemodule import *

(1)为导入的模块提供别名:>>> import math as foo  >>> foo.sqrt(4)   2.0

(2)也可以为函数提供别名:>>>from module import function as function1

5.2 赋值魔法

1. 序列解包

(1)多个赋值同时进行:>>> x,y,z=1,2,3  >>> print(x,y,z)  1 2 3

(2)>>> x,y=y,x  >>> print(x,y)  2 1

2. 链式赋值

(1)>>> x=y=2 相当于 >>> y=2  >>> x=y

3. 增量赋值

(1)>>> x+=3 类似于C++中的

5.3 语句块:缩排的乐趣

5.4 条件和条件语句

1. bool值是True配合False  ,bool()函数可以用来转换其它的值。

2. if语句 

1 name=input("what is your name!")
2 if name.endswith('liang'):
3     print('hello,yanliang')

3.else子句

1 name=input("what is your name!")
2 if name.endswith('liang'):
3     print('hello,yanliang')
4 else:
5     print("hello stringer")

 4. elseif

5. 嵌套代码块

6. 更复杂的条件

(1)比较运算符:例如x<y , x<=y ,0<x<100也可以等

(2)相等运算符:>>> "foo"=="foo"  True  >>> "foo"=="fod"  False

(3)is: 同一性运算符:

       >>> x=y=[1,2,3]  >>> x is y  True  这里x,y被绑定到同一个对象上,所以具有同一性

      >>> z=[1,2,3]  >>> z is y  False      z虽然与y是相等的但不是同一个对象所以不具有同一性

(4)in 成员资格运算符

(5)字符串和序列的比较:按照字母顺序排列

(6)bool运算符:and or not

1 name=int(input("input the number"))
2 if name<10 and name>1:
3     print("OK")
4 else:
5     print("wrong")

(7)断言 assert 当不满足条件时直接崩溃退出

5.5 循环

1. while循环

1 name=''
2 while not name:
3     name=input("please input your name")
4     print("hello %s !" % name)

2. for循环

1 for number in range(10):
2     print(number)

3. 循环遍历字典元素

1 d={"a":1,"b":2,"c":3}
2 for key in d:
3     print(key,"corrsponds to",d[key])

 4. 一些迭代工具

(1)并行迭代:zip()可以将两个序列合成一个字典对应起来

1 key1=['a','b','c']
2 value2=[1,2,3]
3 mapa=zip(key1,value2)
5 for name,age in mapa: 6 print(name,'is',age)

(2)编号迭代

将字符串数组中的包含‘yan’的自字符串全部替换成‘yanliang’

一种方法:

1 strings=['jhsf','yansgd','gd']
2 print(strings,'\n')
3 index=0;
4 for string in strings:
5     if 'yan' in string:
6         strings[index]='yanliang'
7     index+=1
8 print(strings,'\n'

第二种方法:采用enumerate函数 enumerate(strings)可以返回索引-值对

1 strings=['jhsf','yansgd','gd']
2 print(strings,'\n')
3 index=0;
4 for index,string in enumerate(strings):
5     if 'yan' in string:
6         strings[index]='yanliang'
7 print(strings,'\n') 

 (3)翻转和排序迭代

sorted和reserved 返回排好序或翻转后的对象

sort和reserve 在原地进行排序或翻转

5. 跳出循环

(1)break

(2)continue

(3)while True  。。。break

6. 循环中的else 语句

5.6 列表推导式——轻量级的循环

>>> [x*x for x in range(10)]  [0, 1, 4, 9, 16, 25, 36, 49, 64, 81]

>>> [x*x for x in range(10) if x%3==0]  [0, 9, 36, 81]

5.7 pass del exec

pass: 程序什么也不做

del: 不仅会删除对象的引用也会删除对象的名称,但是那个指向的对象的值是没办法删除的

exec: 执行一个字符串语句

          最好是为这个exec语句提供一个命名空间,可以放置变量的地方

eval: 

         >>> eval(input('please input the number \n'))

         please input the number 

         1+2+3

         6  

posted @ 2015-08-06 19:29  弱水三千12138  阅读(191)  评论(0编辑  收藏  举报