【python全栈系列】day04-python数据类型-String

1、字符串的介绍

字符串是 Python 中最常用的数据类型,是不可变的(同一内存地址下的数据不可以变)

(1)创建字符串

  • 使用一对单引号来创建var1 = 'Hello World!'
  • 使用一对双引号来创建var1 = "Hello World!"
  • 一对三个单引号或者一对三个双引号包裹
#三个单引号
str1 = '''
1、吃饭
2、睡觉
3、玩
'''
#三个双引号
str2 = """
1、吃饭
2、睡觉
3、玩
"""

注意:用三个单引号或者三个双引号的好处是可以换行,上面的例子执行print()函数后会换行输出,一个单引号或者一个双引号不可以换行,

(2)转义字符 \ 让符号失去原有的意义

通过上面的学习我们如果想要定义“你好”这两个字符串很容易,但是假如要定义带有双引号的字符串呢,按照上面的逻辑是不是应该这样 写str3 = ""你好"",显然这是不对的,因为我们字符串就是通过引号来包裹定义的,这个引号是个特殊字符,是申明字符串用的,但是我们现在想用的是把引号申明成一个字符串,这个时候就引出了转义字符,他的作用是让特殊符号失去原有的意义

str3 = "你好"
#转义字符的用法是在想要转义的字符前面添加\
str4 = "\"你好\""
print(str3)   # 你好
print(str4)  # "你好"

(3)在字符串的前面加 r 可以去除转义字符

首先介绍\n和\t两个转义字符,\n表示换行 \t表示制表符,也就是字符串中如果有\n或者\t就会换行输出

str5 = "大家注意防护\n不要阳了"
str6 = r"大家注意防护\n不要阳了"
print(str5)#下面是str5输出的内容,换行显示
"""
大家注意防护
不要阳了
"""
#注意,str6中前面加了r,\n转义字符就失效了,输出时就被当作了字符串
print(str6)  # 大家注意防护\n不要阳了

(4)在定义字符串的时候,可以使用单双引号嵌套

str7 = '想死"你们"了'
print(str7)  # 想死"你们"了
str8 = "想死'你们'了"#想死'你们'了

2、字符串的常见操作

(1) 字符串的访问

str1 = '刚刚闭幕的中央经济工作会议是党的二十大后党中央召开的一次非常重要的会议。'
# 通过下标的方式访问字符串
 print(str1[0])#刚
 print(str1[11])#会

(2) 遍历字符串

# 第一种方式:  i表示字符串中的每个字符
for i in str1:
    print(i)
# 第二种方式:  i表示字符串中字符的下标
for i in range(len(str1)):
    print(str1[i])
# 第三种方式:enumerate()  k表示下标  v表示值
for k,v in enumerate(str1):
    print(k,v)

(3) 字符串的拼接

#只能是字符串和字符串之间使用 + 拼接
str1 = 'welcome to'
str2 = '昆明'
num = 10
# print(str1 + str2) welcome to 昆明
# print(str1 + num)  # 报错

(4) 重复输出字符串

str2 = '昆明'
# print(str2 * 3)  #  昆明 昆明 昆明

(5) 字符串的切片

#字符串[开始下标:结束下标]  0 表示第一个  -1表示最后一个
str3 = 'good good study,day day up'
print(str3[1:5])  # ood
print(str3[1:])   # ood good study,day day up
print(str3[:6])   # good g
#下面这个语法两层意思
#1、取出0到最后一个
#2、倒序
print(str3[::-1])  # pu yad yad,yduts doog doog

(6) 使用成员运算符判断字符是否在字符串中 in 和 not in

#判断字符串在不在其中
str4 = 'i love you forever'
print('love' in str4)  # True
print('love' not in str4)  # False

3、字符串的格式化输出

(1)占位符

'''
占位符: %
整数:  %d
小数:  %f
字符串: %s
3位小数:  %.3f
2位小数: %.2f
'''
name = '李小华'
age = 23
height = 170
money = 38.6435
print("姓名:%s,年龄:%d,身高:%d,财富:%.2f"%(name,age,height,money))
#输出:姓名:李小华,年龄:23,身高:170,财富:38.64

(2)使用f,f"{变量名}"

print(f"姓名:{name},年龄:{age},身高:{height},财富:{round(money,2)}")
#输出:姓名:李小华,年龄:23,身高:170,财富:38.64

4、获取字符串长度和出现的次数

str1 = "抗原转阴后又阳了,是没好彻底吗?复阳和再感染后有传染性吗?什么情况更容易发生二次感染?近期,有关新冠复阳再感染”等话题引发不少网友的讨论。央视新闻采访北京佑安医院感染综合科主任医师李侗曾,就网友关切带来解读!"
# 1.获取字符串的长度 len()
print(len(str1))   # 104
# 2.统计子串在整个字符串中出现的次数  count('统计的内容','开始的位置','结束的位置')  后面的两个的参数是可选参数,可以不用写
print(str1.count('阳'))   # 3
print(str1.count('阳',1,20))  # 2

5、字符串大小写的转换

str1 = 'i Miss You Very Much'
# upper()  将字符串中的小写字母转换为大写字母
print(str1.upper())  # I MISS YOU VERY MUCH
# lower() 将字符串中的大写字母转换为小写字母
print(str1.lower())  # i miss you very much
# swapcase()将字符串中的大写字母转换为小写,将小写字母转换为大写
print(str1.swapcase())  # I mISS yOU vERY mUCH
# title()将字符串中的每个单词的首字母转换为大写
str2 = 'welcome to qian feng'
print(str2.title())  # Welcome To Qian Feng

6、字符串填充

#
str1 = "梅西携队凯旋球迷接机欢庆"
# center(填充后的长度,填充的内容)  将字符串按照指定的内容填充到指定长度,默认填充的内容是空格
print(str1)#梅西携队凯旋球迷接机欢庆
print(str1.center(50))#                  梅西携队凯旋球迷接机欢庆            
print(str1.center(50,'*'))   # *******************梅西携队凯旋球迷接机欢庆*******************

# ljust(填充后的长度,填充的内容)   向左填充,  原内容靠左,填充的内容靠右
print(str1.ljust(50,'%'))   # 梅西携队凯旋球迷接机欢庆%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

# rjust(填充后的长度,填充的内容)   向右填充,  原内容靠右,填充的内容靠左
print(str1.rjust(50,'+'))   # ++++++++++++++++++++++++++++++++++++++梅西携队凯旋球迷接机欢庆

# zfill(填充后的长度) 使用数字0 填充字符串到指定的长度
print(str1.zfill(50))   # 00000000000000000000000000000000000000梅西携队凯旋球迷接机欢庆

7、字符串的查找

(1) find(查找的内容,开始的位置,结束的位置)查找字符在字符串中第一次出现的位置,返回的是下标.

str1 = "1234567890qwertyuiopasqdfghjklQWERTYUIOPqASJDFGHJKqLqW"
# print(str1.find('q'))  # 10  未指定开始位置和结束位置,表示从整个字符串查找
# print(str1.find("W"))  # 31

# 指定范围查找
# print(str1.find('o',1,40))  # 18  表示从下标1的位置开始一直到下标为40的位置之间进行查找
# 不存在的情况,返回-1
# print(str1.find('z'))   # -1

(2) rfind(查找的内容,开始的位置,结束的位置)查找字符在字符串中最后一次出现的位置,返回的是下标. 若未找到返回-1

str1 = "1234567890qwertyuiopasqdfghjklQWERTYUIOPqASJDFGHJKqLqW"
print(str1.rfind('q'))   # 52
print(str1.rfind('n'))   # -1
# 指定范围查找
print(str1.rfind('q',10,30))  # 22

(3) index()功能和find()类似,区别是,若未找到字符串,则直接报错

# print(str1.index('m'))  # ValueError: substring not found
print(str1.index('q'))   # 10

(4) 按照ASCII值进行获取

# max()最大   min()最小
print(max(str1))   # y
print(min(str1))   # 0

8、字符串去除内容

str1 = " today is a nice day "
str2 = "** today is a nice day ***"
# 1、去除字符串两边的空格
# print(str1.strip())

# 2、去除指定的字符  *
# print(str2.strip('*'))

# 3.lstrip() 去除左边的指定字符(默认去除的是空格)
# print(str1.lstrip())
# print(str2.lstrip('*'))

# 4.rstrip() 去除右边的指定字符(默认去除的是空格)
# print(str1.rstrip())
# print(str2.rstrip('*'))

9、字符串的分割和合并

(1)split()以指定字符对目标字符串进行分割(默认是空格),的到的是一个数组

str1 = "this is a string example...."
str2 = "this*is*a*string*example...."
# 使用空格分割
# print(str1.split())  # ['this', 'is', 'a', 'string', 'example....']
# 使用指定字符切割
# print(str2.split('*'))  # ['this', 'is', 'a', 'string', 'example....']

(2)splitlines() 按照行分割

str3 = """
悟道休言天命,
修行务取真经.
一悲一喜一枯荣,
哪个前生注定.
"""
# print(str3.splitlines())  # ['', '悟道休言天命,', '修行务取真经.', '一悲一喜一枯荣,', '哪个前生注定.']

# 3.合并  join()  以指定字符合并字符串
ss1 = '-'
list1 = ['hello','everybody','nice','to','meet','you']
print(ss1.join(list1))  # hello-everybody-nice-to-meet-you

(3)合并(数组合并成字符串)

# join()  以指定字符合并字符串
ss1 = '-'
list1 = ['hello','everybody','nice','to','meet','you']
print(ss1.join(list1))  # hello-everybody-nice-to-meet-you

10、字符串的替换

# 1.replace(要替换的内容,替换后的内容,替换的次数)  # 使用指定的内容对字符串中的数据进行替换
'''
第三个参数是可选参数,不写的话表示全部替换.
'''
str1 = "最高法原法官:垃圾,因传播奥密克戎被处罚的人垃圾,建议司法机关予以纠错.垃圾,辣鸡,扯犊子,垃圾."
print(str1)  # 最高法原法官:垃圾,因传播奥密克戎被处罚的人垃圾,建议司法机关予以纠错.垃圾,辣鸡,扯犊子,垃圾.
print(str1.replace('垃圾','**'))  # 最高法原法官:**,因传播奥密克戎被处罚的人**,建议司法机关予以纠错.**,辣鸡,扯犊子,**.

# 控制替换的次数
print(str1.replace('垃圾','**',2))  # 最高法原法官:**,因传播奥密克戎被处罚的人**,建议司法机关予以纠错.垃圾,辣鸡,扯犊子,垃圾.

11、字符串的判断

(1) isupper() 检测字符串中的字母是否全部大写

str1 = "1234asdfgXCVBNM"
str2 = "SDFGH98765"
print(str1.isupper())  # False
print(str2.isupper())  # True

(2) islower() 检测字符串中的字母是否全部小写

str3 = "rtyui9876"
str4 = "dfghjMNBVC3456"
print(str3.islower())   # True
print(str4.islower())   # False

(3) isdigit() 检测字符串是否是全部是数字组成

str5 = '12345'
str6 = "dfghj98765FGHJ"
print(str5.isdigit())   # True
print(str6.isdigit())   # False

(4) istitle() 检测字符串中的单词首字母是否大写

str7 = 'hello world'
str8 = 'Good Night'
print(str7.istitle())  # False
print(str8.istitle())  # True

(5) isalpha() 检测字符串是否只有文字和字母组成

str9 = '你好everyone'
str10 = '中国876dfghjXCVB'
print(str9.isalpha())  # True
print(str10.isalpha())  # False

12、字符串的前缀和后缀

# 前缀和后缀是指:判断字符串是否以指定字符开头或者以指定字符结束
# startswith():表示以指定字符开头
str1 = 'HelloPython'
print(str1.startswith('Hello'))  # True
# endswith() :表示以指定字符结束
print(str1.endswith('thon'))   # True

13、字符串的编码和解码

# 编码和解码一般用于数据的网络传输
# encode() 编码
# decode() 解密
str1 = '你好Python'
# 编码
print(str1.encode('utf-8'))  # b'\xe4\xbd\xa0\xe5\xa5\xbdPython'
print(str1.encode('gbk'))    # b'\xc4\xe3\xba\xc3Python'
# 解码
str2 = b'\xe4\xbd\xa0\xe5\xa5\xbdPython'
str3 = b'\xc4\xe3\xba\xc3Python'
print(str2.decode('utf-8'))    # 你好Python
print(str3.decode('gbk'))      # 你好Python

14、ASCII值的转换

# chr()  表示将对应的ASCII的值转换为字符
# ord() 获取对应字符的ASCII的值
print(chr(87))  # W
print(ord('s'))  # 115

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

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

相关文章

如何通过小猪APP分发轻松实现应用内测分发

搞应用开发的朋友们,都知道内测分发这个环节有多重要。没有内测,一款应用基本上是不可能上线的。毕竟,谁也不想自己的产品在上线的那一刻就被用户吐槽得体无完肤。内测分发的好坏,直接影响到应用的质量和用户的第一印象。如何才能…

postGreSQL关系数据库介绍

什么是postGreSQL关系数据库? PostgreSQL 是一个强大的、开源的对象关系型数据库管理系统(ORDBMS)。它基于POSTQUEL查询语言的继承,提供了对SQL标准的广泛支持,并扩展了许多高级功能,如事务处理、多版本并…

使用Python实现深度学习模型通常涉及以下几个步骤

学习总结 1、掌握 JAVA入门到进阶知识(持续写作中……) 2、学会Oracle数据库入门到入土用法(创作中……) 3、手把手教你开发炫酷的vbs脚本制作(完善中……) 4、牛逼哄哄的 IDEA编程利器技巧(编写中……) 5、面经吐血整理的 面试技…

光电液位传感器工作时容易受哪些因素影响?

光电式水位传感器的检测液位时是必须要接触液体才能进行检测的。当液体覆盖光电式水位传感器的探头时,传感器内的发光二极管发射出去的光线会折射在液体中,而光敏接收器只能接收到少量光电或者接收不到光线。反之正常接收光线则是无水状态。 光电式水位…

想买骨传导耳机怕踩雷?全方位的选购攻略分享给你!

作为一个爱好运动的人来说,现在天气越来越暖和了,很多人选择外出徒步、越野或者骑行。在运动过程中都会佩戴一些入耳式耳机,但是运动一段时间发现入耳式耳机带久了耳朵会很不舒服,而且出汗了的话对于一些不防水的入耳式耳机的话&a…

swiper轮播 loop:true失效解决

数据是写死的时候,能够loop:true是有效的;数据是动态获取的loop:true就会失效。 方法一:在接收到数据后,使用 setTimeout(() > {this.getSwiper(); //生成swiper方法}, 0); 下面是我项目具体使用的参考例子: 方法二&#xff…

详细解释Spring事务的传播机制

详细解释Spring事务的传播机制 Spring框架中,事务传播机制是指在一个事务方法调用另一个事务方法时,Spring如何管理这些方法之间的事务边界。Spring提供了七种事务传播行为,以满足不同的业务需求。下面将详细解释每种传播行为及其适用场景&a…

IDEA 安装与激活详细教程最新(附最新激活码)2099年亲测有效!

我们先从 IDEA 官网下载 IDEA 2024.1 版本的安装包,下载链接如下: https://www.jetbrains.com/idea/download/ 点击下载(下载Ultimate版),静心等待其下载完毕即可。 激活方式: 正版专属激活码领取

vcruntime140_1.dll是什么东东?vcruntime140_1.dll缺失的8个解决方法

当电脑出现找不到vcruntime140_1.dll,或vcruntime140_1.dll丢失无法打开软件怎么办?小编今天在本文详细为大家介绍解决方法与介绍vcruntime140_1.dll究竟是什么等vcruntime140_1.dll的问题。 一、vcruntime140_1.dll文件是什么 文件概述定义与功能 vcruntime140_…

观测云「可观测性解决方案」荣耀登入华为云官网

继成功上架华为云云商店联营商品后,「观测未来可观测性解决方案」已进一步正式登陆华为云官网,标志着双方合作的深化与拓展。这一全新上架的解决方案是观测云技术实力的集大成之作,为企业提供了一个全面升级的数字化监控观测服务。 观测云&am…

模拟局部下雨的天气思路Mars3d实现参考

目前mars3d里只有下雨滤镜那种,不能表现局部 曲线救国思路参考: 1、根据局部矢量范围求一个外接矩形bbox,根据bbox用turf按照比例尺生成网格(比如50x50公里一个网格) 2、所有的网格再按照矢量范围裁剪一下&#xff0…

「51媒体」湖北地区媒体邀约

传媒如春雨,润物细无声,大家好,我是51媒体网胡老师。 媒体宣传加速季,100万补贴享不停,一手媒体资源,全国100城线下落地执行。详情请联系胡老师。 湖北地区拥有网络媒体、电视媒体、报纸杂志、视频媒体等多…

python AI全栈工程师

python AI全栈工程师 前端:Streamlit Streamlit是一个开源的Python库,专为数据科学家和机器学习工程师设计,用于快速构建交互式用户界面。Streamlit功能强大、易于使用,特别适合数据科学家和机器学习工程师快速构建和部署交互式数…

Windows 计划任务 配置 SVN 每天定时更新代码 参照步骤

1. 打开Windows 计划任务 - 创建任务 2. 程序或脚本:配置TortoiseSVN 的安装目录 3. 添加参数: update SVN文件目录 4. 触发器 设置 每天凌晨 1点 5. 常规设置

巡检机器人智能联网,促进工厂自动化

随着工业4.0和智能制造的快速发展,企业引入自动化设备和智能机器人以提高生产效率和降低人工成本已成为大势所趋。其中,巡检机器人作为一种能够在复杂和危险环境中进行自动巡检的设备,受到了广泛关注。如何实现巡检机器人稳定、安全的联网是每…

Java工具包——Lombok

目录 1. maven仓库手动导入依赖注解 1.1 maven仓库引入依赖 1.2 在类上使用Data注解 1.3 在属性上使用Getter与Setter注解 2. EditStarters插件注解 2.1 安装EditStarters插件 2.2 在pom.xml中进行操作 2.3 在java对象类中使用注解 3. lombok工具使用结果查看 3.1…

use embeddings stored in vector db to reduce work for LLM generating response

题意:使用存储在向量数据库中的嵌入来表示,以减少大型语言模型(LLM)生成响应的工作量。 问题背景: Im trying to understand what the correct strategy is for storing and using embeddings in a vector database, …

el-select多选超过两个选项省略

前言 相信大家都遇到过这种情况:Element下拉框多选的时候有个毛病,就是选的数量过多就会把下拉框撑高,从而影响布局;但是如果使用了里面collapse-tags属性,element设置的只显示一个,超过一个就隐藏省略了&…

【Java】微博系统设计:怎么应对热点事件的突发访问压力?

一、问题解析 微博(microblog)是一种允许用户即时更新简短文本(比如140个字符),并可以公开发布的微型博客形式。今天我们就来开发一个面向全球用户、可以支持10亿级用户体量的微博系统,系统名称为“Weitte…

PyCharm左侧项目区域出现淡黄色背景如何解决

PyCharm左侧项目区域出现淡黄色背景如何解决 解决方法: 1、打开pycharm 文件 - > Setting-> 项目 -> 项目结构 2、添加内容根 为 你的项目根目录即可恢复