当前位置: 首页 > news >正文

Python 基础语法(二)

  目录

算数运算符

+、-、*、/

%、**、//

关系运算符

==、!=、<、>、<=、>=

小数的比较

逻辑运算符

赋值运算符


         本期继续进行 Python 基本语法的学习。

 算数运算符

        算数运算符主要用于变量之间的算数运算Python 中的算数运算符主要包含,+(加)、-(减)、*(乘) 、/(除)、%(取余)、**(乘方),//(向下取整除法)。

+、-、*、/

        代码如下。

a = 1 + 2 * 8 / 4
print(a)a = (1 + 2) * 3 /4
print(a)

        运行结果如下。

        与 C++ 中的加减乘除一样,Python 中的优先级依然是,先计算乘除后计算加减。但是,如果想让优先级较低的运算符先进行运算,必须使用 () 提升其优先级

        同时,我们通过上述的运行结果可以看出,Python 中的乘法的结果可以是小数,这一点区别于 C++ ,C++ 中乘法的结果一定是满足 同类型的变量/同类型的变量=同类型的变量这一规则。

%、**、//

        代码如下。

a = 10
b = a % 3
print(b)a = 4
b = 4**2
c = 4**0.5
print(b)
print(c)a = 5
b = 5 // 2
c = 5 // -2
print(b)
print(c)

        运行结果如下。

        取模和乘方很简单,这里不做过多阐述,向下取整除法,就是将最终的计算结果向下取整,注意区分正整数和负整数向下取整的方向

关系运算符

        关系运算符主要用于判断变量之间的大小关系,Python 中的关系运算符主要有 ==(等于),!=(不等于),>(大于),<(小于),>=(大于等于),<=(小于等于)

        关系运算符比较之后的结果为 bool 类型,结果之后 true false 两种类型。

==、!=、<、>、<=、>=

        代码如下。

a = 10
b = 20
print(a == b)
print(a != b)
print(a < b)
print(a > b)
print(a <= b)
print(a >= b)a = 'hello'
b = 'ihello'
print(a > b)

        运行结果如下。

        这里需要注意一点,在 Python 中也是支持字符串的比较的,主要是从字符串的第一个字符开始,按照字符的字典序进行比较,从 a~z 的顺序,字母越靠前,字符越大,如果相等就继续判断下一个字符。

        正如上述的 hello ihello,从第一个字符开始进行比较,因为 h i 之前,所以 hi 小,所以 hello 就比 ihello 小。

小数的比较

        在 Python 中,小数的精度会在计算时丢失,所以不能单单的以关系运算符作为大小比较的标准。

        代码如下。

a = 0.1
b = 0.2
print((a + b) == 0.3)
print(a + b)

        代码运行结果如下。

        通过运行结果不难看出,在 Python 0.1 + 0.2 的结果因为精度的丢失,在最终计算出的结果并不是 0.3 ,所以要比较小数的相等,必须手动的指定误差范围,如果两个小数相减之后的结果在误差范围内,我们就认为这两个数相等。

        代码如下。

a = 0.1
b = 0.2
print( -0.000001 < (a + b) - 0.3 < 0.000001 )

        如上代码,在差值设定的范围内,我们就认为两个小数相等。

        运行结果如下。     

逻辑运算符

        Python 也有自己的逻辑运算符,分别为 and(逻辑与) or(逻辑或)not(逻辑反)。

        C++ 逻辑运算符的含义一样,逻辑与为一假则假逻辑或为一真则帧逻辑反则给整个逻辑取反

        代码如下。

a = 1
b = 2
c = 3#逻辑与,都为真则整体为真
print(a < b and b < c)
#逻辑与,一假则假
print(a > b and b < c)
print("---------------------------------------------")
#逻辑或,都为假则整体为假
print(a > b and b > c)
#逻辑或,一真则真
print(a > b or b < c )
print("---------------------------------------------")
#逻辑非,给计算记过取反
print(not a < b)

        代码运行结果如下。

        运行结果符合预期。

赋值运算符

        在 Python 中,赋值运算符与 C++ 中的复制运算符一致,都为 = ,表示将一个常量值赋值给一个变量,或者将一个变量的值赋值给另一个变量。 

        这里一定要区分 === 的区别,= 表示赋值,而 == 为关系运算符,用于判断两个变量的值是否相等

        代码如下。

#语法不允许
1 = 2
#常量赋值给变量
a = 1
#变量赋值给变量
b = 2
a = b

        在 Python 中,支持连续赋值多元赋值,连续赋值可以同时给多个变量赋相同的值,这个多元赋值有什么用呢?

        多元赋值可以用来简化两个变量值交换的代码。

        代码如下。

#连续赋值
c = d = 3
print(c,d)
print("-------------------------------------------------")#多元赋值
e,f = 4,5
print(e,f)
print("-------------------------------------------------")#交换 e 和 f 的值
#传统写法
temp = e
e = f
f = temp
print(e,f)
print("-------------------------------------------------")#多元赋值写法
e,f = f,e
print(e,f)

        我们先让 e f 以传统的方式进行值的交换,然后最终让 e f 以多元赋值的方式进行值的交换。        

        上述代码运行结果如下。

        我们发现,确实通过多元赋值的方法实现了两个变量值的交换,具体的原理简单理解为两个变量同时进行互相赋值。

        在 Python 中,还有 += ,-=,*=,\=、**= 的操作,以 += 为例,其他符号同理,代码如下。

a = 3
print(a)
a += 1
print(a)

        运行结果如下。

        a += 1 ,展开其实就可以理解为 a = a + 1

        在 C++ 中我们学过了自增 ++自减 -- 操作,但是在 Python 中是不支持这样的语法的。

        代码如下。

a = 1
print(a)
++a
print(a)
a++

        代码运行结果如下。

        ++a 表示给 a 连续取了正号,所以最终 a 的值还是 1,但是 a++ 在 Python 中是不支持这种语法的。

        至此,Python基本语法全部学习结束,后续会为大家带来 Python 的进阶语法。

        本期内容到此结束^0^

 

http://www.dtcms.com/a/336313.html

相关文章:

  • Kubernetes存储迁移实战:从NFS到阿里云NAS完整指南
  • 【踩坑笔记】50系显卡适配的 PyTorch 安装
  • XF 306-2025 阻燃耐火电线电缆检测
  • JavaScript 性能优化实战:从评估到落地的全链路指南
  • Docker Compose 安装 Neo4j 的详细步骤
  • 福彩双色球第2025094期号码分析
  • Jenkins - CICD 注入环境变量避免明文密码暴露
  • 用MTEB对Embedding模型进行benchmark
  • Pell数列
  • 基本的设计原则
  • SONiC (4) - redis的介绍以及应用
  • 远程协作绘图:借助 cpolar 内网穿透服务访问 Excalidraw
  • 用PaddleDetection套件训练自己的数据集,PP-YOLO-SOD训练全流程
  • 领域快速入门过程记录之--电力网络
  • ROS常用命令手册
  • # C++ 中的 `string_view` 和 `span`:现代安全视图指南
  • GaussDB常用术语缩写及释义
  • 【Linux】IO多路复用
  • nodejs 错误处理
  • Shell脚本-条件判断相关参数
  • 任务型Agent架构简介
  • JUC并发编程04 - 同步/syn-ed(01)
  • prototype 和 _ _ proto _ _的关联
  • 计算机网络 OSI 七层模型和 TCP 五层模型
  • 【Linux系列】如何在 Linux 服务器上快速获取公网
  • 遥感数据介绍——MODIS、VIIRS、Sentinel-2
  • 飞算JavaAI结合Redis实现高性能存储:从数据瓶颈到极速读写的实战之旅
  • 三种变量类型在局部与全局作用域的区别
  • 大模型算法岗面试准备经验分享
  • 【Linux网络编程】NAT、代理服务、内网穿透