Python基础教程(第3版)中文版 第5章 条件、循环及其他语句(笔记)

                         第5章 条件、循环及其他语句


1.print 和 import


print
 打印多个参数(,分隔)自动添加空格 ;
 + 合并字符串 ;
 seq参数 自定义分隔符
import
  导入时重命名(as
  如:from math import sqrt as foobar
      foobar(4)


2.赋值魔法


1.同时赋值:
x,y,z = 1,2,3
x,y = y,x #这会交换x,y的值
这种操作称为序列解包:将一个序列解包,并将得到的值存储到一系列变量中。
要解包元素必须和左边的目标个数相同
使用*收集多余的值,就不用确保个数相同:
a,b, *rest = [1,2,3,4]
#1.*变量的位置任意,2.带*的变量将包含列表
2.链式赋值
x = y = func()
#等价 y = func()
      x = y
3. 增强赋值(复合赋值)
x += 1
x *= 2 


3. 代码块


代码块是一组语句。代码块使用缩进代码来创建。
同一代码块中,各行代码的缩进量必须相同。

4.条件和条件语句


1.bool 值
bool 表达式 视为假值的有:
False None 0 "" () [] {}
除此之外皆是真值
2.if语句(有条件地执行)
3.else子句
4.elif子句(else if)
5.代码块嵌套(把if语句放在其他if语句中)

6.更复杂的条件
1.比较运算符
除了常见的< > == 等等
还有is, is not, in , not in
#不同与C,python支持链式比较:如:0<x<100
2.布尔运算符
and  or not 
#和C类似,python也存在逻辑短路现象

7.断言assert



5.循环


1.while循环
2.for循环
为序列执行代码块:
words = ['this', 'is', 'an', 'ex', 'parrot']
for word in words:
 print(word) 

 创建范围的内置函数 range()

 3.迭代字典
 for key, value in d.items():
 print(key, 'corresponds to', value)

 4.一些迭代工具
 1.并行迭代,内置函数zip 将两个序列缝合起来,返回元组组成的序列。
 2.迭代时获取索引 enumerate
 for index, string in enumerate(strings):
 if 'xxx' in string:
 strings[index] = '[censored]'
 3.反向迭代和排序后迭代
 reversed 和 sorted 

 5跳出循环
 1.break   跳出迭代(本层)
 2.continue 结束当前迭代(本次)

 6.循环中的else语句



6.简单推导

列表推导是一种从其他列表创建列表的方式。
[x*x for x in range(10)]
添加条件
[x*x for x in range(10) if x%3 == 0]
字典推导
>>> squares = {i:"{} squared is {}".format(i, i**2) for i in range(10)}
>>> squares[8]
'8 squared is 64' 


7.pass del 和 exec


1.什么都不做pass
2.del 删除(通常python会自动做)
3.exec 将字符串作为代码执行
        给exec添加第二个参数--字典,用作其命名空间
        from math import sqrt
        >>> scope = {}
        >>> exec('sqrt = 1', scope) 
  eval 计算字符串表示的值
          也能传给它第二个参数做命名空间


第5章出现的函数:


chr(n) 返回一个字符串,其中只包含一个字符,这个字符对应于传入的顺序值n(0 ≤n < 256)
eval(source[,globals[,locals]]) 计算并返回字符串表示的表达式的结果
exec(source[, globals[, locals]]) 将字符串作为语句执行
enumerate(seq) 生成可迭代的索引值对
ord(c) 接受一个只包含一个字符的字符串,并返回这个字符的顺序值(一个整数)
range([start,] stop[, step]) 创建一个由整数组成的列表
reversed(seq) 按相反的顺序返回seq中的值,以便用于迭代
sorted(seq[,cmp][,key][,reverse]) 返回一个列表,其中包含seq中的所有值且这些值是经过排序的
xrange([start,] stop[, step]) 创建一个用于迭代的xrange对象
zip(seq1, seq2,...) 创建一个适合用于并行迭代的新序列


 

猜你喜欢

转载自blog.csdn.net/qq_41068877/article/details/81865065
今日推荐