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

Python知识点5---字符串的使用

提前说一点:如果你是专注于Python开发,那么本系列知识点只是带你入个门再详细的开发点就要去看其他资料了,而如果你和作者一样只是操作其他技术的Python API那就足够了。

Python的字符串在使用上和其他语言的差别不大,常规操作都是一样的

比如取一个下标的值等

a = '123456'
print(a[0])

这里要说的是Python字符串和其他语言不一样的东西,首先给大家说的是在Python中,字符串的截取叫做 “切片” ,可以直接操作

a = '123456789'
print(a[0]) ---取单个下标对应值
print(a[2:5:1]) ---从下标2开始截取到下标5,截取步长为1
print(a[2:5:2]) ---从下标2开始截取到下标5,截取步长为2
print(a[2:5])	---从下标2开始截取到下标5,截取步长默认为1
print(a[:5])	---开始下标默认是0,截取到5
print(a[2:])	---从下标2开始截取到末尾
print(a[:])		---截取所有,相当于直接输出a
print(a[::-1])	---如果步长是负数,则结果是倒着截取的987654321
print(a[-4:-1])		---截取范围为负数的时候,同样是倒着截取678,而且注意倒着的时候下标是从1开始算,结果是678
print(a[-4:-1:1])	---当范围的两个数是负数,步长是正数时,和a[-4:-1]没差别,只是随着步长的变动截取间隔随之变动而已print(a[-9:-1:-1])	---注意这一条是不会有输出的,因为截取和范围的方向会相互冲突
print(a[-1:-9:-1])	---上一条想输出结果就要使得方向不冲突

这个切片,也就是截取操作大家看完之后可能会一脸闷,尤其是最后两条,所以我总结了一下,大家记住要领就好了

切片要领:
1、三个参数,前两个是范围,最后一个是步长
2、三个参数,正负均可,为正时代表从左开始计位,为负反之
3、范围确定区间的方向一定不能和步长的方向相冲

上面是字符串的截取操作,下面给大家介绍字符串的常用操作方法,注意只介绍常用方法,不常用的用到了网上自己找资料吧

一、查找使用find,c语言里面叫做模式匹配,其实就是找到子串在母串中的其实位置,如果找不到返回-1,该方法后两位参数是母串中的下标范围

a = '123456789'
print(a.find('34'))
print(a.find('34',5,8))

二、修改

replace(旧,新,替换次数),替换次数说的是母串中有多个旧串时替换多少个,不写全部替换,但是注意,该方法不会直接改原有母串,而是返回一个新的字符串,因为Python的字符串和其他语言一样是一个不可变的数据类型

a = '123456789'
print(a.replace('1','0'))

split(分割字符,分割次数),分割方法,分割次数说的是如果有多个分割字符,那么可以控制分割的次数,但是次数的计位是从第一次出现分割字符开始的,该方法结果返回的是一个列表

a = '123456789'
print(a.split('3'))

join(多个字符串或者一个列表),这个方法其实就是起到一个交替拼接的作用

b = ['a','b','c']
print('---'.join(b))
结果:a---b---c

capitalize(),将字符串第一个字符变为大写,其他字符全部小写

a = 'aBDYdBD'
print(a.capitalize())
结果:Abdydbd

title(),将字符串中每一个单词的首字母变为大写

a = 'abc abc abc'
print(a.title())
结果:Abc Abc Abc

lower(),全部小写

a = 'ABC abc abc'
print(a.lower())

upper(),全部大写

a = 'abc abc abc'
print(a.upper())

lstrip()、rstrip()、strip(),删除左侧、右侧、两侧的空白

a = '      abc abc abc'
print(a.lstrip())

ljust(对其长度,填充字符)、rjust()、center(),字符串左、右、中对其,注意中对其的时候有时候本不是绝对的居中,因为留给填充的位数不一定够

a = 'abc abc abc'
print(a.ljust(15,'.'))
结果:abc abc abc....

startswith()、endswith(),判断开头或结尾的字符串是否存在

a = 'abc abc abc'
print(a.startswith('abc'))
结果:True

isalpha()、isdigit()、isalnum()、isspace(),最后四个就不演示了,也是返回布尔类型,依次的作用是是否全是字母、是否全是数字、是否只是由数组字母组成、是否只有空格字符


常用的方法介绍结束了,最后给大家介绍一些Python字符串的小知识点

在之前的知识点中说了,Python的字符串用单引号或者双引号都可以,但其实也可以用三引号包裹

''' 123 '''
""" 123 """

三引号使用来做文档输出的,也就是说,随着内容的换行、缩进等等,都会体现

a = '''
I
am
Tom
'''
print(a)

做文档的输出时,三引号还有一个好处,当我们希望输出单引号时我们普通的输出时如下格式,需要单双引一起配合

print("I'm Tom")
或者
print('I\'m Tom')

而三引号没有这个顾虑

a = '''
I'm
Tom
'''
print(a)

最后Python不止有print输出函数,也支持input输入函数,当然输入接收的结果都是字符串,如果我们想要转换类型,Python给我们提供了直接转换的方法,比如想接收一个数值型,我们直接调用方法就可以

a = input()
b = int(a)

当然这种转换函数很多,不止是用来转换字符串的,下面我找了一些常用的,大家用的时候网上也找找就好
在这里插入图片描述

相关文章:

  • 知了汇智携手数字经济商会,共促物联网鸿蒙产教融合新篇章
  • 统信UOS SSH服务升级(ubuntu20)内网
  • 宏集JMobile Studio—实现HMI界面高自由度设计
  • EasyExcel之动态表头导出不生效
  • 2024年06月在线IDE流行度最新排名
  • 数字化校园建设让学习更加广阔
  • spring的加载过程
  • 【机器学习】——驱动智能制造的青春力量,优化生产、预见故障、提升质量
  • 深入解析JVM堆内存管理:对象流转与优化策略全揭秘
  • d2-crud-plus 使用小技巧(六)—— 表单下拉选择 行样式 溢出时显示异常优化
  • 如何在Java中安全地在列表中插入元素
  • element-plus 自定义命名空间 el-config-provider namespace 不起作用,html 的class值改变了,但是样式不对
  • 【中年危机】程序猿自救指南
  • 【C#】多线程中,跨线程实现对UI控件更新
  • 【并发程序设计】15.信号灯(信号量)
  • 《网管员必读——网络组建》(第2版)电子课件下载
  • 【技术性】Search知识
  • axios请求、和返回数据拦截,统一请求报错提示_012
  • java8-模拟hadoop
  • JavaScript对象详解
  • Java读取Properties文件的六种方法
  • jquery ajax学习笔记
  • Netty+SpringBoot+FastDFS+Html5实现聊天App(六)
  • Puppeteer:浏览器控制器
  • 从地狱到天堂,Node 回调向 async/await 转变
  • 动手做个聊天室,前端工程师百无聊赖的人生
  • 关键词挖掘技术哪家强(一)基于node.js技术开发一个关键字查询工具
  • 融云开发漫谈:你是否了解Go语言并发编程的第一要义?
  • 如何设计一个微型分布式架构?
  • 使用API自动生成工具优化前端工作流
  • mysql 慢查询分析工具:pt-query-digest 在mac 上的安装使用 ...
  • Nginx惊现漏洞 百万网站面临“拖库”风险
  • 基于django的视频点播网站开发-step3-注册登录功能 ...
  • ​Linux Ubuntu环境下使用docker构建spark运行环境(超级详细)
  • ​猴子吃桃问题:每天都吃了前一天剩下的一半多一个。
  • #07【面试问题整理】嵌入式软件工程师
  • #162 (Div. 2)
  • #前后端分离# 头条发布系统
  • #我与Java虚拟机的故事#连载02:“小蓝”陪伴的日日夜夜
  • (3)Dubbo启动时qos-server can not bind localhost22222错误解决
  • (CVPRW,2024)可学习的提示:遥感领域小样本语义分割
  • (附源码)springboot宠物医疗服务网站 毕业设计688413
  • (附源码)ssm经济信息门户网站 毕业设计 141634
  • (附源码)计算机毕业设计SSM疫情社区管理系统
  • (已解决)报错:Could not load the Qt platform plugin “xcb“
  • (转)Mysql的优化设置
  • (转载)hibernate缓存
  • ****** 二 ******、软设笔记【数据结构】-KMP算法、树、二叉树
  • .mysql secret在哪_MySQL如何使用索引
  • .NET / MSBuild 扩展编译时什么时候用 BeforeTargets / AfterTargets 什么时候用 DependsOnTargets?
  • .net core 3.0 linux,.NET Core 3.0 的新增功能
  • .NET 编写一个可以异步等待循环中任何一个部分的 Awaiter
  • .Net 应用中使用dot trace进行性能诊断
  • .net 怎么循环得到数组里的值_关于js数组
  • .NET上SQLite的连接