Day2 Python的运算符及三大语句控制结构
Python的运算符
Python语言支持以下类型的运算符:
- 算术运算符
- 比较(关系)运算符
- 赋值运算符
- 逻辑运算符
- 位运算符
- 成员运算符
- 身份运算符
- 运算符优先级
Python的三大语句控制结构:
- 顺序结构
- 分支结构
- 循环结构
接下来让我们一个个来学习Python的运算符。
Python算术运算符

以下实例演示了Python所有算术运算符的操作:
#!/usr/bin/python3
a = 21
b = 10
c = 0
print("a 的值为:",a," b 的值为:",b)
c = a + b
print ("a + b的值为:", c)
c = a - b
print ("a - b的值为:", c)
c = a * b
print ("a * b 的值为:", c)
c = a / b
print ("a / b的值为:", c)
c = a % b
print ("a % b 的值为:", c)
# 修改变量 a 、b 、c
a = 2
b = 3
c = a**b
print("修改a b的值,a:",a," b:",b)
print ("a**b 的值为:", c)
a = 10
b = 5
c = a//b
print("修改a b的值,a:",a," b:",b)
print ("a//b 的值为:", c)
Python比较运算符

以下实例演示了Python所有比较运算符的操作:
a = 21
b = 10
c = 0
print("a为:",a," b为:",b)
if ( a == b ):
print ("1 - a 等于 b")
else:
print ("1 - a 不等于 b") if ( a != b ):
print ("2 - a 不等于 b")
else:
print ("2 - a 等于 b") if ( a < b ):
print ("3 - a 小于 b")
else:
print ("3 - a 大于等于 b") if ( a > b ):
print ("4 - a 大于 b")
else:
print ("4 - a 小于等于 b") # 修改变量 a 和 b 的值
a = 5;
b = 20;
print("修改a b的值以后,a为:",a," b为:",b)
if ( a <= b ):
print ("5 - a 小于等于 b")
else:
print ("5 - a 大于 b") if ( b >= a ):
print ("6 - b 大于等于 a")
else:
print ("6 - b 小于 a")
Python赋值运算符

以下实例演示了Python所有赋值运算符的操作:
a = 21
b = 10
c = 0
print("a的值为:",a," b的值为",b)
c = a + b
print ("a + b 的值为:", c)
c += a
print ("c += a 的值为:", c)
c *= a
print ("c *= a 的值为:", c)
c /= a
print ("c /= a 的值为:", c)
c = 2
c %= a
print ("c %= a 的值为:", c)
c **= a
print ("c **= a的值为:", c)
c //= a
print ("c //= a 的值为:", c)
Python位运算符
注意:位运算符是把数字看作二进制来进行计算的。

Python中的按位运算法则如下:
下表中变量 a 为 60,b 为 13二进制格式如下:
a = 0011 1100 b = 0000 1101 ----------------- a&b = 0000 1100 a|b = 0011 1101 a^b = 0011 0001 ~a = 1100 0011
以下实例演示了Python所有位运算符的操作:
a = 60 # 60 = 0011 1100
b = 13 # 13 = 0000 1101
c = 0
c = a & b; # 12 = 0000 1100
print("a的值为:",a,"b的值为:",b)
print ("a & b 的值为:", c)
c = a | b; # 61 = 0011 1101
print ("a | b 的值为:", c)
c = a ^ b; # 49 = 0011 0001
print ("a ^ b 的值为:", c)
c = ~a; # -61 = 1100 0011
print ("~a 的值为:", c)
c = a << 2; # 240 = 1111 0000
print ("a << 2 的值为:", c)
c = a >> 2; # 15 = 0000 1111
print ("a >> 2 的值为:", c)
Python逻辑运算符

a = 10
b = 20
if ( a and b ):
print ("1 - 变量 a 和 b 都为 true")
else:
print ("1 - 变量 a 和 b 有一个不为 true") if ( a or b ):
print ("2 - 变量 a 和 b 都为 true,或其中一个变量为 true")
else:
print ("2 - 变量 a 和 b 都不为 true") # 修改变量 a 的值
a = 0
if ( a and b ):
print ("3 - 变量 a 和 b 都为 true")
else:
print ("3 - 变量 a 和 b 有一个不为 true") if ( a or b ):
print ("4 - 变量 a 和 b 都为 true,或其中一个变量为 true")
else:
print ("4 - 变量 a 和 b 都不为 true") if not( a and b ):
print ("5 - 变量 a 和 b 都为 false,或其中一个变量为 false")
else:
print ("5 - 变量 a 和 b 都为 true")
注意1:在 Python2 中是没有布尔型的,它用数字 0 表示 False,用 1 表示 True。到 Python3 中,把 True 和 False 定义成关键字了,但它们的值还是 1 和 0,它们可以和数字相加。
注意2:
python 中的 and 从左到右计算表达式,若所有值均为真,则返回最后一个值,若存在假,返回第一个假值;
or 也是从左到右计算表达式,返回第一个为真的值;
其中数字 0 是假,其他都是真;
字符 "" 是假,其他都是真;
如下代码演示:
print(5 and 4)
print(5 and 4 and 0)
print(5 and 4 and "")
print(5 or 4)
print(0 or 4)
print("" or 5)
Python成员运算符。
Python还支持成员运算符,测试实例中包含了一系列的成员,包括字符串,列表或元组。

以下实例演示了Python成员运算符的操作:
a = 10
b = 20
list = [1, 2, 3, 4, 5 ]; if ( a in list ):
print ("1 - 变量 a 在给定的列表中 list 中")
else:
print ("1 - 变量 a 不在给定的列表中 list 中") if ( b not in list ):
print ("2 - 变量 b 不在给定的列表中 list 中")
else:
print ("2 - 变量 b 在给定的列表中 list 中") # 修改变量 a 的值
a = 2
if ( a in list ):
print ("3 - 变量 a 在给定的列表中 list 中")
else:
print ("3 - 变量 a 不在给定的列表中 list 中")
Python身份运算符

以下实例演示了Python所有身份运算符的操作:
a = 20
b = 20 if ( a is b ):
print ("1 - a 和 b 有相同的标识")
else:
print ("1 - a 和 b 没有相同的标识") if ( id(a) == id(b) ):
print ("2 - a 和 b 有相同的标识")
else:
print ("2 - a 和 b 没有相同的标识") # 修改变量 b 的值
b = 30
if ( a is b ):
print ("3 - a 和 b 有相同的标识")
else:
print ("3 - a 和 b 没有相同的标识") if ( a is not b ):
print ("4 - a 和 b 没有相同的标识")
else:
print ("4 - a 和 b 有相同的标识")
注意:is 与 == 区别:is 用于判断两个变量引用对象是否为同一个, == 用于判断引用变量的值是否相等。
a = [1, 2, 3]
b = a
print(b is a) #True
print(b == a)#True
b = a[:]
print(b is a)#False
print(b == a)#True
Python运算符优先级
以下表格列出了从最高到最低优先级的所有运算符:

以下实例演示了Python所有运算符优先级的操作:
a = 20
b = 10
c = 15
d = 5
e = 0
print(type(a*b))
print("a=",a," b=",b," c=",c," d=",d)
print(type(b/d))
e = (a + b) * c / d #( 30 * 15 ) / 5
print ("(a + b) * c / d 运算结果为:", e)
e = ((a + b) * c) / d # (30 * 15 ) / 5
print ("((a + b) * c) / d 运算结果为:", e)
e = (a + b) * (c / d); # (30) * (15/5)
print ("(a + b) * (c / d) 运算结果为:", e)
e = a + (b * c) / d; # 20 + (150/5)
print ("a + (b * c) / d 运算结果为:", e)
Python的三大语句控制结构:
顺序结构
顺序结构也是python中三大语句控制结构中最基本的语句控制结构,可以这么说:我们写的代码都会用到顺序控制结构,如下所示:
a = 9
b = 5
c = a + b
print(c)
分支结构
Python条件语句是通过一条或多条语句的执行结果(True或者False)来决定执行的代码块。
可以通过下图来简单了解条件语句的执行过程:

if 语句
Python中if语句的一般形式如下所示:
if condition_1:
statement_block_1
elif condition_2:
statement_block_2
else:
statement_block_3
- 如果 "condition_1" 为 True 将执行 "statement_block_1" 块语句
- 如果 "condition_1" 为False,将判断 "condition_2"
- 如果"condition_2" 为 True 将执行 "statement_block_2" 块语句
- 如果 "condition_2" 为False,将执行"statement_block_3"块语句
Python 中用 elif 代替了 else if,所以if语句的关键字为:if – elif – else。
注意:
- 1、每个条件后面要使用冒号(:),表示接下来是满足条件后要执行的语句块。
- 2、使用缩进来划分语句块,相同缩进数的语句在一起组成一个语句块。
- 3、在Python中没有switch – case语句。
简单if语句:
var1 = 100
if var1:
print ("1 - if 表达式条件为 true")
print (var1) var2 = 0
if var2:
print ("2 - if 表达式条件为 true")
print (var2)
print ("Good bye!")
单分支语句:
age = int(input("请输入你家狗狗的年龄: "))
print("")
if age < 0:
print("你是在逗我吧!")
else:
print("你是人啊")
多分支语句:
age = int(input("请输入你家狗狗的年龄: "))
print("")
if age < 0:
print("你是在逗我吧!")
elif age == 1:
print("相当于 14 岁的人。")
elif age == 2:
print("相当于 22 岁的人。")
elif age > 2:
human = 22 + (age -2)*5
print("对应人类年龄: ", human)
### 退出提示
input("点击 enter 键退出")
以下为if中常用的操作运算符:

Demo:猜字游戏:
# 该实例演示了数字猜谜游戏
number = 7
guess = -1
print("数字猜谜游戏!")
while guess != number:
guess = int(input("请输入你猜的数字:")) if guess == number:
print("恭喜,你猜对了!")
elif guess < number:
print("猜的数字小了...")
elif guess > number:
print("猜的数字大了...")
if 嵌套
在嵌套 if 语句中,可以把 if...elif...else 结构放在另外一个 if...elif...else 结构中。
if 表达式1:
语句
if 表达式2:
语句
elif 表达式3:
语句
else
语句
elif 表达式4:
语句
else:
语句
演示代码如下:
num=int(input("输入一个数字:"))
if num%2==0:
if num%3==0:
print ("你输入的数字可以整除 2 和 3")
else:
print ("你输入的数字可以整除 2,但不能整除 3")
else:
if num%3==0:
print ("你输入的数字可以整除 3,但不能整除 2")
else:
print ("你输入的数字不能整除 2 和 3")
嵌套条件语句会随着它潜逃数量层的增加而变得非常难理解和阅读,应该尽量避免多层嵌套。
补充: range()和random模块:
import random x = random.choice(range(100))
y = random.choice(range(200))
if x > y:
print('x:',x)
elif x == y:
print('x+y', x + y)
else:
print('y:',y)
choice() 方法返回一个列表,元组或字符串的随机项。
以下是 choice() 方法的语法:
import random
random.choice( seq )
注意:choice()是不能直接访问的,需要导入 random 模块,然后通过 random 静态对象调用该方法。
参数
- seq -- 可以是一个列表,元组或字符串。
返回值
返回随机项。
range()函数: 如果你需要遍历数字序列,可以使用内置range()函数。它会生成数列.
eg:
a = range(10)
for i in a:
print(i)
你也可以使用range指定区间的值:
for i in range(5,9) :
print(i)
也可以使range以指定数字开始并指定不同的增量(甚至可以是负数,有时这也叫做'步长'):
#正数
for i in range(0, 10, 3) :
print(i) #负数
for i in range(-10, -100, -30) :
print(i)
您可以结合range()和len()函数以遍历一个序列的索引,如下所示:
a = ['Google', 'Baidu', 'Runoob', 'Taobao', 'QQ']
for i in range(len(a)):
print(i, a[i])
还可以使用range()函数来创建一个列表:
print(list(range(5)))
循环结构
Python中的循环语句有 for 和 while,另外Python中没有do..while循环。。
Python循环语句的控制结构图如下所示:

Python中while语句的一般形式:
while 判断条件:
语句
需要注意冒号和缩进。
以下实例使用了 while 来计算 1 到 100 的总和:
n = 100 sum = 0
counter = 1
while counter <= n:
sum = sum + counter
counter += 1 print("1 到 %d 之和为: %d" % (n,sum))
无限循环
我们可以通过设置条件表达式永远不为 false 来实现无限循环:
var = 1
while var == 1 : # 表达式永远为 true
num = int(input("输入一个数字 :"))
print ("你输入的数字是: ", num) print ("Good bye!")
while 循环使用 else 语句
在 while … else 在条件语句为 false 时执行 else 的语句块:
count = 0
while count < 5:
print (count, " 小于 5")
count = count + 1
else:
print (count, " 大于或等于 5")
简单语句组
类似if语句的语法,如果你的while循环体中只有一条语句,你可以将该语句与while写在同一行中,
flag = 1
while (flag): print ('欢迎访问菜鸟教程!')
for 语句
Python for循环可以遍历任何序列的项目,如一个列表或者一个字符串。
for循环的一般格式如下:
for <variable> in <sequence>:
<statements>
else:
<statements>
Python loop循环实例:
languages = ["C", "C++", "Perl", "Python"]
for x in languages:
print (x)
以下 for 实例中使用了 break 语句,break 语句用于跳出当前循环体,并且for语句后面也可以用else语句:
sites = ["Baidu", "Google","Runoob","Taobao"]
for site in sites:
if site == "Runoob":
print("菜鸟教程!")
break
print("循环数据 " + site)
else:
print("没有循环数据!")
print("完成循环!")
注意:
Python中的for、while循环都有一个可选的else分支(类似if语句和try语句那样),在循环迭代正常完成之后执行。
换句话说,如果我们不是以除正常方式以外的其他任意方式退出循环,那么else分支将被执行。也就是在循环体内没有break语句、没有return语句,或者没有异常出现时就会执行else语句。
考虑一个简单的(无用的)例子:
for i in range(5):
print(i)
else:
print('Iterated over everything :)')
上面的代码中,我们在range(5)上迭代并打印每个数字。因为我们让循环正常完成,所以else分支也被执行,并打印出Iterated over everything :) 。
相反,如果我们用break语句终止循环,那么else分支将不会执行:
for i in range(5):
if i == 2:
break
print(i)
else:
print('Iterated over everything :)')
注意,尽管循环所迭代的序列是空的,else分支依然会被执行,毕竟循环仍然是正常完成的。
for i in []:
print(i)
else:
print('Still iterated over everything (i.e. nothing)')
同样不要忘记,以上所有也适应于while…else:
i = 0
while i <= 5:
i += 1
print(i)
else:
print('Yep')
else语句在循环中的一个常见使用案例是实现循环查找。假说你在查找一个满足特定条件的项目(item),同时需要进行附加处理,或者在未发现可接受的值时生成一个错误:
for x in data:
if meets_condition(x):
break
else:
# raise error or do additional processing
没有else语句的话,你需要设置一个标志,然后在后面对其检测,以此确定是否存在满足条件的值。
condition_is_met = False
for x in data:
if meets_condition(x):
condition_is_met = True
if not condition_is_met:
# raise error or do additional processing
for、while循环支持嵌套,如下所示,输出一个9*9的乘法表:
i = 1
j=1
while i <= 9:
while j <= 9:
print("%s*%s = %s "%(i,j,i*j),end="")
j+=1
i += 1
j = 1
print()
While
i = 1
j=1
for i in range(1,10):
for j in range(1,10):
print("%s*%s = %s "%(i,j,i*j),end="")
print()
for
i = 1
j=1
for i in range(1,10):
while j <=9:
print("%s*%s = %s "%(i,j,i*j),end="")
j+=1
j = 1
print()
for and while
注意:外层循环控制行,内层循环控制列!
循环语句和分支语句之间可以相互嵌套:
if 1 < 2:
for i in range(1,5):
for j in range(1,6):
if j != 4:
print(j,end=" ")
pass
print(i)
分支嵌套循环
for i in range(1,5):
for j in range(1,6):
if j < 2:
print(j,end=" ")
pass
print(i)
循环嵌套分支
使用内置 enumerate 函数进行遍历:
for index, item in enumerate(sequence):
print(index, item)
注意:enumerate返回的是元组!
案列:
sequence = [12, 34, 34, 23, 45, 76, 89]
for i, j in enumerate(sequence):
print(i, j)
break,continue,pass语句
break:跳出当前循环不再循环;
continue:跳出本次循环下次循环继续;
pass:空语句什么都不干,为了保证代码的完整性;pass语句可以用在任何地方,eg:if语句中。
案列:
for i in range(5):
if i == 2:
continue
print(i)
continue
for i in range(5):
if i == 2:
break
print(i) for i in range(1,5):
for j in range(1,6):
if j == 4:
print(j,end=" ")
break
print(i)
break
for i in range(1,5):
for j in range(1,6):
if j != 4:
print(j,end=" ")
pass
print(i)
pass
Day2 Python的运算符及三大语句控制结构的更多相关文章
- 学习记录一(Python算数运算符与if语句)
从网上找到一个Python的学习视频,之前的环境都装好了,今天看的就是算术运算符和变量的命名 其中Python的除法直接就是 / %用于求余 其中还可以进行幂运算** 例如2 ** 3 = 8 ...
- 暴走Python之运算符与条件语句
本文原创作者:LoneliNess,本文属i春秋原创奖励计划,未经许可禁止转载 本文来源:i春秋学院 i春秋(ichunqiu.com)网络安全平台能提供专业的网络安全技术.网络渗透技术.网络 ...
- Python 30分钟入门——数据类型 and 控制结构
Python是一门脚本语言,我也久闻大名,但正真系统的接触学习是在去年(2013)年底到今年(2014)年初的时候.不得不说的是Python的官方文档相当齐全,如果你是在Windows上学习Pytho ...
- Python 30分钟入门——数据类型 & 控制结构
Python是一门脚本语言,我也久闻大名,但正真系统的接触学习是在去年(2013)年底到今年(2014)年初的时候.不得不说的是Python的官方文档相当齐全,假设你是在Windows上学习Pytho ...
- Day2 - Python基础2 列表、字典、集合
Python之路,Day2 - Python基础2 本节内容 列表.元组操作 字符串操作 字典操作 集合操作 文件操作 字符编码与转码 1. 列表.元组操作 列表是我们最以后最常用的数据类型之一, ...
- python学习第四讲,python基础语法之判断语句,循环语句
目录 python学习第四讲,python基础语法之判断语句,选择语句,循环语句 一丶判断语句 if 1.if 语法 2. if else 语法 3. if 进阶 if elif else 二丶运算符 ...
- python 之 运算符
Python 运算符 Python 运算符 什么是运算符? 本章节主要说明Python的运算符.举个简单的例子 4 +5 = 9 . 例子中,4和5被称为操作数,"+"号为运算 ...
- 分分钟钟学会Python -基础&运算符
day002 基础&运算符 1.循环语句 ### 1.循环格式 while 条件: print('') ''' while True: print('人生苦短,我用Python.') ''' ...
- 『Python基础-6』if语句, if-else语句
# 『Python基础-6』if语句, if-else语句 目录: 条件测试 if语句 if-else语句 1. 条件测试 每条if语句的核心都是一个值为True或False的表达式,这种表达式被称为 ...
随机推荐
- HTML——超文本标记语言(表单及12个表单元素)
表单 格式: <form action=" " method="get/post" placehoder=" "></f ...
- Sublime Text3 编辑器我的最爱
简介 Sublime Text 3是一个神奇的文本编辑器,适合程序员.作家.它有很多亮点功能,比如多选择.Go Anything.命令面板.多选择可以让你同时编辑多出代码,Got Anything 像 ...
- JS 数组及函数
数组 定义 Array(1,3.14,"aa") 给数据 Array(5) 给长度 [1 ...
- [Oracle]同义词(synonym)
(一)同义词的概念 同义词是数据库中表.视图.索引或其他模式对象的别名,与视图相似,同义词不占用实际的存储空间,在数据字典中只存同义词的定义. 在开发数据库时,应尽量避免直接引用表.视图或其他数据库对 ...
- 光环国际的PRINCE2培训时间
一.光环国际的PRINCE2课程安排培训方式: 小班授课,50人为限; 全国网址直播课程,覆盖各个地区学员 精读原理配合独家开发大量实际案例研讨; 从商业战略角度解析PRINCE ...
- iOS 按钮连续提交执行一次(如留言提交,多次拍照问题)
在很多项目中暴力测试时会出现多次点击执行一个方法 可以用下面的语句进行解决 //先将未到时间执行前的任务取消. [[self class] cancelPreviousPerformRequests ...
- POPTEST老李谈JVM、JRE、JDK、java ee sdk with jdk区别
POPTEST老李谈JVM.JRE.JDK.java ee sdk with jdk区别 poptest是国内唯一一家培养测试开发工程师的培训机构,以学员能胜任自动化测试,性能测试,测试工具开发等 ...
- Android中启动页ViewPager和ViewFlipper带指示器
版权声明:本文为博主原创文章,未经博主允许不得转载. 目录(?)[+] 首先我们来分析一下,想要实现启动页的功能,大家第一个想到的就是使用ViewPager,使用ViewPager确实是一种比 ...
- Linux之shell编程条件判断-if,while,for,case
if 语法格式 if condition then statements [elif condition then statements] [else statements ] fi 示例 vi if ...
- Nodejs express 获取url参数,post参数的三种方式
express获取参数有三种方法:官网实例: Checks route params (req.params), ex: /user/:id Checks query string params (r ...