首页 > 编程语言 >【8.0】Python基础之基本运算符

【8.0】Python基础之基本运算符

时间:2023-11-18 15:26:00浏览次数:38  
标签:8.0 False Python 运算符 result print True 赋值

【一】参考网站

【二】算数运算符

  • python支持的算数运算符与数学上计算的符号使用是一致的
    • 我们以x=9,y=2为例来依次介绍它们

img

【1】加法运算符 +

x = 9
y = 2
result = x + y
print(result)  # 输出:11

【2】减法运算符 -

x = 9
y = 2
result = x - y
print(result)  # 输出:7

【3】乘法运算符 *

x = 9
y = 2
result = x * y
print(result)  # 输出:18

【4】除法运算符 /

x = 9
y = 2
result = x / y
print(result)  # 输出:4.5

【5】取整除运算符 //

x = 9
y = 2
result = x // y
print(result)  # 输出:4

【6】求余数运算符 %

x = 9
y = 2
result = x % y
print(result)  # 输出:1

【7】幂运算符 **

x = 9
y = 2
result = x ** y
print(result)  # 输出:81

【三】比较运算符

  • 比较运算用来对两个值进行比较,返回的是布尔值True或False
    • 我们以x=9,y=2为例来依次介绍它们

img

【1】相等运算符 ==

x = 9
y = 2
result = x == y
print(result)  # 输出:False

【2】不等运算符 !=

x = 9
y = 2
result = x != y
print(result)  # 输出:True

【3】大于运算符 >

x = 9
y = 2
result = x > y
print(result)  # 输出:True

【4】小于运算符 <

x = 9
y = 2
result = x < y
print(result)  # 输出:False

【5】大于等于运算符 >=

x = 9
y = 2
result = x >= y
print(result)  # 输出:True

【6】小于等于运算符 <=

x = 9
y = 2
result = x <= y
print(result)  # 输出:False

【四】赋值运算符

  • python语法中除了有=号这种简单的赋值运算外
  • 还支持增量赋值、链式赋值、交叉赋值、解压赋值
  • 这些赋值运算符存在的意义都是为了让我们的代码看起来更加精简。
    • 我们以x=9,y=2为例先来介绍一下增量赋值

img

【1】增量赋值

(1)介绍

  • 增量赋值运算符用于将变量与右侧的表达式相结合,并将结果赋值给变量。
  • 这样可以简化表达式,提高代码的可读性。

(2)使用

x = 9
y = 2

# 等同于 x = x + y
x += y
print(x)  # 输出:11
  • 在上述例子中,x += y 等同于 x = x + y,它表示将变量 x 的值与 y 相加,并将结果赋值给 x

【2】链式赋值

(1)介绍

  • 链式赋值允许在单一语句中给多个变量赋值。这样可以减少代码行数,提高代码的紧凑性。

(2)使用

a = b = c = 5
print(a, b, c)  # 输出:5 5 5
  • 在上述例子中,a = b = c = 5 表示同时给变量 abc 赋值为 5。

【3】交叉赋值

(1)介绍

  • 交叉赋值允许在不使用临时变量的情况下,交换两个变量的值。

(2)使用

x = 9
y = 2

# 交叉赋值
x, y = y, x
print(x, y)  # 输出:2 9
  • 在上述例子中,x, y = y, x 表示将变量 x 的值赋给 y,同时将变量 y 的值赋给 x,实现了两个变量值的交换。

【4】解压赋值

(1)介绍

  • 解压赋值允许将一个可迭代对象(如列表、元组等)的值解压到多个变量中,以便进一步使用。

(2)使用

coordinates = (3, 5)

# 解压赋值
x, y = coordinates
print(x, y)  # 输出:3 5
  • 在上述例子中,x, y = coordinates 表示将元组 coordinates 中的值解压到变量 xy 中,以便分别使用。

【五】逻辑运算符

  • 逻辑运算符用于连接多个条件,进行关联判断,并返回布尔值 TrueFalse
  • 常用的逻辑运算符包括与(and)、或(or)、非(not)。

img

【1】与运算符 (and)

  • 与运算符 and 在两个条件都为 True 时,返回 True;如果其中一个条件为 False,则返回 False
x = 5
y = 10

result = (x > 0) and (y > 0)
print(result)  # 输出:True
  • 在上述例子中,(x > 0) and (y > 0) 表示同时判断 x > 0y > 0 是否都为 True,因为两个条件都满足,所以结果为 True

【2】或运算符 (or)

  • 或运算符 or 在两个条件中至少有一个为 True 时,返回 True;如果两个条件都为 False,则返回 False
x = -5
y = 10

result = (x > 0) or (y > 0)
print(result)  # 输出:True
  • 在上述例子中,(x > 0) or (y > 0) 表示判断 x > 0 或者 y > 0 至少有一个条件为 True,因为 y > 0True,所以结果为 True

【3】非运算符 (not)

  • 非运算符 not 用于对一个条件取反,如果条件为 True,则返回 False;如果条件为 False,则返回 True
x = 5

result = not (x > 0)
print(result)  # 输出:False
  • 在上述例子中,not (x > 0) 表示对条件 x > 0 取反,因为 x > 0True,所以结果为 False

【4】连续问题

(1)连续多个 and

  • 在连续多个 and 运算中,如果其中一个条件为 False,则整个表达式的结果为 False,即使后面的条件都为 True
x = 5
y = 10
z = 15

result = (x > 0) and (y > 0) and (z > 0)
print(result)  # 输出:True
  • 在上述例子中,(x > 0) and (y > 0) and (z > 0) 表示同时判断 x > 0y > 0z > 0 是否都为 True,因为三个条件都满足,所以结果为 True

(2)连续多个 or

  • 在连续多个 or 运算中,如果其中一个条件为 True,则整个表达式的结果为 True,即使后面的条件都为 False
x = 5
y = 10
z = -15

result = (x > 0) or (y > 0) or (z > 0)
print(result)  # 输出:True
  • 在上述例子中,(x > 0) or (y > 0) or (z > 0) 表示判断 x > 0y > 0z > 0 至少有一个条件为 True,因为 x > 0True,所以结果为 True

【5】优先级 not>and>or

  • 在逻辑运算中,not 的优先级最高,其次是 and,最后是 or
  • 当表达式中同时包含这三种运算符时,not 会首先被计算,然后是 and,最后是 or

(1)优先级关系

print(3 > 4 and 4 > 3 or 1 == 3 and 'x' == 'x' or 3 > 3)
# False

(2)区分版块

  • (1) not的优先级最高,就是把紧跟其后的那个条件结果取反,所以not与紧跟其后的条件不可分割
  • (2) 如果语句中全部是用and连接,或者全部用or连接,那么按照从左到右的顺序依次计算即可
  • (3) 如果语句中既有and也有or,那么先用括号把and的左右两个条件给括起来,然后再进行运算
print((3 > 4 and 4 > 3) or (1 == 3 and 'x' == 'x') or 3 > 3)
# False

(3)短路运算

  • 逻辑运算的结果一旦可以确定
  • 那么就以当前处计算到的值作为最终结果返回
>>> 10 and 0 or '' and 0 or 'abc' or 'egon' == 'dsb' and 333 or 10 > 4
	我们用括号来明确一下优先级
>>> (10 and 0) or ('' and 0) or 'abc' or ('egon' == 'dsb' and 333) or 10 > 4
短路:       0      ''            'abc'                    
            假     假              真

返回:                            'abc'

(4)短路运算面试题

1 or 3
1

1 and 3
3

0 and 2 and 1
0

0 and 2 or 1
1

0 and 2 or 1 or 4
1

0 or False and 1
False

【六】成员运算符

  • 成员运算符用于测试序列是否包含特定的元素。可以用于字符串、列表、元组等序列类型的数据。

img

【1】in运算符

  • 如果在指定的序列中找到值返回 True,否则返回 False。
fruits = ["apple", "banana", "cherry"]

print("banana" in fruits)  # True
print("orange" in fruits)  # False

【2】not in运算符

  • 如果在指定的序列中没有找到值返回 True,否则返回 False。
fruits = ["apple", "banana", "cherry"]

print("banana" not in fruits)  # False
print("orange" not in fruits)  # True
  • 这两个运算符可以用于字符串、列表、元组等序列类型。

【3】小结

print(not 'lili' in ['jack','tom','robin'])
# True

print('lili' not in ['jack','tom','robin'])
# True
  • 注意:虽然下述两种判断可以达到相同的效果,但我们推荐使用第二种格式,因为not in语义更加明确

【七】身份运算符

  • 身份运算符用于比较对象的内存地址,即判断两个对象是否指向同一块内存地址。

img

【1】is运算符

  • 如果两个变量引用同一个对象,则返回 True,否则返回 False。
a = [1, 2, 3]
b = a
c = [1, 2, 3]

print(a is b)  # True
print(a is c)  # False

【2】is not运算符

  • 如果两个变量引用的不是同一个对象,则返回 True,否则返回 False。
a = [1, 2, 3]
b = a
c = [1, 2, 3]

print(a is not b)  # False
print(a is not c)  # True
  • 这两个运算符主要用于检查对象的标识,即它们是否指向相同的内存地址。

【补充】==is

  • == 双等号比较的是value是否相等
  • is用于比较两个对象的标识id(内存地址)是否相同
  • 在实际应用中,特别是对于可变对象,==通常更适合用于比较值,而is更适合用于比较对象的身份。
  • id相同,内存地址必定相同,意味着type和value必定相同
  • value相同type肯定相同,但id可能不同
x = 'Info Tony:18'
y = 'Info Tony:18'
print(id(x), id(y))  # x与y的id不同,但是二者的值相同
# 3158064309168 3158064309168

print(x == y)  # 等号比较的是value
# True

print(type(x), type(y))  # 值相同type肯定相同
# (<class 'str'>, <class 'str'>)

print(x is y)  # is比较的是id,x与y的值相等但id可以不同
# True

标签:8.0,False,Python,运算符,result,print,True,赋值
From: https://www.cnblogs.com/dream-ze/p/17840562.html

相关文章

  • 【7.0】Python基础之程序与用户交互
    【一】什么是与用户交互交互的本质就是输入、输出用户交互就是人往计算机中input/输入数据,计算机print/输出结果【二】为什么要与用户交互为了让计算机能够像人一样与用户沟通交流过去我们去银行取钱,用户需要把帐号密码告诉柜员而现在,柜员被ATM机取代ATM机就是一台......
  • 【11.0】Python基础之可变和不可变数据类型
    【一】堆【0】引入https://www.hello-algo.com/chapter_heap/堆就像是山川的峰峦,它们层叠起伏、形态各异。每一座山峰都有其高低之分,而最高的山峰总是最先映入眼帘。【1】堆的介绍「堆heap」是一种满足特定条件的完全二叉树,主要可分为图8-1所示的两种类型。......
  • 【10.0】Python基础之数据类型的内置方法
    【一】数据类型内置方法介绍数据类型是用来记录事物状态的,而事物的状态是不断变化的(如:一个人年龄的增长(操作int类型)单个人名的修改(操作str类型),学生列表中增加学生(操作list类型)等),这意味着我们在开发程序时需要频繁对数据进行操作为了提升我们的开发效率python针对这些常用......
  • 【9.0】Python基础之流程控制语句
    【一】流程控制语句介绍程序是由语句构成,而流程控制语句是用来控制程序中每条语句执行顺序的语句。可以通过控制语句实现更丰富的逻辑以及更强大的功能。几乎所有编程语言都有流程控制语句,功能也都基本相似。其流程控制方式有顺序结构分支结构循环结构这里最简单......
  • MySQL 8.0 主从复制
    主从复制1.主从复制概述1.1如何提升数据库的并发能力在实际工作中,我们常常将redis作为缓冲与MySQL配合来使用,当有请求的时候,首先会从缓存中进行查找,如果存在就直接取出。如果不存在再访问数据库,这样就提升了读取的效率,也减少了堆后端数据库的访问压力。redis的缓存架......
  • Python复制表格文件的指定行:不同的行复制不同次数
      本文介绍基于Python语言,读取Excel表格文件数据,并将其中符合我们特定要求的那一行加以复制指定的次数,而不符合要求的那一行则不复制;并将所得结果保存为新的Excel表格文件的方法。  这里需要说明,在我们之前的文章Python自动复制表格文件中指定的数据行的方法中,也介绍过实现类......
  • python 根据绝对路径关闭进程
    importosimportpsutil#如果未知路径且写入了配置环境#os.system("taskkill/f/imexcel.exe&taskkill/f/imwps.exe")#cmdtaskkill直接输入不需加双引号#cmdtaskkill无法根据绝对路径关闭程序无论有没有双引号(无效查询或没有找到进程)#True,False,N......
  • 根据绝对路径 python 后台打开程序
    importsubprocess#不适用于关闭程序/进程#subprocess.run#等候运行结束#returncode=0,stdout='',stderr=''#后台运行,避免阻塞#避免shell注入gongji#os.system需要双引号(以避免空格),subprocess不需要#cmd直接输入路径如果存在空格需要双引号#retur......
  • Python如何使用Networkx实现复杂的人物关系图?
    (Python如何使用Networkx实现复杂的人物关系图?)1简单引入日常工作、生活中我们经常会遇到一些复杂的事务关系,比如人物关系,那如何才能清楚直观的看清楚这些任务关系呢?比如我们从网上搜索1个人物关系图,大家看看:声明:以下图片来源于网络,如果涉及版权问题,请联系作者删除。本文仅......
  • Conda管理Python版本
    查看Python版本查看当前环境的Python版本condaactivate&&python-V查看指定环境condaactivatetest&&python-V创建Python环境先搜索conda有哪些python版本condasearch--full--namepython根据搜索出来的版本安装condacreate--nametestpython=3.9.7或......