Python学习笔记(四)——运算符与流程控制

来源:互联网 发布:知乎华为mate10 编辑:程序博客网 时间:2024/06/05 00:14

运算符

算术运算符

运算符 描述 实例 ** 幂 - 返回x的y次幂 a**b 为10的20次方, 输出结果100000000000000000000 // 取整除 - 返回商的整数部分 9//2 输出结果 4 , 9.0//2.0 输出结果 4.0

逻辑运算符

Python里不使用符号逻辑运算符(&&,||,!)而使用英文单词(and,or,not)。但两者都是短路规则,即&&只要前项为假,它就不往后判断了,直接认为表达式为假;||只要前项为真,它也不往后判断了,直接认为表达式为真。

成员运算符

Python支持成员运算符,测试实例中包含了一系列的成员,包括字符串,列表或元组。

a = 1list = [1, 2, 3, 4, 5 ];print(a in list)       #Trueprint(a not in list)   #False

身份运算符

身份运算符(is, is not)用于比较两个对象的存储单元。
a is b类似 id(x) == id(y) , 如果引用的是同一个对象则返回 True。
id()获取内存地址。
is 与 == 区别:
is 用于判断两个变量引用对象是否为同一个, == 用于判断引用变量的值是否相等。(这与java不一样)

a = 20b = 20print(a is b)     #Trueprint(a is not b) #False

但如果赋值的不是20而是大的数值,情况就跟前面的一样了:

a=44444b=44444a is b #Falsea == b #True

因为python中会为每个出现的对象分配内存,哪怕他们的值完全相等(注意是相等不是相同),不过为了提高内存利用效率对于一些简单的对象,如一些数值较小的int对象,python采取重用对象内存的办法,如指向a=20,b=20时,由于20作为简单的int类型且数值小,python不会两次为其分配内存,而是只分配一次,然后将a与b同时指向已分配的对象。

如执行a=44444,b=44444这两个语句时会先后为44444这个数值大的int类型对象分配内存,然后将a与b分别指向这两个对象。所以a与b指向的不是同一对象:


条件语句

if xxx:    ...elif xxx:    ...else:    ...

由于 python 并不支持 switch 语句,所以多个条件判断,只能用 elif 来实现。


循环语句

Python提供了一个pass空语句,是为了保持程序结构的完整性。它可以用在如if,while,for,函数定义等程序的任何地方。

在Python中,else可以结合while使用。相当于在while正常结束(即非由break跳出循环)时的最后操作。for…else也一样。

count = 0while count < 5:    print count, " is  less than 5"    count = count + 1else:    print count, " is not less than 5"

for循环可以遍历任何序列的项目,如一个列表或者一个字符串。语法格式如下:

for iterating_var in sequence:    statements(s)

另外一种执行循环的遍历方式是通过索引,如下实例:

fruits = ['banana', 'apple',  'mango']for index in range(len(fruits)):    print '当前水果 :', fruits[index]

以上实例我们使用了内置函数 len() 和 range(),函数 len() 返回列表的长度,即元素的个数。 range返回一个序列的数。
使用内置 enumerate 函数进行遍历:

for index, item in enumerate(sequence):    process(index, item)
原创粉丝点击