Python讲解(第五篇)

前一篇主要讲了数据类型转换以及标识符。这篇主要讲解Python中的运算符、字符串的扩展。

由于字符串的扩展内容较多,将分为多篇来进行讲解。

1. 运算符

在Python中,运算符用于执行各种操作,包括算术运算、比较运算、逻辑运算、位运算、赋值运算等。以下是主要运算符及其作用的详细说明:

1. 算术运算符

用于执行基本的数学运算。

  • +:加法,例如 3 + 4 结果为 7
  • -:减法,例如 5 - 3 结果为 2
  • *:乘法,例如 2 * 3 结果为 6
  • /:除法,例如 6 / 3 结果为 2.0
  • %:取模(余数),例如 7 % 3 结果为 1
  • **:幂运算,例如 2 ** 3 结果为 8
  • //:整数除法(地板除),例如 7 // 3 结果为 2

案例:

# 加法
a = 5 + 3
print(a)  # 输出: 8# 减法
b = 10 - 4
print(b)  # 输出: 6# 乘法
c = 3 * 7
print(c)  # 输出: 21# 除法
d = 20 / 4
print(d)  # 输出: 5.0# 取模
e = 9 % 4
print(e)  # 输出: 1# 幂运算
f = 2 ** 3
print(f)  # 输出: 8# 整数除法
g = 10 // 3
print(g)  # 输出: 3

2. 比较运算符

用于比较两个值的大小或是否相等。

  • ==:等于,例如 3 == 3 结果为 True
  • !=:不等于,例如 3 != 4 结果为 True
  • >:大于,例如 4 > 3 结果为 True
  • <:小于,例如 2 < 3 结果为 True
  • >=:大于等于,例如 5 >= 3 结果为 True
  • <=:小于等于,例如 2 <= 3 结果为 True

案例:

# 等于
x = 5
y = 5
print(x == y)  # 输出: True# 不等于
print(x != y)  # 输出: False(因为x和y相等)# 大于
z = 10
print(z > x)  # 输出: True# 小于
print(x < z)  # 输出: True# 大于等于
print(x >= y)  # 输出: True(因为x等于y)# 小于等于
print(z <= 10)  # 输出: True

3. 逻辑运算符

用于布尔值的逻辑运算。

  • and:逻辑与,例如 True and False 结果为 False
  • or:逻辑或,例如 True or False 结果为 True
  • not:逻辑非,例如 not True 结果为 False

案例:

# 逻辑与
p = True
q = False
print(p and q)  # 输出: False# 逻辑或
print(p or q)  # 输出: True# 逻辑非
print(not p)  # 输出: False

4. 位运算符

用于对整数的二进制表示进行操作。

  • &:按位与,例如 5 & 3 结果为 1(二进制:0101 & 0011 = 0001
  • |:按位或,例如 5 | 3 结果为 7(二进制:0101 | 0011 = 0111
  • ^:按位异或,例如 5 ^ 3 结果为 6(二进制:0101 ^ 0011 = 0110
  • ~:按位取反,例如 ~5 结果为 -6(二进制:~0101 = 1010(注意是补码表示))
  • <<:左移,例如 5 << 1 结果为 10(二进制:0101 << 1 = 1010
  • >>:右移,例如 5 >> 1 结果为 2(二进制:0101 >> 1 = 0010

5. 赋值运算符

用于给变量赋值,并可以结合算术运算符和位运算符使用。

  • =:简单赋值,例如 a = 5
  • +=:加法赋值,例如 a += 3 等同于 a = a + 3
  • -=:减法赋值,例如 a -= 2 等同于 a = a - 2
  • *=:乘法赋值,例如 a *= 4 等同于 a = a * 4
  • /=:除法赋值,例如 a /= 2 等同于 a = a / 2
  • %=:取模赋值,例如 a %= 3 等同于 a = a % 3
  • **=:幂赋值,例如 a **= 2 等同于 a = a ** 2
  • //=:整数除法赋值,例如 a //= 2 等同于 a = a // 2
  • &=|=^=<<=>>=:分别用于按位与、按位或、按位异或、左移、右移的赋值运算。

案例

# 简单赋值
n = 10
print(n)  # 输出: 10# 加法赋值
n += 5
print(n)  # 输出: 15# 乘法赋值
n *= 2
print(n)  # 输出: 30

6. 成员运算符

用于检查某个值是否存在于某个序列(如字符串、列表、元组等)中。

  • in:检查某个值是否存在于序列中,例如 'a' in 'hello' 结果为 True
  • not in:检查某个值是否不存在于序列中,例如 'z' not in 'hello' 结果为 True

案例:

# 检查元素是否在列表中
my_list = [1, 2, 3, 4, 5]
print(3 in my_list)  # 输出: True
print(6 in my_list)  # 输出: False

7. 身份运算符

用于比较两个对象的身份(即它们是否是同一个对象)。

  • is:判断两个对象是否是同一个对象,例如 a is b
  • is not:判断两个对象是否不是同一个对象,例如 a is not b

案例:

# 检查两个变量是否指向同一个对象
a_list = [1, 2, 3]
b_list = a_list
c_list = [1, 2, 3]print(a_list is b_list)  # 输出: True(因为它们指向同一个对象)
print(a_list is c_list)  # 输出: False(虽然内容相同,但它们是不同的对象)

8. 其他运算符

  • ():圆括号,用于分组、调用函数、生成元组等
  • []:方括号,用于列表、索引和切片操作
  • {}:花括号,用于字典、集合和空字典/集合的定义
  • ::冒号,用于定义切片、字典中的键值对、条件语句和循环语句
  • ,:逗号,用于分隔多个表达式、函数参数等
  • ;:分号,用于在同一行中分隔多个语句

这些运算符是Python编程中的基础,它们帮助开发者执行各种操作,构建复杂的逻辑和功能。

2. 字符串扩展

在Python编程语境中,"字符串扩展"这一术语,通常并不指代一个官方的、特定的功能集合,而是一个较为宽泛的概念,它涵盖了所有能够增强、扩展字符串处理能力的方法和技巧。这些方法和技巧可能源自Python的内置字符串方法、第三方库,或是程序员根据实际需求自定义的函数和类。

2.1 字符串的三种定义方式

1. 单引号定义法

str='你好'
print(type(str),str)

2. 双引号定义法

str="你好"
print(type(str),str)

3. 三引号定义法

写法和多行注释是一样的

str="""你好"""
print(type(str),str)

str="""
你好
"""
print(type(str),str)

2.2 字符串的引号嵌套

在Python编程语言中,字符串的引号嵌套指的是在一个字符串内部再包含相同类型或不同类型的引号。Python提供了几种处理引号嵌套的方法,以确保字符串能被正确解析和表示。

1. 使用不同类型的引号进行嵌套

Python支持单引号(')、双引号(")以及三引号(''' 或 """)来定义字符串。因此,如果字符串内部需要包含某种类型的引号,可以使用另一种类型的引号来定义整个字符串。

示例

# 使用双引号定义字符串,内部包含单引号
string1 = "He said, 'Hello!'"# 使用单引号定义字符串,内部包含双引号
string2 = 'She replied, "How are you?"'

2. 使用转义字符

如果字符串内部需要包含与定义字符串所用类型相同的引号,可以使用反斜杠(\)作为转义字符来“逃逸”内部的引号。

示例

# 使用单引号定义字符串,内部也包含单引号(通过转义)
string3 = 'It\'s a sunny day.'# 使用双引号定义字符串,内部也包含双引号(通过转义)
string4 = "She said, \"I'm fine.\""

3. 使用三引号定义多行字符串

当需要定义一个包含多行文本或大量引号的字符串时,可以使用三引号(无论是单引号还是双引号)。在三引号定义的字符串中,可以直接包含单引号、双引号,甚至三引号本身(但通常不推荐,因为可能会引发解析上的混淆)。

示例

# 使用三引号定义多行字符串
string5 = """This is a multi-line string.
It can contain 'single quotes', "double quotes", and even
other types of quotes without needing to escape them."""

然而,请注意,尽管三引号字符串内部可以包含相同类型的三引号字符,但为了避免潜在的解析问题,最好不要这样做。如果确实需要在三引号字符串内部包含相同类型的三引号,建议使用转义字符或改用不同类型的引号来定义整个字符串。

总结

  • 在Python中,可以通过使用不同类型的引号来避免引号嵌套带来的问题。
  • 可以使用转义字符来“逃逸”字符串内部的相同类型引号。
  • 对于包含多行文本或大量引号的字符串,可以使用三引号来定义。

选择哪种方法取决于具体的应用场景和个人偏好。在处理复杂的字符串时,建议保持代码的清晰和可读性。

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

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

相关文章

TemplatesImpl 在Shiro中的利用链学习1

一、前言 在前面的学习中&#xff0c;我们学习了CC1、CC6链&#xff0c;其中CC1链受限于Java8u71版本&#xff0c;而CC6则是通杀的利用链&#xff1b;后来又将 TemplateImpl 融入到 CommonsCollections 利用链中&#xff0c;绕过了 InvokerTransformer 不能使用的限制&#xf…

中仕公考:2025年省考请注意!

打算参加25年省考的考生们注意啦!如果打算参加2025年公务员省考&#xff0c;从这个时间点开始备考刚刚好&#xff0c;如果还不知道怎么备考的&#xff0c;看这篇就够了! 省考流程&#xff1a; 网上报名——资格审查——确认缴费——查看报名序号——准考证打印——笔试——成…

开发RAG应用,你必须知道的7个Embedding模型

在自然语言处理&#xff08;NLP&#xff09;领域&#xff0c;Embedding模型是将文本数据转化为数值向量的核心技术&#xff0c;从而让计算机能够便捷地衡量文本间的语义关联&#xff0c;这种表示法已成为多种基础NLP任务的核心&#xff0c;如文本相似度判定、语义搜索、信息检索…

基于Java+SpringBoot学生成绩管理系统

一、作品包含 源码数据库设计文档全套环境和工具资源部署教程 二、项目技术 前端技术&#xff1a;Html、Css、Js、Vue、Element-ui 数据库&#xff1a;MySQL 后端技术&#xff1a;Java、Spring Boot、MyBatis 三、运行环境 开发工具&#xff1a;IDEA/eclipse 数据库&…

Kong API网关,微服务架构中,你看到就不想错过的选型

今天&#xff0c;很多公司都采用微服务架构来处理复杂业务&#xff0c;但随着服务数量增加&#xff0c;API管理成了一项繁重任务。Kong API网关&#xff0c;作为一款高性能的开源API网关&#xff0c;给开发者带来了极大便利。它不仅可以简化API的调用和管理&#xff0c;还拥有丰…

计算机毕业设计 | springboot+vue汽车修理管理系统 汽修厂系统(附源码)

1&#xff0c;项目背景 在如今这个信息时代&#xff0c;“汽车维修管理系统” 这种维修方式已经为越来越多的人所接受。在这种背景之下&#xff0c;一个安全稳定并且强大的网络预约平台不可或缺&#xff0c;在这种成熟的市场需求的推动下&#xff0c;在先进的信息技术的支持下…

使用京东API接口进行支付结算有哪些注意事项?

用京东API接口进行支付结算时&#xff0c;需要注意以下几个事项&#xff1a; 遵守京东开放平台规定&#xff1a;在使用京东API接口时&#xff0c;必须遵守京东开放平台的相关规定&#xff0c;不得滥用接口或进行非法操作。 保护用户隐私&#xff1a;为了保护用户隐私&#xff…

全国宪法宣传周答题活动怎么做

在12月4日全国宪法宣传周即将到来之际&#xff0c;越来越多的企业单位开始举办线上知识竞赛答题活动&#xff0c;以下是一个知识竞赛答题小程序的基本功能&#xff1a; 一、了解活动信息&#xff1a;确定答题活动的开始时间、结束时间以及是否分阶段进行等。不同的答题活动时…

【debug】QT 相关问题error汇总 QT运行闪退 QT5升级到QT6注意要点

总结一下碰到过的所有问题error以及解决方案 如果这个文档未帮助到你&#xff0c;仍有bug未解决&#xff0c;可以在下方评论留言&#xff0c;有偿解决。 qt的UI更新之后构建后发现没有变化 取消项目中的Shadow build的勾选&#xff0c;作用是取消影子构建&#xff0c;此后构建目…

信捷 PLC C语言 POU 指示灯交替灭1秒亮1秒

1.在全局变量表中定义2个定时器变量timer1,timer2 名称 类型 timer1 TMR_FB False -- False False timer2 TMR_FB False -- False False ot BOOL False -- False False ot表示指示灯 2.新建pou…

【Linux进程篇3】说白了,Linux创建进程(fork父子进程)也就那样!!!

--------------------------------------------------------------------------------------------------------------------------------- 每日鸡汤&#xff1a;没人可以好运一生&#xff0c;只有努力才是一生的护身符&#xff0c;不放弃、不辜负。 -----------------------…

使用服务器时进行深度学习训练时,本地必须一直保持连接状态吗?

可以直接查看方法&#xff0c;不看背景 1.使用背景2. 方法2.1 screen命令介绍2.2 为什么要使用screen命令2.3 安装screen2.4 创建session2.5 查看session是否创建成功2.6 跳转进入session2.7 退出跑代码的session2.8 删除session 1.使用背景 我们在进行深度学习训练的时候&…

防火墙笔记地十二天

1.IPSEC协议簇 IPSEC协议簇 --- 基于网络层的&#xff0c;应用密码学的安全通信协议组 IPV6中&#xff0c;IPSEC是要求强制使用的&#xff0c;但是&#xff0c;IPV4中作为可选项使用 IPSEC可以提供的安全服务 机密性 --- 数据加密 完整性 --- 防篡改 可用性 数据源鉴别 -…

即时设计:Sketch的云端版本控制

设计师们经常面临的一个挑战是设计软件的频繁更新&#xff0c;尤其是Sketch这类流行工具。每次更新可能会修复一些旧bug并增加新功能&#xff0c;但同时也可能导致与旧版本的不兼容问题&#xff0c;尤其是在不同工作环境中的电脑性能差异可能导致文件兼容性问题。那么&#xff…

什么是网络安全CTF有何意义?该如何入门?

什么是网络安全CTF?有何意义 &#xff1f;该如何入门 &#xff1f; 什么是网络安全CTF? CTF在网络安全领域中指的是网络安全技术人员之间进行技术竞技的一种比赛形式。它起源于1996年DEFCON&#xff0c;以代替之前通过互相发起真实攻击进行技术比拼的方式。发展至今&#xff…

【Window主机访问Ubuntu从机——Xrdp配置与使用】

使用Xrdp在Window环境下远程桌面访问Ubuntu主机 文章目录 Ubuntu安装图形化界面Ubuntu安装Xrdp通过网线连接两台主机Window主机有线连接配置Ubuntu从机设置测试有线连接 Window主机打开远程桌面功能参考文章总结 Ubuntu安装图形化界面 sudo apt update sudo apt upgrade sudo …

Python-基础语法·上(2)

目录 常量和表达式 变量的语法 定义变量 使用变量 变量的类型 整型与浮点型 字符串 布尔 为什么要有这么多类型? 动态类型特性 注释 输入输出 通过控制台输出 通过控制台输入 运算符 算术运算符 关系运算符 逻辑运算符 赋值运算符 其他 python的一些小练…

【go从零单排】panic、recover、defer

&#x1f308;Don’t worry , just coding! 内耗与overthinking只会削弱你的精力&#xff0c;虚度你的光阴&#xff0c;每天迈出一小步&#xff0c;回头时发现已经走了很远。 &#x1f4d7;概念 在 Go 语言中&#xff0c;panic 是一种用于处理异常情况的机制。它允许程序在遇到…

【Windows erver】配置高性能电源管理

操作场景 在 Windows Server 操作系统上&#xff0c;需要配置高性能电源管理&#xff0c;才能支持实例软关机&#xff0c;否则云服务器控制台只能通过硬关机的方式关闭实例。本文档以 Windows Server 2012 操作系统为例&#xff0c;介绍配置电源管理的方法。 操作说明 修改电…

十大内衣洗衣机排名:2024十大实力强大内衣洗衣机推荐

现在洗衣机已经是现代家庭的必备家电&#xff0c;它给我们带来了更加方便舒适的生活。但即使是有了洗衣机大家还是不会将所有的衣物都丢进大型洗衣机洗。尤其是内衣裤、袜子&#xff0c;很多人都是选择手洗的&#xff0c;觉得这样的清洁方式才能清洗干净&#xff0c;但其实事实…