Python学习笔记(二)之Python运算符和基本语句

1. Python运算符

1.1 算术运算符

运算符 + - * / % ** //
描述 取模 向下取整
  • 样例1.1:
#!/user/bin/python
#coding=utf-8
#author@ zjw

a, b = 1, 2
print "1+2=", a+b
print "1-2=", a-b
print "1/2=", a/b
print "1*2=", a*b
print "1%2=", a%b
print "1**2=", a**b  #返回a的b次幂
print "1//2=", a//b  #返回商的整数部分,向下取整

#特殊
print "9/2=", 9/2
print "9//2=", 9//2
print "-9/2=", -9/2
print "-9//2=", -9//2
print "-9.2/2=", -9.2/2
print "-9.2//2=", -9.2//2
  • 输出

1+2= 3
1-2= -1
1/2= 0
1*2= 2
1%2= 1
1**2= 1
1//2= 0
9/2= 4
9//2= 4
-9/2= -5
-9//2= -5
-9.2/2= -4.6
-9.2//2= -5.0

  • 分析:
    • 这里主要将下///的区别,当为两个整数进行运算时,两者运算结果没有差别;
    • 但当两个浮点数运算时,如最后两个例子,浮点数的/运算,输出的浮点数是带小数位的运算结果,而浮点数的//运算,则是向下取整,输出时虽然是浮点数,但是省略了小数部分,将小数部分归为零。

1.2 比较运算符

运算符 == != <> > < >= <=
描述 等于 不等于 不等于 大于 小于 大于等于 小于等于
  • 以上比较运算符返回值均为布尔类型
  • <>已在Python3中废弃,谨慎使用,尽量用!=代替。

1.3 赋值运算符

运算符 = += -= *= /= %= **= //=
描述 简单赋值 加氟赋值 减法赋值 乘法赋值 除法赋值 取模赋值 幂赋值 取整赋值
  • a**=b等效于a=a**b
  • a//=b等效于a=a//b
  • 其余同理

1.4 位运算符

运算符 & | ^ ~ << >>
描述 按位与运算 按位或运算 按位异或运算 按位取反运算 左移动运算 右移动运算
  • 实例1.4:
#!/user/bin/python
#coding=utf-8
#author@ zjw

a = 1                       #    a = 0001           
b = 2                       #    b = 0010
print "a & b = ", a & b     #a & b = 0000
print "a | b = ", a | b     #a | b = 0011
print "a ^ b = ", a ^ b     #a ^ b = 0011
print "~a = ", ~a           #   ~a = 0010
print "a >> 1 = ", a >> 1   #a | b = 0000
print "b << 1 = ", b << 1   #a | b = 0100
  • 输出:

a & b = 0
a | b = 3
a ^ b = 3
~a = -2
a >> 1 = 0
b << 1 = 4

  • ~取反运算,是对数据中的每个二进制位取反,即把1变成0,把0变成1。~x类似于-x-1

  • 小知识1:>>向右移动1位相当于除以2,<<向左移动1位相当于乘以2

  • 小知识2:任意整数a,a&1可以用来判断是奇数还是偶数,如果是奇数则返回1,偶数返回0

1.5 逻辑运算符

  • x = 10, y = 20
运算符 and or not
逻辑表达式 x and y x or y not x
描述 布尔“与”。
如果x为False或0,则返回False或0;
否则返回y的值
布尔“或''。
如果x为True或不为0的数,则返回x的值;
否则返回y的值
布尔”非''。
x为0或False,返回True;
否则返回False。
实例 20 10 False
  • 可以直接按从左到右计算方式,如果是and的话,当遇到一个为False或0的值时,则整体的计算结果就为False或0;如果是or的话,当遇到一个不为False或0的值时, 则整体的计算结果就为这个值;如果是not 的话,就更好判断了,直接取反即可,对的就是错的,错的就是对的。

1.6 身份运算符

运算符 is is not
描述 判断两个标识符是不是引用自同一个对象 判断两个标识符是不是引用自不同对象
实例 x is y,相当于id(x) == id(y) x is not y, 相当于id(x) != id(y)
  • id()函数用于获取对象的内存地址。

  • is与区别,就相当于java中equals和的区别。is是用来判断两个变量引用对象是否为同一个(即是否在同一个内存空间中),==用于判断引用变量的值是否相等。

  • 实例1.6:

#!/user/bin/python
#coding=utf-8
#author@ zjw

num = [1, 2, 3, 4, 5]
newNum = num

print "newNum is num", newNum is num
print "newNum is not num", newNum is not num
  • 输出:

newNum is num True
newNum is not num False

1.7 成员运算符

运算符 in not in
描述 如果在指定序列中找到对应值,返回True,否则返回False 如果在指定序列中找不到对应值,返回True,否则返回False
  • 实例1.7:

    #!/user/bin/python
    #coding=utf-8
    #author@ zjw
    
    num = [1, 2, 3, 4, 5]
    a = 1
    b = 10
    
    print "a in num", a in num
    print "b not in num", b not in num
    
  • 输出:

a in num True
b not in num True

2. Python基本语句

2.1 条件语句

  • 多个判断条件时,用elif来进行判断,python中没有switch语句。
if 判断条件:
    执行语句
elif 判断条件:
    执行语句
elif 判断条件:
    执行语句
...
else:
    执行语句
  • 如果if语句中只有一条执行语句,可以写在和if语句同一行。

2.2 循环语句

2.2.1 while循环语句

  • while 句型
while 判断语句:
    执行语句
  • while..else... 句型
while 判断语句:
    执行语句
else:
    执行语句 #当循环条件为false时,执行else的执行语句
  • 如果while循环体中只有一条语句,可以写在和while语句同一行。

2.2.2 for循环语句

  • for句型
for 变量 in 序列(范围):
    执行语句
  • 这里的序列(范围)可以是一个字符串,一个range()。range()函数返回一个序列的数
  • for...else...句型
for 变量 in 序列(范围):
    执行语句
else:
    执行语句

2.3 pass语句

  • pass语句是一个空句,是为了保证程序结构的完整性。
  • pass语句不做任何事情,一般用于占位。
  • 实例:
def example():
    pass
#此处的pass就是用来占位的,否则空函数程序会报错。
原文地址:https://www.cnblogs.com/vanishzeng/p/12184730.html