Python流程控制
if测试:
if 条件测试表达式:
组合条件测试:
x and y:与运算
x or y:或运算
not x:非运算
while:
break:跳出最内层的循环
continue:跳到所处的最近层循环的开始处
pass:占位语句
else代码块:循环正常终止才会执行;如果循环终止时由break跳出导致的,则else不会执行。
while 练习题
练习1:逐一显示指定列表中的所有元素。
方法一:
方法三:
反向显示:
列表反转:
方法一:
方法二:
练习二:求100以内所有偶数之和
练习三:逐一显示指定字典的所有键,并于显示结束后说明键总数。
方法一:for实现
方法二:while实现
练习4:创建一个包含了100以内的所有奇数的列表:
方法一:内置函数 range(1,100,2)
方法二:
练习4:创建一个包含了100以内的所有奇数的列表:
方法一:内置函数 range(1,100,2)
方法二:
练习5:逆序逐一显示一个列表的所有元素
上面反转已经实现
练习6:列表l1=[0,1,2,3,4,5,6],列表l2=['Sun','Mon','Tue','Wed','Thu','Fri','Sat'],以l1元素为键,l2为值生成字典d1
方法一:
方法二:
for循环:
对于可迭代对象,用for循环遍历
range和xrange区别:range直接在内存中生成对象,xrange用一个生成一个,节约内存,适用于生成大对象
for练习题:
练习1:注意分开显示指定字典d1中的所有元素,类似如下:
k1 v1
k2 v2
...
练习2:逐一显示列表l1=['Sun','Mon','Tue','Wed','Thu','Fri','Sat']中索引为奇数的元素。
练习3:建属于列表l1=['Sun','Mon','Tue','Wed','Thu','Fri','Sat'],但不属于列表l2=['Sun','Mon','Tue','Thu','Sat']的所有元素定义为一个新列表。
方法一:
方法二:
注:此方法中,两个list中的元素不能为字典
练习4:已知列表namelist= ['stu1','stu2','stu3','stu4','stu5','stu6','stu7'],删除列表removelist=['stu7','stu8','stu9'],请将属于removelist列表中的每个元素从namlist中移除,反之,忽略即可。
回顾:
动态语言
对象引用相关注意
sys.getrefcount() 获取引用计数
增加对象引用计数的场景:
对象创建时
见对象添加进容器时;类似list.append()
当对象被当做参数传递给函数时
为对象创建另外别名
减少引用计数场景:
引用此对象的某变量名被显式销毁
给引用此对象的变量名重新赋值
从容器中移除对象时,类似list.pop()
容器本身被销毁
if
if boolean_expection:
...
elif boolean_expection:
...
else:
...
while
while boolean_expection:
while_suite
if boolean_expection2: continue
if boolean_expection3: break
else:
else_suite
for
for expression in object:
for_suite
if boolean_expression2: continue
if boolean_expression3: break
else:
else_suite