Python自学第5天:字符串相关操作

1.字符串运算符

作符描述
+字符串连接
*重复输出字符串
[]通过索引获取字符串中字符
[ : ]截取字符串中的一部分,遵循左闭右开原则,str[0:2] 是不包含第 3 个字符的。
in成员运算符 - 如果字符串中包含给定的字符返回 True
not in成员运算符 - 如果字符串中不包含给定的字符返回 True
# 字符串连接
str1 = "Hello"
str2 = "World"
result = str1 + str2  # 输出: HelloWorld# 字符串重复
str3 = "Ha"
result = str3 * 3  # 输出: HaHaHa# 字符串索引
text = "Python"
char = text[0]  # 输出: P# 字符串切片
text = "Python Programming"
slice_str = text[0:6]  # 输出: Python# 成员运算符
text = "Hello Python"
print("Hello" in text)  # 输出: True
print("Java" not in text)  # 输出: True

 2.字符串格式化

作符描述
      %c 格式化字符及其ASCII码
      %s 格式化字符串
      %d 格式化整数
      %o 格式化无符号八进制数
      %x 格式化无符号十六进制数
      %f 格式化浮点数字,可指定小数点后的精度
      %e 用科学计数法格式化浮点数
name = "张三"
age = 25
height = 1.75# %s 字符串格式化
print("姓名: %s" % name)  # 输出: 姓名: 张三# %d 整数格式化
print("年龄: %d岁" % age)  # 输出: 年龄: 25岁# %f 浮点数格式化
print("身高: %.2f米" % height)  # 输出: 身高: 1.75米# 多个变量格式化
print("个人信息 - 姓名: %s, 年龄: %d岁, 身高: %.2f米" % (name, age, height))# 其他格式化示例
num = 42
print("十六进制: %x" % num)  # 输出: 十六进制: 2a
print("八进制: %o" % num)    # 输出: 八进制: 52
print("科学计数: %e" % 1234.5678)  # 输出: 科学计数: 1.234568e+03

3.f-string

  • 格式化字符串以 f 开头,后面跟着字符串,字符串中的表达式用大括号 {} 包起来,它会将变量或表达式计算后的值替换进去。
  • 比起上述格式化方法个,更简洁,不用再去判断类型。
name = "李四"
age = 30
score = 98.5# 基本用法
print(f"姓名: {name}")  # 输出: 姓名: 李四
print(f"年龄: {age}岁")  # 输出: 年龄: 30岁
print(f"成绩: {score}分")  # 输出: 成绩: 98.5分# 表达式计算
x = 10
y = 20
print(f"{x} + {y} = {x + y}")  # 输出: 10 + 20 = 30# 调用函数
def get_square(n):return n * n
number = 8
print(f"{number}的平方是{get_square(number)}")  # 输出: 8的平方是64# 字典访问
student = {"name": "王五", "grade": "A"}
print(f"学生{student['name']}的等级是{student['grade']}")  # 输出: 学生王五的等级是A# 对齐和填充
print(f"{'左对齐':<10}|")  # 输出: 左对齐    |
print(f"{'右对齐':>10}|")  # 输出:     右对齐|
print(f"{'居中':^10}|")    # 输出:    居中   |# 进制转换
num = 42
print(f"十进制: {num}")         # 输出: 十进制: 42
print(f"二进制: {num:b}")       # 输出: 二进制: 101010
print(f"十六进制: {num:x}")     # 输出: 十六进制: 2a

4.字符串常用的内置函数

作符描述
len() 获取字符串长度
upper() 转化为大写
lower() 转化为小写
strip() 去除首尾空白字符
split() 字符串分割
join() 字符串连接
replace() 字符串替换
find() 和 index() 字符串查找子串
startswith(str)判断字符串是否以str开头
endswith(str)判断字符串是否以str结尾
count()统计子串出现次数
isdigit()是否是数字

isalpha()

是否是字母
isalnum是否为字母或数字
# len() - 获取字符串长度
text = "Python编程"
print(f"字符串长度: {len(text)}")  # 输出: 字符串长度: 7# upper() 和 lower() - 大小写转换
str1 = "Hello World"
print(f"转大写: {str1.upper()}")  # 输出: HELLO WORLD
print(f"转小写: {str1.lower()}")  # 输出: hello world# strip() - 去除首尾空白字符
str2 = "   Python   "
print(f"去除空白: '{str2.strip()}'")  # 输出: 'Python'# split() - 字符串分割
str3 = "Python,Java,C++"
print(f"分割结果: {str3.split(',')}")  # 输出: ['Python', 'Java', 'C++']# join() - 字符串连接
list1 = ['Python', 'Java', 'C++']
print(f"连接结果: {'-'.join(list1)}")  # 输出: Python-Java-C++# replace() - 字符串替换
str4 = "Hello Python Python"
print(f"替换结果: {str4.replace('Python', 'Java', 1)}")  # 输出: Hello Java Python# find() 和 index() - 查找子串
str5 = "Hello Python"
print(f"find查找: {str5.find('Python')}")  # 输出: 6
print(f"index查找: {str5.index('Python')}")  # 输出: 6# startswith() 和 endswith() - 判断开头和结尾
str6 = "test.py"
print(f"是否以test开头: {str6.startswith('test')}")  # 输出: True
print(f"是否以.py结尾: {str6.endswith('.py')}")  # 输出: True# count() - 统计子串出现次数
str7 = "Python Python Python"
print(f"Python出现次数: {str7.count('Python')}")  # 输出: 3# isdigit()、isalpha()、isalnum() - 字符串类型判断
str8 = "123"
str9 = "abc"
str10 = "abc123"
print(f"是否为数字: {str8.isdigit()}")  # 输出: True
print(f"是否为字母: {str9.isalpha()}")  # 输出: True
print(f"是否为字母或数字: {str10.isalnum()}")  # 输出: True

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

RabbitMq(尚硅谷)

RabbitMq 1.RabbitMq异步调用 2.work模型 3.Fanout交换机&#xff08;广播模式&#xff09; 4.Diret交换机&#xff08;直连&#xff09; 5.Topic交换机&#xff08;主题交换机&#xff0c;通过路由匹配&#xff09; 6.Headers交换机&#xff08;头交换机&#xff09; 6…

分库分表后复杂查询的应对之道:基于DTS实时性ES宽表构建技术实践

1 问题域 业务发展的初期&#xff0c;我们的数据库架构往往是单库单表&#xff0c;外加读写分离来快速的支撑业务&#xff0c;随着用户量和订单量的增加&#xff0c;数据库的计算和存储往往会成为我们系统的瓶颈&#xff0c;业界的实践多数采用分而治之的思想&#xff1a;分库…

CVE-2024-4577:Windows 编码错误

CVE-2024-4577是一个 PHP-CGI 漏洞,就是其中一种情况:虽然有这个版本,但由于 PHP 经常被反向移植,因此无法可靠地使用。 这篇博文详细介绍了如何研究 CVE-2024-4577 以及当前用于检测它的方法。 CVE-2024-4577 CVE-2024-4577 是 Windows 版 PHP 安装中的一个高危漏洞,会…

NetBox Docker 全功能部署方案(Ubuntu 22.04 + Docker)

环境准备 检查操作系统版本&#xff1a; 本方案使用 Ubuntu 22.04&#xff0c;并在 VMware 虚拟机中运行。通过以下命令检查系统版本&#xff1a; lsb_release -a 如果未安装 Ubuntu 22.04&#xff0c;请下载并安装一个全新的系统。 更新系统软件源&#xff1a; 更新软件包列表…

DeepSeek Copilot idea插件推荐

&#x1f30c; DeepSeek Copilot for IntelliJ IDEA 让 AI 成为你的编程副驾驶&#xff0c;极速生成单元测试 & 代码注释驱动开发&#xff01; &#x1f680; 简介 DeepSeek Copilot 是一款为 IntelliJ IDEA 打造的 AI 编程助手插件&#xff0c;它能够智能分析你的代码逻辑…

QT中的JSON

1.JSON的两种数据格式 JSON有两种数据格式:JSON对象和JSON数组 JSON数组&#xff1a; JSON数组格式&#xff1a;[元素1&#xff0c;元素2&#xff0c;元素3&#xff0c;......元素n] JSON数组中的元素可以是同一类型&#xff0c;也可以使不同类型&#xff0c;可以嵌套JSON数组…

详细剖析传输层协议(TCP和UDP)

详细讲解传输层的网络协议&#xff0c;为什么TCP是可靠连接协议&#xff0c;凭什么能做到不丢包&#xff0c;有哪些机制保证可靠呢&#xff1f; TCP/UDP UDPTCP**三次握手和四次挥手****滑动窗口****拥塞控制**&#xff08;socket套接字&#xff09;**listen的第二个参数** UD…

数据可视化:艺术与科学的交汇点,如何让数据“开口说话”?

数据可视化&#xff1a;艺术与科学的交汇点&#xff0c;如何让数据“开口说话”&#xff1f; 数据可视化&#xff0c;是科技与艺术的结合&#xff0c;是让冰冷的数字变得生动有趣的桥梁。它既是科学——讲究准确性、逻辑性、数据处理的严谨性&#xff1b;又是艺术——强调美感…

解决使用lettuce连接Redis超时的问题(tcpUserTimeout 参数失效问题)

问题背景 lettuce 连接Redis的主从实例&#xff0c;当主节的主机异常下电重启后&#xff0c;由于没有发送RST 包&#xff0c;导致 lettuce 一直在复用之前的TCP链接&#xff0c;然后会出现连接超时的情况。一直出现io.lettuce.core.RedisCommandTimeoutException: Command tim…

如何使用python保存字典

在Python中&#xff0c;可以通过多种方式将字典&#xff08;dict&#xff09;保存到文件中&#xff0c;并能够随时读取恢复。以下是几种常见的方法&#xff1a; 1. 使用 json 模块&#xff08;推荐&#xff09; 适用场景&#xff1a;需要人类可读的文件格式&#xff0c;且数据不…

SQL 与 Python:日期维度表创建的不同选择

文章目录 一、日期维度表概述日期维度表结构 二、使用 SQL 创建日期维度表2.1 表结构设计2.2 数据插入2.3 SQL 创建方式的优势与局限 三、使用 Python 创建日期维度表3.1 依赖库引入3.2 代码实现3.3 Python 创建方式的优势与局限 四、应用场景与选择建议4.1 应用场景4.2 选择建…

如何用postman进行批量操作

业务场景&#xff1a; 有些时候&#xff0c;我们会需要批量的将SAP B1系统中的几千条的数据删除或者取消单据&#xff0c;这个时候&#xff0c;一条条去操作&#xff0c;指定是到猴年马月了。SAP Business One本身提供了DTW这个工具&#xff0c;但是这个更新&#xff0c;可以操…

Mysql如何完成数据的增删改查(详解从0到1)

前言&#xff1a; Mysql可能是每个程序员的必修课&#xff0c;可以说是使用起来是没有什么问题的&#xff0c;但是作为一名合格的程序猿&#xff0c;深入学习Mysql的内部工作原理是非常有必要的&#xff0c;主要是理解和学习Mysql的底层思想&#xff0c;希望在日后如遇到一些&…

单片机嵌入式按键库

kw_btn库说明 本库主要满足嵌入式按键需求&#xff0c;集成了常用的按键响应事件&#xff1a;高电平、低电平、上升沿、下降沿、单击、双击、长按键事件。可以裸机运行&#xff0c;也可以配合实时操作系统运行。 本库开源连接地址&#xff1a;连接 实现思路 本库采用C语言进行…

Qt—鼠标移动事件的趣味小程序:会移动的按钮

1.项目目标 本次根据Qt的鼠标移动事件实现一个趣味小程序&#xff1a;当鼠标移动到按钮时&#xff0c;按钮就会随机出现在置&#xff0c;以至于根本点击不到按钮。​​​​​ 2.项目步骤 首先现在ui界面设计控件(也可以用代码的方式创建&#xff0c;就不多说了) 第一个按钮不需…

MySQL的information_schema在SQL注入中的关键作用与防御策略

目录 一、information_schema的核心价值 二、攻击利用场景与示例 1. 联合查询注入&#xff08;Union-Based&#xff09; 2. 报错注入&#xff08;Error-Based&#xff09; 3. 布尔盲注&#xff08;Boolean Blind&#xff09; 4. 时间盲注&#xff08;Time-Based&#xff0…

c语言 关键字--目录

下面是详细介绍的链接 1.c语言 关键字 2.typedef 关键字 3.volatile 关键字 4.register 关键字 5.const关键字用法 6.extern关键字 7.sizeof关键字

python爬虫爬取网站图片出现403解决方法【仅供学习使用】

基于CSDN第一篇文章&#xff0c;Python爬虫之入门保姆级教程&#xff0c;学不会我去你家刷厕所。 这篇文章是2021年作者发表的&#xff0c;由于此教程&#xff0c;网站添加了反爬机制&#xff0c;有作者通过添加cookie信息来达到原来的效果&#xff0c;Python爬虫添加Cookies以…

docker创建一个centOS容器安装软件(以宝塔为例)的详细步骤

备忘&#xff1a;后续偶尔忘记了docker虚拟机与宿主机的端口映射关系&#xff0c;来这里查看即可&#xff1a; docker run -d \ --name baota \ --privilegedtrue \ -p 8888:8888 \ -p 8880:80 \ -p 8443:443 \ -p 8820:20 \ -p 8821:21 \ -v /home/www:/www/wwwroot \ centos…

linux 使用nginx部署ssl证书,将http升级为https

前言 本文基于&#xff1a;操作系统 CentOS Stream 8 使用工具&#xff1a;Xshell 8、Xftp 8 服务器基础环境&#xff1a; nginx - 请查看 linux 使用nginx部署vue、react项目 所需服务器基础环境&#xff0c;请根据提示进行下载、安装。 1.下载证书 以腾讯云为例&#x…