Python基础之基本运算符

news/2024/10/4 11:24:47

【一】参考网站

菜鸟教程:https://www.runoob.com/python/python-operators.html

【二】算数运算符

  • python支持的算数运算符与数学的运算符号是一样的

# 【1】加法运算符 
a = 3
b = 4
c = a + b
print(c)  # 输出 7# 【2】减法运算符 
a = 3
b = 4
c = a - b
print(c)  # 输出 -1# 【3】乘法运算符 
a = 3
b = 4
c = a * b
print(c)  # 输出 12# 【4】除法运算符 
a = 3
b = 4
c = a / b
print(c)  # 输出 0.75# 【5】取整除运算符 
a = 3
b = 4
c = a // b
print(c)  # 输出 0# 【6】求余数运算符 
a = 3
b = 4
c = a % b
print(c) # 输出 3# 【7】幂运算符 
a = 3
b = 4
c = a ** b
print(c)  # 输出 81

【三】比较运算符

  • 比较运算用来对两个值进行比较,返回值是True或False

#【1】相等运算符 
a = 3
b = 4
c = a == b
print(c)  # 输出:False#【2】不等运算符 
a = 3
b = 4
c = a != b
print(c) # 输出:True#【3】大于运算符 
a = 3
b = 4
c = a > b
print(c) # 输出:False#【4】小于运算符 
a = 3
b = 4
c = a < b
print(c)  # 输出:True#【5】大于等于运算符 
a = 3
b = 4
c = a >= b
print(c) # 输出:False#【6】小于等于运算符 
a = 3
b = 4
c = a <= b
print(c)  # 输出:True

【四】赋值运算符

  • 赋值运算还有增量赋值、链式赋值、交叉赋值、解压赋值

#【1】增量赋值
a = 2
b = 3
a += b
print(a)  # 输出:5
# x += y 等同于 x = x + y,相当于将变量 a 的值与 b 相加,并将结果赋值给 a
#【2】链式赋值
a = b = c = 1
print(a, b, c)  # 输出:1 1 1
# a = b = c = 5 相当于同时给变量 a、b、c 赋值为 1
#【3】交叉赋值
a = 2
b = 3
a, b = b, a
print(a, b)  # 输出:3 2
# a, b = b, a 表示将变量 a 的值赋给 b,同时将变量 b 的值赋给 a,把两个变量值的交换了
#【4】解压赋值
c = (2, 3)
a, b = c
print(a, b)  # 输出:2 3

【五】逻辑运算符

  • 逻辑运算符用于连接多个条件,进行关联判断,并返回 TrueFalse
  • 常用的逻辑运算符有 and、or、not

# 【1】与运算符# 与运算符 and 在两个条件都为 True时,返回True,如果其中一个条件为False,则返回False
a = 3
b = 6
c = (a > 0) and (b > 0)
print(c)  # 输出:True# 【2】或运算符 
# 或运算符 or在两个条件中至少有一个为True时,返回True,如果两个条件都为False,则返回False
a = 3
b = 6
c = (a > 0) or (b > 0)
print(c)  # 输出:True# 【3】非运算符
#非运算符 not用于对一个条件取反,如果条件为True,则返回False,如果条件为False,则返回True。
a = 3
c = not (a > 0)
print(c)  # 输出:False# 【4】连续问题
#(1)连续多个and
# 在连续多个 and运算中,如果其中一个条件为False,则整个表达式的结果为False,即使后面的条件都为 True
a = 3
b = 5
c = 8
d = (a > 0) and (b > 0) and (c > 0)
print(d)  # 输出:True
#(2)连续多个or
#在连续多个 or运算中,如果其中一个条件为True,则整个表达式的结果为True,即使后面的条件都为False
a = 3
b = 5
c = 8
d = (a > 0) or (b > 0) or (c > 0)
print(d)  # 输出:True# 【5】优先级 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
11 and 3
30 and 2 and 1
00 and 2 or 1
10 and 2 or 1 or 4
10 or False and 1
False

【六】成员运算符

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

# 【1】in运算符
# 如果在指定的序列中找到值返回 True,否则返回 False。
number = ["one", "two", "three"]
print("one" in number)  # True
print("six" in number)  # False# 【2】not in运算符
# 如果在指定的序列中没有找到值返回 True,否则返回 False。
number = ["one", "two", "three"]
print("one" not in number)  # False
print("six" not in number)   # True有两种判断方式,我们常用的是第二种
print(not 'six' in ["one", "two", "three"])
# True
print('six' not in ["one", "two", "three"])
# True

【七】身份运算符

  • 身份运算符用于比较对象的内存地址,就是两个对象是否指向相同的内存地址。

# 【1】is运算符
# 如果两个变量引用同一个对象,则返回 True,否则返回 False。
a = 1
b = a
c = 2
print(a is b)  # True
print(a is c)  # False# 【2】is not运算符
# 如果两个变量引用的不是同一个对象,则返回 True,否则返回 False。
a = 1
b = a
c = 2
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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.ryyt.cn/news/28954.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈,一经查实,立即删除!

相关文章

struct:Python二进制数据结构

在C/C++语言中,struct被称为结构体。而在Python中,struct是一个专门的库,用于处理字节串与原生Python数据结构类型之间的转换。 本篇,将详细介绍二进制数据结构struct的使用方式。 函数与Struct类 struct库包含了一组处理结构值得模块级函数,以及一个Struct类。格式指示符…

NumPy:Python科学计算基础包

NumPy 是 Python 科学计算的基础包,几乎所有用 Python 工作的科学家都利用了的强大功能。此外,它也广泛应用在开源的项目中,如:Pandas、Seaborn、Matplotlib、scikit-learn等。Numpy全称Numerical Python。它提供了2种基本的对象:ndarray与ufunc。 ndarray是存储单一数据的…

Python 如何优雅的操作 PyMySQL

一、PyMysql 在使用Python操作MySQL数据过的过程中,基本的增删改查操作如何更加高效优雅的执行。这里将以PyMySQL为例,介绍一下如何使用Python操作数据库。 Python对MySQL数据库进行操作,基本思路是先连接数据库 Connection 对象,建立游标 Cursor 对象,然后执行SQL语句对数…

7个鲜为人知的 Python 好库!

https://mp.weixin.qq.com/s/eY1QXpwbTNSOd08Wfpg4sQ①-PivotTableJS 无需任何代码就可以在Jupyter Notebook中交互式地分析数据。 https://pypi.org/project/pivottablejs/ ②-PyTube 只需5行代码就可以下载油管视频。可能这个是国内用户最用不到的Python库了。https://pytube…

C#多选下拉菜单自定义控件

C#在winform项目中 多选下拉菜单自定义控件 。 由 ComboBox 和 CheckedListBox 组合形成。 效果: 自定义控件代码 MultiComboBox.csusing System; using System.Collections.Generic; using System.ComponentModel; using System.Drawing; using System.Data; using System.L…

java.lang.NoSuchMethodError的不明崩溃问题

1)java.lang.NoSuchMethodError的不明崩溃问题2)微信小游戏有可行的分析Mono内存的方法吗3)游戏运行中,从对象池里拿Item时动态设置物体锚点,导致DC成倍增加4)Scriptable Build Pipeline打包Scritptable Object报错这是第384篇UWA技术知识分享的推送,精选了UWA社区的热门…

Cannot resolve method and(java.util.function.Predicatejava.lang.String)

springboot整合knife4j报错,提示找不到该方法,用的knife4j依赖是最新版本解决方法:将knife4j版本进行降级处理,这里采用2.0.4

单体到微服务架构的涅槃重生之路?

在技术演进的历史长河中,单体架构曾是众多项目的起点,但随着业务需求日益复杂,微服务架构凭借其灵活性和可扩展性逐渐成为新宠。行业内对此有着激烈的讨论,尤其是互联网大厂和行业技术大佬们对微服务架构的看法颇具影响力。在技术演进的历史长河中,单体架构曾是众多项目的…