【Python基础】04.运算符(超详细)

        从上一节可以知道,表达式是运算符(operator)和操作数(operand)所构成的序列。而运算符的功能是完成某件事,它们是由像+这样的符号或者其它特定的关键字表示。运算符又分为算术运算符、赋值运算符、比较运算符、逻辑运算符、位运算符、成员运算符和身份运算符。下面将进行一一的讲解。

1 算术运算符

在这里插入图片描述
例如:

>>>1+1                        #两个数字的相加
2
>>>'Hello'+' '+'World'        #两个字符串的相加
'Hello World'
>>>5-2                        #两个数相减
3
>>>2*3                        #两个数相乘
6
>>>'abc'*2                    #字符串和数字(正整数)的相乘
'abcabc'
>>>8/2                        #两个数相除,结果为浮点数
4.0
>>>7//2                       #整除,向下取正
3
>>>-7//2                      #整除,向下取正
-4
>>>7%2                        #取模
1
>>>2**3                       #幂运算
8
>>>25**0.5                    #开平方
5

2 赋值运算符

在这里插入图片描述

3 比较运算符

比较运算符用来比较两个值之间的关系,返回一个布尔值。如果关系成立,返回True,否则返回False。
在这里插入图片描述

  • 如果比较的是字符串,则是对ASCII码值大小的比较,比较方法为对位比较。
    例如:
>>>'c'>'a'        #比较c和a对应的ASCII码值
True
>>>'ab'>'b'       #对位比较,比较a和b对应的ASCII码值
False
>>> 'bc'>'ad'     #对位比较,仅比较两个字符串的第一位字符对应的ASCII码值即可
True
>>> 'ab'>'ac'     #对位比较,两个字符串的第一位字符相等,则比较b和c对应的ASCII码值
False
>>>'ax'<'xa'      #对位比较,仅比较两个字符串的第一位字符对应的ASCII码值即可
True

对位比较的图解:
在这里插入图片描述
首先将两个字符串的第一位字符的ASCII值进行比较,若不相等,则按照比较结果输出True或者False,后面的字符无需考虑;若相等,则比较两个字符串的第二位字符的ASCII值,依此类推。

通过函数ord()可获得对应字符的ASCII码值;通过函数chr()可获得ASCII码值对应的字符。

4 逻辑运算符

Python 语言支持逻辑运算符,以下假设变量 a 为 10 , b 为 20:
在这里插入图片描述

5 位运算符

按位运算符是把数字看作二进制来进行计算的。Python中的按位运算法则如下:
下表中变量 a 为 60,b 为 13二进制格式如下:

a=0011 1100
b=0000 1101

在这里插入图片描述

6 成员运算符

除了以上的一些运算符之外,Python还支持成员运算符,测试实例中包含了一系列的成员,包括字符串,列表或元组。
在这里插入图片描述

7 身份运算符

用于比较两个对象 A 和 B 的存储单元是否一致,即判断两个标识符 A 和 B 是不是引用自一个对象。
在这里插入图片描述

通过id() 函数可以获取对象的内存地址。

运算符 is 与 == 有什么区别?

is比较的是两个对象的id值是否相等,也就是比较俩对象是否为同一个实例对象,是否指向同一个内存地址。
==比较的是两个对象的内容是否相等,默认会调用对象的_eq_()方法。

知道了is和==的区别之后,可以去了解Python中整数比较有一些坑。

8 其它(三元运算符)

8.1 三元运算符的语法

三元运算符又称三目运算符或条件运算符。三元运算符就是在对变量进行赋值的时候,先加以判断,然后再进行赋值。下面先以一个具体的例子切入。假设现在有两个数字,我们希望获得其中较大的一个,那么可以使用 if else 语句,例如:

if a>b:
    max = a;
else:
    max = b;

但是 Python 提供了一种更加简洁的写法,如下所示:

max = a if a>b else b

这是一种类似于其它编程语言中三目运算符? :的写法。Python 是一种极简主义的编程语言,它没有引入? :这个新的运算符,而是使用已有的 if else 关键字来实现相同的功能。
使用 if else 实现三元运算符的格式如下:

exp1 if contion else exp2

condition 是判断条件,exp1 和 exp2 是两个表达式。如果 condition 成立(结果为真),就执行 exp1,并把 exp1 的结果作为整个表达式的结果;如果 condition 不成立(结果为假),就执行 exp2,并把 exp2 的结果作为整个表达式的结果。

前面的语句max = a if a>b else b的含义是:

  • 如果 a>b 成立,就把 a 作为整个表达式的值,并赋给变量 max;
  • 如果 a>b 不成立,就把 b 作为整个表达式的值,并赋给变量 max。

8.2 三目运算符的嵌套

Python 三目运算符支持嵌套,如此可以构成更加复杂的表达式。在嵌套时需要注意 if 和 else 的配对,例如:

a if a>b else c if c>d else d

应该理解为:

a if a>b else ( c if c>d else d )

【实例】使用 Python 三目运算符判断三个数字的关系:

a = int(input('please enter the firest number:'))
b = int(input('please enter the second number:'))
c = int(input('please enter the third number:'))
(print('max_num=', a) if(a > c) else print('max_num=', c))if(a > b) else (print('max_num=', b) if a > c else print('max_num=', c))

9 运算符的优先级

9.1 优先级顺序

在这里插入图片描述

9.2 运算符的结合性

  • 所谓结合性,就是当一个表达式中出现多个优先级相同的运算符时,先执行哪个运算符:先执行左边的叫左结合性,先执行右边的叫右结合性。
  • Python 中大部分运算符都具有左结合性,也就是从左到右执行;只有单目运算符(例如 not 逻辑非运算符)、赋值运算符和三目运算符例外,它们具有右结合性,也就是从右向左执行。上表中列出了所有 Python 运算符的结合性。

最后通过一副图来概括本节内容。
在这里插入图片描述

推荐阅读:
【Python基础】03.基本概念(表达式、语句等)以及标识符和关键字
【Python基础】02.Python环境搭建以及PyCharm的安装和配置
【Python基础】01.Python简介
  计算机与编程基础知识

参考链接:
http://blog.itpub.net/26736162/viewspace-2305456/
http://c.biancheng.net/view/2187.html

未完待续…

发布了5 篇原创文章 · 获赞 3 · 访问量 319

猜你喜欢

转载自blog.csdn.net/qq_37572548/article/details/105493166
今日推荐