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

逻辑运算符

运算符 逻辑表达式 描述 实例
and x and y 布尔"与":
如果 x 为 False,x and y 返回 False,
否则它返回 y 的值。
True and False, 返回 False。
or x or y 布尔"或":
如果 x 是 True,它返回 True,
否则它返回 y 的值。
False or True, 返回 True。
not not 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

数据类型转换

数据类型转换

程序的三种结构

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

顺序结构

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

选择结构

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

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
        ...(省略)...

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

循环内外变量赋值的区别

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

while 循环的嵌套
while 循环的嵌套

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


柜子里面放着套娃

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


顶层取完

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

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


终止

如上所述的游戏过程,

  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. 位操作运算讲解

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 206,839评论 6 482
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 88,543评论 2 382
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 153,116评论 0 344
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 55,371评论 1 279
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 64,384评论 5 374
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,111评论 1 285
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,416评论 3 400
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,053评论 0 259
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 43,558评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,007评论 2 325
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,117评论 1 334
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,756评论 4 324
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,324评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,315评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,539评论 1 262
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,578评论 2 355
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,877评论 2 345

推荐阅读更多精彩内容

  • 第2章 Python程序实例解析 温度转换程序实例 温度刻画存在不同体系,摄氏度以1标准大气压下水的结冰点为0度,...
    jplee阅读 3,771评论 0 2
  • 第2章 基本语法 2.1 概述 基本句法和变量 语句 JavaScript程序的执行单位为行(line),也就是一...
    悟名先生阅读 4,118评论 0 13
  • 1)for x in ...循环就是把每个元素代入变量x,然后执行缩进块的语句 2)range(101)就可以生成...
    木凛阅读 322评论 0 0
  • 值类型&引用类型 值类型(不可变):int、str、tuple 引用类型(可变):list、set、dict 运算...
    stoolman阅读 93评论 0 0
  • 01 在职场里,不喜欢表现自己偏于内向的人常常在别人尤其是一些领导眼中属于被忽视或者被看不起群体,甚至是当着许多同...
    夜语山林阅读 573评论 0 3