【从零学习python 】07.Python运算符详解:赋值、比较和逻辑运算符

简介: 【从零学习python 】07.Python运算符详解:赋值、比较和逻辑运算符

赋值运算符

基本赋值运算符

运算符 描述 实例
= 赋值运算符 把 = 号右边的结果 赋给 左边的变量,如 num = 1 + 2 * 3,结果num的值为7

单个变量赋值

num = 10
num

同时为多个变量赋值(使用等号连接):

a = b = 4
a
b

多个变量赋值(使用逗号分隔):

num1, f1, str1 = 100, 3.14, "hello"
num1
f1
str1

语法错误,值的个数超过变量的个数,赋值失败:

num1,num2=(1,2,3)

语法错误,变量的个数超过值的个数,赋值失败:

num1,num2,num3,num4=(1,2,3)

复合赋值运算符

运算符 描述 实例
+= 加法赋值运算符 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 = 100
a += 1  # 相当于执行 a = a + 1
a

示例:*=

a = 100
a *= 2  # 相当于执行 a = a * 2
a

示例:*=,运算时,符号右侧的表达式先计算出结果,再与左边变量的值运算

a = 100
a *= 1 + 2  # 相当于执行 a = a * (1+2)
a

注意:赋值运算符是从右往左运算,将等号右边的值赋值给等号左边,所以,等号的左边一定不能是常量或者表达式。

比较运算符

以下假设变量a为10,变量b为20:

运算符 描述 实例
== 等于 - 比较对象是否相等 (a == b) 返回 False
!= 不等于 - 比较两个对象是否不相等 (a != b) 返回 True
<> 不等于 - 比较两个对象是否不相等 (a <> b) 返回 True。这个运算符类似 !=
> 大于 - 返回x是否大于y (a > b) 返回 False
< 小于 - 返回x是否小于y。所有比较运算符返回1表示真,返回0表示假。这分别与特殊的变量True和False等价。 (a < b) 返回 True
>= 大于等于 - 返回x是否大于等于y (a >= b) 返回 False
<= 小于等于 - 返回x是否小于等于y (a <= b) 返回 True

字符串使用比较运算符

数字和字符串做==运算结果是False,除了 == 以外的逻辑运算时,会直接报错。

str1 == a
• 1

如果是两个字符串进行比较,会将每个字符都转换成对应的编码,然后逐一进行对比。

str1 = 'a'
str2 = 'ABC'
# 将字符转换成为对应的编码  a对应的编码是97,A对应的编码是65
str1 > str2

逻辑运算符

运算符 逻辑表达式 描述
and x and y 只要有一个运算数是False,结果就是False;只有所有的运算数都为True时,结果才是True。做取值运算时,取第一个为False的值,如果所有的值都为True,取最后一个值。
or x or y 只要有一个运算数是True,结果就是True;只有所有的运算数都为False时,结果才是False。做取值运算时,取第一个为True的值,如果所有的值都为False,取最后一个值。
not not x 布尔"非" - 如果 x 为 True,返回 False 。如果 x 为 False,它返回 True。

练习:

a = 34
b = 12
print((a > b) and (b > 10) and (a > 30) and (a > 50)) 
print((a > b) and (b > 10) and (a > 30) and (a < 50)) 
print(a and b and 'hello' and 0 and 123)
print(a and b and 'hello' and 123 and 'hi')
print((a > 50) or (b < 10) or a > b or (a == b))
print((a > 50) or (b < 10) or a < b or (a == b))
print(0 or None or a or '')
print(0 or "" or '' or None)

提高:

面试题:一下代码的输出结果是什么,为什么会有这样的输出。

a = 34
a > 10 and print('hello world')
a < 10 and print('hello world')
a >10 or print('你好世界')
a <10 or print('你好世界')

思考:

逻辑运算的短路问题

逻辑与运算和逻辑或运算取值时为什么是那种规则。

相关文章
|
9天前
|
Python 容器
Python学习的自我理解和想法(9)
这是我在B站跟随千锋教育学习Python的第9天,主要学习了赋值、浅拷贝和深拷贝的概念及其底层逻辑。由于开学时间紧张,内容较为简略,但希望能帮助理解这些重要概念。赋值是创建引用,浅拷贝创建新容器但元素仍引用原对象,深拷贝则创建完全独立的新对象。希望对大家有所帮助,欢迎讨论。
|
11天前
|
存储 索引 Python
Python学习的自我理解和想法(6)
这是我在B站千锋教育学习Python的第6天笔记,主要学习了字典的使用方法,包括字典的基本概念、访问、修改、添加、删除元素,以及获取字典信息、遍历字典和合并字典等内容。开学后时间有限,内容较为简略,敬请谅解。
|
14天前
|
程序员 Python
Python学习的自我理解和想法(3)
这是学习Python第三天的内容总结,主要围绕字符串操作展开,包括字符串的提取、分割、合并、替换、判断、编码及格式化输出等,通过B站黑马程序员课程跟随老师实践,非原创代码。
|
11天前
|
Python
Python学习的自我理解和想法(7)
学的是b站的课程(千锋教育),跟老师写程序,不是自创的代码! 今天是学Python的第七天,学的内容是集合。开学了,时间不多,写得不多,见谅。
|
9天前
|
存储 安全 索引
Python学习的自我理解和想法(8)
这是我在B站千锋教育学习Python的第8天,主要内容是元组。元组是一种不可变的序列数据类型,用于存储一组有序的元素。本文介绍了元组的基本操作,包括创建、访问、合并、切片、遍历等,并总结了元组的主要特点,如不可变性、有序性和可作为字典的键。由于开学时间紧张,内容较为简略,望见谅。
|
11天前
|
存储 索引 Python
Python学习的自我理解和想法(4)
今天是学习Python的第四天,主要学习了列表。列表是一种可变序列类型,可以存储任意类型的元素,支持索引和切片操作,并且有丰富的内置方法。主要内容包括列表的入门、关键要点、遍历、合并、判断元素是否存在、切片、添加和删除元素等。通过这些知识点,可以更好地理解和应用列表这一强大的数据结构。
|
11天前
|
索引 Python
Python学习的自我理解和想法(5)
这是我在B站千锋教育学习Python的第五天笔记,主要内容包括列表的操作,如排序(`sort()`、``sorted()``)、翻转(`reverse()`)、获取长度(`len()`)、最大最小值(`max()`、``min()``)、索引(`index()`)、嵌套列表和列表生成(`range`、列表生成式)。通过这些操作,可以更高效地处理数据。希望对大家有所帮助!
|
2月前
|
自然语言处理 Python
【python从入门到精通】-- 第三战:输入输出 运算符
【python从入门到精通】-- 第三战:输入输出 运算符
74 0
【python从入门到精通】-- 第三战:输入输出 运算符
|
7月前
|
Python
Python3从零基础到入门(2)—— 运算符-2
Python3从零基础到入门(2)—— 运算符
Python3从零基础到入门(2)—— 运算符-2
|
7月前
|
Python C语言 存储
Python3从零基础到入门(2)—— 运算符-1
Python3从零基础到入门(2)—— 运算符
Python3从零基础到入门(2)—— 运算符-1