百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 热门文章 > 正文

Python基础之字符串类型 python字符串的常见操作

bigegpt 2024-10-18 04:10 8 浏览

1 字符串是一个有序的,不可修改的,元素以引号包围的序列。

python字符串的定义,双引号或者单引号中的数据,就是字符串

a = 100
print(a,type(a)) #100 <class 'int'>
b = 'hello' #hello <class 'str'>
print(b,type(b))

字符串之间存储的另一种方式:字符串和字符串之间可以相加

a = 'lao'
b = 'zhang'
c = 'kang'
d = a + b
print(d) #laozhang
a = 100
b = 200
s = a + b
print(s,type(s)) #300 <class 'int'>

2 python 字符串的索引

比如 'while' 字符串,可以按照下图理解,索引从零开始

a = 'while'
b = a[2]
print(b) #i

3 python 字符串的切片

切片的语法:[起始:结束:步长]

字符串[start:end:step]和三个参数都有默认值

start:默认值为零

end:默认值为字符串结尾元素

step:默认值为1

字符串[start:end:step],对应索引元素的范围,该范围包含起始端,不包含结束端,默认的截取方向是从左向右的

s = 'hello'
print(s[0:2]) #he
print(2:2:2) #l

也可以反取,字符串[负数],从右向左取

s = 'hello'
print(s[-1:-3:-1]) # ol

4.1 字符串的查找

count 计数功能,返回自定字符在字符串当中的个数

find 查找 返回从左向右第一个指定的字符,找不到返回-1

rfind 查找 返回从右向左第一个指定的字符,找不到返回-1

index 查找 返回从左往右第一个指定的字符,找不到报错

rindex 查找 返回从右向左第一个指定的字符,找不到报错

s = 'hello world python'
print(s.count('o')) #3
print(s.find('o')) #4
print(s.rfind('o')) #16
print(s.index('h')) #0
print(s.rindex('h')) #15

注意 index和find的区别是 find找不到返回-1 index找不到报错

4.2 字符串的拆分

字符串的分割 pratition 把字符串以指定的元素分成三部分 返回一个元组

splitlines 按照行分割,返回一个包含各行作为元素的列表,按照换行符分割

split 按照指定的内容进行分割

s = 'hello world python'
print(s.partition('world')) #('hello ', 'world', ' python')
print(s.split('o')) #['hell', ' w', 'rld pyth', 'n']
mystr="hello\nworld\npython\nand\nphp"
print(mystr.splitlines()) #['hello', 'world', 'python', 'and', 
 'php']
print("a\xa0a") # a a

4.3 字符串的替换

字符串的替换 replace 从左到右替换指定的元素,可以指定替换的个数,默认是全部替换

translate 按照对应关系来替换内容 from string import maketrans : 从字 符串导入maketrans

s = 'hello world '
print(s.replace('o','y')) #helly wyrld
print(s.replace('o','y',1)) #helly world

4.4 字符串的修饰


center 让字符串在指定的长度中居中,如果不能居中左短右长,可以指定填充的内容,默认以空格填充

ljust 让字符串在指定的长度左对齐,可以指定填充的内容,默认以空格代替

rjust 让字符串在指定的长度右对齐,可以指定填充的内容,默认以空格代替

zfill 将字符串填充到指定的长度,不足的地方用"0"从左开始补充

strip 默认去除两边的空格,去除的内容可以指定

rstrip 默认去除右边的空格,去除的内容可以指定

lstrip 默认去除左边的空格,去除的内容可以指定

format 按照顺序,将后面的参数传递给前面的大括号

s = 'hello'
print(s.center(10)) # hello 
print(s.center(10,'*')) #**hello***
print(s.ljust(10,'$')) #hello$$$
print(s.rjust(10,'
)) #$$$hello print(s.zfill(10)) #00000hello s1 = ' hello python ' s2 = '@@@hello python@@@' print(s1.strip()) #hello python print(s2.strip(' ')) #@@@hello python@@@ print(s2.lstrip('@')) #hello python@@@ print(s2.rstrip('@')) #@@@hello python

字符串的格式化


format{} 用法

相对基本格式化输出采用‘%’的方法,format()的功能更强大,该函数把字符串当成一个模板,通过传入的参数进行格式化,并且使用大括号“{}”,作为特殊字符代替“%”

1,使用位置参数

msg = '大家好我叫{},今年{}岁了'
print(msg.format('阿衰',10))
msg = '大家好我叫{0}!我叫{1}!我叫{0}!,今年{0}岁了!今年{1}岁了!今年{1}岁了!'
print(msg.format('阿衰',10))
结果:
大家好我叫阿衰,今年10岁了
大家好我叫阿衰!我叫10!我叫阿衰!,今年阿衰岁了!今年10岁了!今年10岁了!

2使用关键字参数

msg = '大家好我叫{name}!我叫{age}!我叫{name}!,今年{age}岁了!今年{age}岁了!今年{name}岁了!'
print(msg.format(name = 'zs',age = 21))
结果:
大家好我叫zs!我叫21!我叫zs!,今年21岁了!今年21岁了!今年zs岁了!

3.填充与格式化

:[填充字符][对齐方式 <^>][宽度]

< 表示 向左对齐, ^ 表示居中对齐, >表示向右对齐

print('我叫{:*^5},今年{:<4}岁了'.format('zss',50))
我叫*zss*,今年50 岁了

相关推荐

LangChain4j如何自定义文档转换器实现数据清洗?

LangChain4j提供了3种RAG(Retrieval-AugmentedGeneration,检索增强生成)实现,我们通常在原生或高级的RAG实现中,要对数据进行清洗,也就是将外接...

Java 8 Stream API 详解(java stream.)

Java8StreamAPI详解一、概述在Java8中,StreamAPI是一个重要的新特性。它为处理集合(如List、Set等)中的元素提供了一种高效且富有表现力的方式。Str...

Java修炼终极指南:185 使用 Stream 过滤嵌套集合

这是面试中的一个经典问题,通常从一个模型开始,如下所示(我们假设集合是一个List):publicclassAuthor{privatefinalStringname;pri...

java8的stream使用小示例(java stream())

据JetBrains发布的2021年开发者生态系统调查,Java8在java使用的版本中仍然是当前最流行的版本。72%的专业开发人员使用Java8作为其在java开发中主要编程语言版本。现...

Node.js Stream - 实战篇(node.js in action)

本文转自“美团点评技术团队”http://tech.meituan.com/stream-in-action.html背景前面两篇(基础篇和进阶篇)主要介绍流的基本用法和原理,本篇从应用的角度,介...

Java Stream:集合处理的api(java 集合操作)

JavaStream流:高效集合处理的函数式编程利器一、什么是JavaStream?Java8引入的StreamAPI是一套用于处理集合数据的流式编程接口,通过函数式风格(无副作用的...

去除 List 中的重复元素,你知道几种实现方法?

去除List中重复元素,这在实际编程或面试中经常遇到,每个人都有习惯的写法吧,这里抛砖引玉,汇总了一些实现方案,开拓思路。准备数据假设数组中有10个数据,可能有重复,需要将重复的数据从数组中去掉。pu...

Java开发者必看!Stream流式编程10个爆款技巧,让你代码优雅飞起

为什么你的Java代码总像拧巴的麻绳?掌握这10个Stream实战技巧,代码效率与优雅度将产生质的飞跃。以下案例均来自真实电商系统场景,带你感受流式编程的降维打击!一、过滤与映射组合拳(Filter...

leetcode每日一题之存在重复元素(存在重复元素 iii)

题:给定一个整数数组,判断是否存在重复元素。如果存在一值在数组中出现至少两次,函数返回true。如果数组中每个元素都不相同,则返回false。比如:输入:[1,2,3,1]输出:true...

告别for循环!揭秘Stream API如何让你的代码简洁度提升300%

一、当传统循环遇上现代需求真实场景复现:某电商平台需要处理10万条订单数据,要求:筛选出金额>500的订单提取用户ID并去重统计VIP用户数量传统实现方案://常规写法Set<Long...

Java中List去重的N种方法:从基础到优雅

Java中List去重的N种方法:从基础到优雅在日常的Java开发中,我们经常会遇到需要对List集合去重的情况。无论是为了清理重复的数据,还是为了优化算法性能,掌握多种去重方式都是一项非常实用的技能...

Java Stream流没用过?常用高频方法

概念Stream流是Java8添加的以一种链式调用的方法处理数据,主要侧重于计算。具有以下相关特点代码简洁链式调用Stream常用方法1.将数组变为当作List操作String[]strArr=...

核医学专业名词索引(M-R)(核医学重点归纳)

M吗啡(morphia)埋藏式心律转复除颤器(implantablecardioverterdefibrillator,ICD)麦角骨化醇(VD2,calciferol)脉冲堆积(pulsepi...

CodeMeter 新版发布(codesigner下载)

威步于2022年8月4日发布CodeMeter7.50及CodeMeter软件保护套装11.10,以下为新版内容。CodeMeterRuntime7.50StreamingSIMDExten...

世界上最小的五轴铣床Pocket NC(最小的五轴加工中心)

PocketNC,由MIT学生研制,还有说法是这款产品的设计者是来自美国蒙大拿州的一对极客夫妻。目前主要有两款产品:PocketNCV2-50,9000美元;PocketNCV2-10,60...