Python学习笔记二(运算符、程序结构)

Python 运算符

python中运算符分为五大类:算术运算符、赋值运算符、比较运算符、逻辑运算符、条件运算符(三元运算符)。

算术运算符

算术运算符主要用于进行基本的算术运算,如加法、减法、乘法、除法等。

运算符描述
+
*
/
//取整除
%取余
**指数

运算实例

# +  注:(1+1) 是使1+1 作为一个整体,先进行运算,再进行格式化输出
print("1+1 = %d" % (1 + 1))
# -
print("1-1 = %d" % (1 - 1))
# * 注: 计算机中的乘用 *(星号) 代替,不是 x(字母)
print("1*1 = %d" % (1 * 1))
# / 注: 计算机中的除用 /(斜杠) 代替
print("1/1 = %s" % (1 / 1))  # 使用%s 占位只是为了显示小数位
print("10/3 = %s" % (10 / 3))  # 使用%s 占位只是为了显示小数位
# //
print("10//4 = %s" % (10 // 4))  # 使用%s 占位只是为了显示小数位
# **
print("2**10 = %d" % (2 ** 10))

# 运算结果
# 1+1 = 2
# 1-1 = 0
# 1*1 = 1
# 1/1 = 1.0
# 10/3 = 3.3333333333333335
# 10//4 = 2
# 2**10 = 1024

由以上结果可知

  • Python中除法默认转型成float 且默认保留一位小数
  • 整除// : 是地板除, 既向下取整,
    • 如果商不为整数, 则 结果为 商-1 – 商之间的整数
    • 比如 10/4 的商为2.5 , 不是整数, 2.5 -1 到 2.5 之间的整数为2 ,所以 10 // 4 = 2 .
    • 妙用: 在某些情况下可以利用整除的特性, 忽略奇偶性的判断

赋值运算符

运算符描述实例
=赋值运算符把 = 号右边的结果 赋给 左边的变量,
如 num = 1 + 2 * 3,结果num的值为7
+=加法赋值运算符c += a 等效于 c = c + a
-=减法赋值运算符c -= a 等效于 c = c – a
*=乘法赋值运算符c *= a 等效于 c = c * a
/=除法赋值运算符c /= a 等效于 c = c / a
%=取模赋值运算符c %= a 等效于 c = c % a
**=幂赋值运算符c **= a 等效于 c = c ** a
//=取整除赋值运算符c //= a 等效于 c = c // a

注:

  • 如果 = 右边是一个表达式, 会先计算右边, 得到的结果赋值给左边
  • 例: A= 5 ,A += 3+5 , A 最终等于13.

比较运算符

运算符描述示例
==检查两个操作数的值是否相等,
如果是则条件为真。
如a=3,b=3,则(a == b) 为 True
!=检查两个操作数的值是否相等,
如果值不相等,则条件为真。
如a=1,b=3,则(a != b) 为 True
>检查左操作数的值是否大于右操作数的值,
如果是,则条件为真。
如a=7,b=3,则(a > b) 为 True
<检查左操作数的值是否小于右操作数的值,
如果是,则条件为真。
如a=7,b=3,则(a < b) 为 False
>=检查左操作数的值是否大于或等于右操作数的值,
如果是,则条件为真。
如a=3,b=3,则(a >= b) 为 True
<=检查左操作数的值是否小于或等于右操作数的值,
如果是,则条件为真。
如a=3,b=3,则(a <= b) 为 True

注:

  • 如果左右两边有表达式, 则先计算表达式再比较, 例如: 7+7 > 5+5 , 先计算 7+7 与 5+5 ,然后用两者的结果进行比较 14 > 10 , 结果为true

逻辑运算符

运算符逻辑表达式描述实例
andx and y布尔”与”:
如果 x 为 False,x and y 返回 False,
否则它返回 y 的值。
True and False, 返回 False。
orx or y布尔”或”:
如果 x 是 True,它返回 True,
否则它返回 y 的值。
False or True, 返回 True。
notnot x布尔”非”:
如果 x 为 True,返回 False 。
如果 x 为 False,它返回 True。
not True 返回 False,
not False 返回 True
扩展[1]

| 运算符 |逻辑表达式 |描述
|—|—|
|&| 0 & 1 |位运算符: 位与
|||0 | 1 |位运算符: 位或
||1 |取反
|^|0 ^ 1 |异或
|>>|4>>1 |右移运算符
|<<|1<<2 |左移运算符

注:

  • 左移一位 <==> 乘以2, 既2*2 等价于 2<<1
  • 右移一位 <==> 除以2, 既2/2 等价于 2>>1
  • 左移右移效率要高于乘除
  • 加的效率高于减的效率

数字的逻辑运算

a = 0
b = 1
c = 3

# and 运算,只要有一个值为 0 则结果为0,否则结果为最后一个非 0 数字
a and b  # 0
b and a  # 0
c and b  # 1
b and c  # 3

# or 运算,只有所有值为 0 结果才为0,否则结果为第一个非 0 数字
a or a  # 0
a or b  # 1
b or a  # 1
c or b  # 3
b or c  # 1

条件运算符(三元运算符)

格式

变量 = 值1 if 条件 else 值2

a = 10
b = 20
c = a if a>b else b
print(c)  # 条件不成立,把 b 的值赋给 c,也就是 c 的值为 20

数据类型转换

《Python学习笔记二(运算符、程序结构)》 数据类型转换

程序的三种结构

程序的三种结构分别是 顺序结构、选择结构 和 循环结构。

顺序结构

如同名字一样,程序中的代码按照自上而下执行的排列顺序依次执行 ,则称为顺序执行,或顺序结构。

选择结构

程序按照某个条件选择其中一个分支进行执行,称为分支结构,或选择结构。

if判断语句

 if 条件语句:
     成立则执行的语句

 age =30
 if age >= 18:
        print("我已经成年了") 

if-else 判断语句

 if 条件语句:
     条件成立,执行的语句
 else:
     条件不成立,执行的语句

 age =30
 if age >= 18:
    print("成年了") 
 else:
    print("未成年") 

if-elif 判断语句

 if 条件语句:
     条件成立,执行的语句
 elif 条件语句2:
     条件语句2成立,执行的语句
 else:
     条件都不成立,执行的语句

 age =30
 if age >= 30:
    print("中年人") 
 elif age >= 18: 
    print("成年人") 
 else:
    print("未成年") 
if嵌套的格式
  if 条件1:

        满足条件1 做的事情1
        满足条件1 做的事情2

        if 条件2:
            满足条件2 做的事情1
            满足条件2 做的事情2

就像 if 语句 可以嵌套一样,if、if-else、if-elif 三者之间可以根据需求相互嵌套使用

Python中 if 特殊用法

区间比较

a = 10
1<a<20  # True
11<a<20  # False

循环语句

while 循环

 while 条件:
        条件满足时,做的事情1
        条件满足时,做的事情2
        条件满足时,做的事情3
        ...(省略)...

需要注意 变量在循环外赋值 与 变量再循环内赋值的区别,如下图:

《Python学习笔记二(运算符、程序结构)》 循环内外变量赋值的区别

  • 在循环外的变量随着循环一直累加,
  • 在循环内的变量,每当一次新的循环开始,都被重新赋值
while 循环的嵌套

《Python学习笔记二(运算符、程序结构)》 while 循环的嵌套

有这么一个游戏,有一个立柜,立柜的每一个格子放着一个套娃。只有顶层的套娃可以操作。

《Python学习笔记二(运算符、程序结构)》 柜子里面放着套娃

只有把顶层的套娃取到最小的那一个,

《Python学习笔记二(运算符、程序结构)》 顶层取完

下一层的套娃自动上升到顶层

《Python学习笔记二(运算符、程序结构)》 上升到顶层

如此往复,直到立柜中的所有套娃都取出为止,如图

《Python学习笔记二(运算符、程序结构)》 终止

如上所述的游戏过程,

  1. 列游戏开始,立柜把格子上升到顶层。(外层while 开始执行(外循环))
  2. 这时顶层的套娃可以操作,把套娃一个一个取出。(内层while开始执行(内循环))
  3. 当顶层的套娃完全取出(内循环结束),下一层自动上升到顶层。(外循环继续执行)
  4. 如2一样,这时顶层的套娃可以操作,把套娃一个一个取出(内循环继续执行)。
  5. 当所有套娃全部取出,游戏结束(当内循环结束,并且 外循环也结束,整个循环结束)

for 循环

for 临时变量 in 列表或者字符串等可迭代对象:
    循环满足条件时执行的代码

Python 中的 for 循环 类似于Java 中的 foreach。

name = 'xiaoming'

for x in name:
    print(x)

结果如下

x
i
a
o
m
i
n
g

break和continue

break 打断循环,如果在多层嵌套循环当中,打断本层循环,不影响其他循环的执行。

name = 'xiao'

for x in name:

    if x == "a" 
        break
         
    print(x)

结果如下:

x
i 

continue 打断本次循环,跳转到条件判断的地方继续执行

name = 'xiao'

for x in name:

    if x == "a" 
        continue  
        
    print(x)

结果如下:

x
i 
o

到此结 DragonFangQy 2018.4.2

  1. 位操作运算讲解

    原文作者:DragonFangQy
    原文地址: https://www.jianshu.com/p/a1047f62170b
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞