Python教程之基本运算符的使用(下)
作者:海拥 发布时间:2021-04-29 20:32:37
运算符的优先级和关联性
运算符的优先级和关联性: 运算符的优先级和关联性决定了运算符的优先级。
运算符优先级
这用于具有多个具有不同优先级的运算符的表达式中,以确定首先执行哪个操作。
示例:运算符优先级
# 运算符优先级示例
# '+' 和 '*' 的优先级
expr = 10 + 20 * 30
print(expr)
# 'or' 和 'and' 的优先级
name = "Alex"
age = 0
if name == "Alex" or name == "John" and age >= 2:
print("Hello! Welcome.")
else:
print("Good Bye!!")
输出
610
Hello! Welcome.
运算符关联性
如果一个表达式包含两个或多个具有相同优先级的运算符,则使用运算符关联性来确定。它可以是从左到右或从右到左。
示例:运算符关联性
# 运算符关联性示例
# 左右关联性 100 / 10 * 10 计算为 (100 / 10) * 10 而不是 100 / (10 * 10)
print(100 / 10 * 10)
# 左右关联性 5 - 2 + 3 计算为 (5 - 2) + 3 而不是 5 - (2 + 3)
print(5 - 2 + 3)
# 左右结合性
print(5 - (2 + 3))
# 左右关联性 2 ** 3 ** 2 计算为 2 ** (3 ** 2) 而不是 (2 ** 3) ** 2
print(2 ** 3 ** 2)
输出
100.0
6
0
512
Python 运算符测验
除法运算符允许您将两个数字相除并返回一个商,即左边的第一个数字或数字除以右边的第二个数字或数字并返回商。
除法运算符有两种类型:
浮动划分
此运算符返回的商始终是浮点数,无论两个数字是否为整数。例如:
>>>5/5
1.0
>>>10/2
5.0
>>>-10/2
-5.0
>>>20.0/2
10.0
整数除法(地板除法)
此运算符返回的商取决于传递的参数。如果任何数字是浮点数,它以浮点数返回输出。它也被称为下限除法,因为如果任何数字为负数,则输出将被下限。例如:
>>>5//5
1
>>>3//2
1
>>>10//3
3
考虑 Python 中的以下语句。
# A Python program to demonstrate the use of
# "//" for integers
print (5//2)
print (-5//2)
输出:
2
-3
第一个输出很好,但如果我们来到 Java/C++ 世界,第二个可能会感到惊讶。在 Python 中,“//”运算符用作整数和浮点参数的下除法。但是,除法运算符“/”总是返回一个浮点值。
注意: “//”运算符用于返回小于或等于指定表达式或值的最接近的整数值。所以从上面的代码中,5//2 返回 2。你知道 5/2 是 2.5,小于或等于最接近的整数是 2[5//2]。(它与正常的数学相反,在正常数学中,该值为 3)。
例子
# 一个 Python 程序,用于演示使用“/”表示浮点数
print (5.0/2)
print (-5.0/2)
输出
2.5
-2.5
真正的楼层除法运算符是“//”。它返回整数和浮点参数的下限值。
# 一个 Python 程序,用于演示整数和浮点数的“//”的使用
print (5//2)
print (-5//2)
print (5.0//2)
print (-5.0//2)
输出
2
-3
2.0
-3.0
三元运算符
三元运算符也称为条件表达式,是根据条件为真或假来评估某些内容的运算符。它在2.5版本中被添加到 Python 中。
它只是允许在单行中测试条件,替换多行 if-else,使代码紧凑。
语法 :
[on_true] 如果 [表达式] 否则 [on_false]
使用三元运算符的简单方法:
# 演示条件运算符的程序
a, b = 10, 20
# 如果 a < b 则复制 a 的最小值,否则复制 b
min = a if a < b else b
print(min)
输出:
10
使用元组、字典和 lambda 的直接方法
# 演示三元运算符的 Python 程序
a, b = 10, 20
# 使用元组选择一个项目 (if_test_false,if_test_true)[test] 如果 [a<b] 为真则返回 1,因此索引为 1 的元素将打印,否则如果 [a<b] 为假则返回 0,因此元素为 0 索引将打印
print( (b, a) [a < b] )
# 如果 [a < b] 为真,则使用 Dictionary 选择项目,然后打印 True 键的值,否则,如果 [a<b] 为假,则打印 False 键的值
print({True: a, False: b} [a < b])
# lambda 比上述两种方法更有效,因为在 lambda 中,我们确保只评估一个表达式,这与 tuple 和 Dictionary 不同
print((lambda: b, lambda: a)[a < b]())
输出:
10
10
10
三元运算符可以写成嵌套的 if-else:
# 演示嵌套三元运算符的 Python 程序
a, b = 10, 20
print ("Both a and b are equal" if a == b else "a is greater than b"
if a > b else "b is greater than a")
上面的方法可以写成:
# 演示嵌套三元运算符的 Python 程序
a, b = 10, 20
if a != b:
if a > b:
print("a is greater than b")
else:
print("b is greater than a")
else:
print("Both a and b are equal")
输出:
b is greater than a
要在三元运算符中使用打印功能,例如:-
示例:在 python3 中使用三元运算符查找 2 中的较大数
a=5
b=7
# [statement_on_True] if [condition] else [statement_on_false]
print(a,"is greater") if (a>b) else print(b,"is Greater")
输出:
7 is Greater
要点
首先评估给定条件 (a < b),然后根据条件返回的布尔值返回 a 或 b
运算符中参数的顺序与其他语言
在所有 Python 操作中,条件表达式的优先级最低。
当三元运算符不存在 时,在 2.5 之前使用的方法在如下给出的表达式中,解释器检查表达式是否为真,然后评估 on_true,否则评估 on_false。
语法 :
'''条件为真时,不执行表达式[on_false],返回“True and [on_true]”的值。 返回“False or [on_false]”的其他值。注意“True and x”等于x。 “假或 x”等于 x。 '''
[表达式] 和 [on_true] 或 [on_false]
例子 :
# 演示条件运算符的程序
a, b = 10, 20
# 如果 a 小于 b,则分配 a,否则分配 b(注意:如果 a 为 0,则它不起作用)。
min = a < b and a or b
print(min)
输出:
10
注意: 此方法的唯一缺点是on_true 不能为零或 False。如果发生这种情况,将始终评估 on_false。原因是如果表达式为真,解释器将检查 on_true,如果它为零或假,这将迫使解释器检查 on_false 以给出整个表达式的最终结果。
来源:https://juejin.cn/post/7140170602996269086
猜你喜欢
- 如图输入如下命令python manage.py startapp apitest添加应用到 autotest项目项目下在settings.
- 熟悉 C 语言的小伙伴一定对 goto 语句不陌生,它可以在代码之间随意的跳来跳去,但是好多老鸟都告诫大家,不要使用 goto,因为 got
- *args和 **kwargs是常用的两个参数*args:用于接受多余的未命名的参数,元组类型。**kwargs:用于接受形参的命名参数,字
- django-mdeditorGithub地址:https://github.com/pylixm/django-mdeditor 欢迎试用
- 本文实例讲述了Python处理命令行参数模块optpars用法。分享给大家供大家参考,具体如下:optpars是python中用来处理命令行
- SQL防注入代码一<?php /** * 防sql注入 * @author: zhuyubing@gmail.com * */ /**
- 1、工作流程步骤(1)用spawn来执行一个程序;(2)用expect方法来等待指定的关键字,这个关键字是被执行的程序打印到标准输出上面的;
- ASP与MySQL的连接ASP和MySQL连接目前有两种方法:一种方法是使用MySQLX之类的组件,不过这种连接方法需要支付一定的费用;另外
- “博客就像一本书”这话其实几个月前深圳FB时就有扯到,这也不是什么新概念,也许本身就应该是这样。打个比方,当你拿到一本未看过的书时,理论上你
- 概述从今天开始, 小白我将带领大家一起来补充一下 数据库的知识.自连接自连接 (Self Join) 是一种特殊的表连接. 自连接指相互连接
- 我在Web服务器端安装了Web Server IIS4.0、Oracle Net8 for Client,并创建好了和Oracle8数据库的
- 假如读者已经熟悉了ASP 2.0,并正在寻找3.0版本中的实际改变的列表,那么将在下面发现这些信息。假如读者是一个ASP的初学者,可以越过本
- 这篇文章主要介绍了如何使用Python抓取网页tag操作,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的
- 在WEB2.0这个词未出现之前,是没有所谓的WEB1.0之说的,那时候的互联网也是没有时代之分的,能上的网站不多,值得上的网站更不多,很多的
- 代码如下:<% sql="select * from serr where
- 导语:哈喽,哈喽~大家有没有遇到过这种情况,手机用着用着没有内存了,一到设置里面一看。微信和 QQ 10G!啊这。。。。。就离谱!好说,好说
- 在使用操作XML文件时,我们可以使用Load方法直接加载xml文件即可,在ie和ff下通用。但是是XML字符串,则在两种浏览器下就会有所不同
- 写完这个项目后,导师说这个你完全可以当作毕业项目使用了,写的很全,很多的都设计考虑周全,但我的脚步绝不止于现在,我想要的是星辰大海!与君共勉
- 1.语法及用法(1)语法:str.endswith(suffix[,start][,end])str:字符串,待判断字符串suffix:后缀
- 一、Tkinter的介绍和简单教程Tkinter 是 Python 的标准 GUI 库。Python 使用 Tkinter 可以快速的创建