Python(字符串)

news2024/9/20 10:41:03
方法名描述说明

str.lower()     

将str字符串全部转化为小写字母,结果为一个新的字符串
str.upper()将str字符串全部转化为大写字母,结果为一个新的字符串
str.split(sep=None)将str按照指定的分隔符sep分隔,结果为列表类型
str.count(sub)结果为sub这个字符串在str中出现的次数
str.find(sub)查询sub这个字符串在str中是否存在,如果不存在结果为-1,如果存在结果为sub首次出现的索引
str.index(sub)功能与find相同,区别在于要查询的sub不存在时程序报错
str.startswith(s)查询字符串str是否以子串s开头
str.endswith(s)查询字符串str是否以子串s结尾
#具体使用示例
#大小写
s1='Hello'
new_s2=s1.lower()
print(s1,new_s2)

new_s3=s1.upper()
print(new_s3)

#字符串的分隔
e_mail='sa!123.com'
lst=e_mail.split('!')
print('前',lst[0],'后',lst[1])

#统计数
print(s1.count('o'))

#检索操作
print(s1.find('o'))
print(s1.find('p'))
print(s1.index('o'))
#print(s1.index('p')
#判断前后缀
print(s1.startswith('p'))
print(s1.startswith('H'))
print('demo.py'.endswith('.py'))
print('text.txt'.endswith('.txt'))

字符串是不可变类型 

方法名描述说明
str.replace(old,news)使用news代替所有old字符串,结果为一个新的字符串
str.center(width,fillchar)字符串str在指定宽度范围内居中,可以使用fillchar进行填充
str.join(iter)在iter后面每个元素都增加一个新的字符串str
str.strip(chars)从字符串中去掉左侧和右侧chars中列出的字符串
str.lstrip(chars)从字符串中去掉左侧chars中列出的字符串
str。rstrip(chars)从字符串中去掉右侧chars中列出的字符串
#方法2
s='HelloWorld'
#字符串的替换
new_s=s.replace('o','你好',1)##1表示只会替换第一个o
print(new_s)

print(s.center(20))
print(s.center(20,'*'))

s='    Hello    World    '
print(s.strip())#去除左右的空格
print(s.lstrip())
print(s.rstrip())

#去掉指定的字符
s3='dl-Helloworld'
print(s3.strip('ld'))#与ld顺序无关
print(s3.lstrip('ld'))
print(s3.rstrip('dl'))
#三种结果如下
# -Hellowor
# -Helloworld
# dl-Hellowor

使用格式化字符串操作

用格式化字符串可以连接各种字符串均不会报错

#格式化字符串
name='马冬梅'
age=18
score=98.5
print('姓名:%s,年龄:%d,成绩:%f'%(name,age,score))

#(2)f-string
print(f'姓名:{name},年龄:{age},成绩:{score}')

#(3)使用字符串的format方法
print('姓名:{0},年龄:{1},成绩:{2}'.format(name,age,score))
print('姓名:{2},年龄:{0},成绩:{1}'.format(age,score,name))#format里面的顺序根据前面的{}中数字的定义来看

格式化字符串详细的格式大体与C语言差不多

s='helloworld'
print('{0:*<20}'.format(s))#字符串的显示宽度为20,左对齐,空白部分使用*填充
print('{0:*>20}'.format(s))#字符串的显示宽度为20,右对齐,空白部分使用*填充
print('{0:*^20}'.format(s))#表示居中对齐

#居中
print(s.center(20,'*'))

#千位分隔符(只适用于整数和浮点数)
print('{0:,}'.format(987654321))
print('{0:,}'.format(987654321.789345))
# 987,654,321
# 987,654,321.789345

#浮点数小数部分的精度
print('{0:.2f}'.format(3.1415926))
#字符串类型,表示是最大的显示长度
print('{0:.5}'.format('helloworld'))
#3.14
# hello

#整数类型
a=425
print('二进制:{0:b},十进制:{0:d},八进制:{0:o},十六进制:{0:x},十六进制:{0:X}'.format(a))
# 二进制:110101001,十进制:425,八进制:651,十六进制:1a9,十六进制:1A9
#浮点数类型
b=3.1415926
print('{0:.2f},{0:.2E},{0:.2e},{0:.2%}'.format(b))
# 3.14,3.14E+00,3.14e+00,314.16%

字符串的编码和解码

bytes类型表示二进制类型

str-编码->bytes-解码->str

#字符串的编码
s='伟大的中国梦'#6个字符
scode=s.encode(errors='replace')#默认为utf-8,因为utf-8中文占3个字节
print(scode)
scode_gbk=s.encode('gbk',errors='replace')#gbk中中文占2个字节
print(scode_gbk)

#编码出错问题
s2='耶(^-^)V😊'
scode_error=s2.encode('gbk',errors='replace')
print(scode)
scode_error=s2.encode('gbk',errors='ignore')
print(scode)
# scode=s2.encode('gbk',errors='strict')
# print(scode)

#解码
print(bytes.decode(scode_gbk,'gbk'))
print(bytes.decode(scode,'utf-8'))
#编码与解码一一对应,gbk-->gbk,utf-8--->utf-8

数据的验证

方法名描述说明
str.isdigit()所有字符都是(阿拉伯数字)
str.isnumeric()

所有字符都是数字

str.isalpha()所有字符都是字母(包含中文字符)
str.islower()所有字符都是小写
str.isupper()所有字符都是大写
str.istitle()所有字符都是首字母大写
str.isalnum()所有字符都是数字或字母包含中文字符
str.isspace()所有字符都是空白字符(\n,\t等)
print('123'.isdigit())#True
print('一二三'.isdigit())#False
print('0b1010'.isdigit())#False
#综上,对于isdigit而言,只有阿拉伯数字可以被识别

print('123'.isnumeric())#True
print('一二三'.isnumeric())#Ture
print('0b1010'.isnumeric())#False
#对于isnumeric而言阿拉伯数字,汉字,罗马数字都可以被识别,但是二进制的不可以被识别

print('hello你好'.isalpha())#True
print('hello你好123'.isalpha())#False
print('hello你好一二三'.isalpha())#True
#isalpha——————阿拉伯数字不可以,罗马数字不可以,但是汉字的可以

print('hello你好'.isalnum())#True
print('hello你好123'.isalnum())#True
print('hello你好一二三'.isalnum())#True
#isalnum——————罗马数字都可以识别

print('@'*20)

print('Helloworld'.islower())#False
print('helloworld'.islower())#Ture
print('hello你好'.islower())#Ture
#只要有大写就报错

print('@'*20)

print('HelloWOrld'.isupper())#False
print('HELLOWORLD'.isupper())#Ture
print('HELLO你好'.isupper())#Ture
#只有有小写字母就报错,其他情况不报错


print('Hello'.istitle()) # #Ture
print('HelloWorld'.istitle())#False
print('Hello World'.istitle())#Ture
print('Hello world'.istitle())#False

print('-'*20)
print('\t'.isspace())
print(' '.isspace())
print('\n'.isspace())
#都是Ture
#字符串的拼接
s1='hello'
s2='world'
#1
print(s1+s2)
#2
print(''.join([s1,s2]))

print('*'.join(['hello','world','pyton','java','php']))
print('你好'.join(['hello','world','pyton','java','php']))
# hello*world*pyton*java*php
# hello你好world你好pyton你好java你好php

#3
print('hello''world')

#4使用格式化字符串进行拼接
print('%s%s' %(s1,s2))
print(f'{s1}{s2}')
print('{0}{1}'.format(s1,s2))

字符串的去重操作

s='helloworldhelloworldabdhresx'
#(1)
new_s=''
for item in s:
    if item not in new_s:
        new_s+=item
print(new_s)


#(2)索引+not in
new_s2=''
for i in range(len(s)):
    if s[i] not in new_s2:
        new_s2+=s[i]
print(new_s2)

#3
new_s3=set(s)
lst=list(new_s3)
print(lst)
lst.sort(key=s.index)
print(''.join(lst))

正则表达式

 

 

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

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

相关文章

Golang | Leetcode Golang题解之第239题滑动窗口最大值

题目&#xff1a; 题解&#xff1a; func maxSlidingWindow(nums []int, k int) []int {n : len(nums)prefixMax : make([]int, n)suffixMax : make([]int, n)for i, v : range nums {if i%k 0 {prefixMax[i] v} else {prefixMax[i] max(prefixMax[i-1], v)}}for i : n - 1…

使用C#实现无人超市管理系统——数据结构课设(代码+PPT+说明书)

说明&#xff1a;这是自己做的课程设计作业&#xff0c;得分情况98/100 如果想要获取私信我 本项目采用线性表中的链表来进行本次系统程序的设计。链表分为两条线&#xff0c;分别是存储用户信息和商品信息&#xff0c;并且都设为公共属性&#xff0c;方便对用户信息和商品信息…

QT5:多窗口跳转

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助 目录 前言 一、环境 二、步骤 三、代码实现 四、效果图 前言 学习使用qt5完成多窗口&#xff08;界面&#xff09;跳转&#xff1a;从主界面可分别跳转至界面一和界面二&#xf…

echarts实现3d柱状效果

代码如下&#xff0c;单个的调第一个方法&#xff0c;多个柱状的调第二个方法&#xff0c;具体情况修改参数或者二次开发即可 //3d柱状图 export function getEcharts3DBar (xAxisData:string[][name1,name2,name3], data:number[][1,2,3], colorObj:IBaseObject{topStartColo…

【中项】系统集成项目管理工程师-第2章 信息技术发展-2.1信息技术及其发展-2.1.4信息安全与2.1.5信息技术的发展

前言&#xff1a;系统集成项目管理工程师专业&#xff0c;现分享一些教材知识点。觉得文章还不错的喜欢点赞收藏的同时帮忙点点关注。 软考同样是国家人社部和工信部组织的国家级考试&#xff0c;全称为“全国计算机与软件专业技术资格&#xff08;水平&#xff09;考试”&…

css前端面试题

1.什么是css盒子模型&#xff1f; 盒子模型包含了元素内容&#xff08;content&#xff09;、内边距&#xff08;padding&#xff09;、边框&#xff08;border&#xff09;、外边距&#xff08;margin&#xff09;几个要素。 标准盒子模型和IE盒子模型的区别在于其对元素的w…

QT调用VNC并放到一个窗口中

1.VNC资源下载 本例中的这个VNC可以从以下连接中下载&#xff0c;也可以从官网上下载&#xff0c;应该都是类似的。 https://download.csdn.net/download/xiaoding_ding/89549092 下载完成后放到项目的release文件夹中 2.程序中引用 2.1在主界面中放置一个按钮&#xff0c;…

NAS新品“翻车”后,绿联科技要上市了

在消费电子市场回暖的东风中&#xff0c;又一消费电子知名企业登陆A股。 近日&#xff0c;深圳市绿联科技股份有限公司&#xff08;下称“绿联科技”&#xff09;开启申购&#xff0c;将在创业板上市。本次上市&#xff0c;绿联科技的发行价为21.21元/股&#xff0c;发行数量为…

【自动驾驶汽车通讯协议】SPI通讯:深入理解与应用

文章目录 0. 前言1. 工作原理2. 模式与配置2.1 CPOL (Clock Polarity)2.2 CPHA (Clock Phase)2.3 组合模式 3. 特性与优势4. 在自动驾驶汽车中的应用5. 结论 0. 前言 按照国际惯例&#xff0c;首先声明&#xff1a;本文只是我自己学习的理解&#xff0c;虽然参考了他人的宝贵见…

给定一整数数组,其中有p种数出现了奇数次,其他数都出现了偶数次,怎么找到这p个数?

给定一长度为m的整数数组 &#xff0c;其中有p种不为0的数出现了奇数次&#xff0c;其他数都出现了偶数次&#xff0c;找到这p个数。 要求&#xff1a;时间复杂度不大于O(n)&#xff0c;空间复杂度不大于O(1)。 由于时间复杂度不大于O(n)&#xff0c;则不能在遍历数组中嵌套遍…

SpringMVC源码深度解析(中)

接上一遍博客《SpringMVC源码深度解析(上)》继续聊。最后聊到了SpringMVC的九大组建的初始化&#xff0c;以 HandlerMapping为例&#xff0c;SpringMVC提供了三个实现了&#xff0c;分别是&#xff1a;BeanNameUrlHandlerMapping、RequestMappingHandlerMapping、RouterFunctio…

基于VMware(虚拟机) 创建 Ubunton24.04

目录 1.设置 root 密码 2. 防火墙设置 2.1 安装防火墙 2.2 开启和关闭防火墙 2.3 开放端口和服务规则 2.4 关闭端口和删除服务规则 2.5 查看防火墙状态 3. 换源 3.1 源文件位置 3.2 更新软件包 1.设置 root 密码 1. 切换到 root 用户 sudo -i 2. 设置新密码&#…

STM32 CAN外设(基于STMF103C8T6)

STM32内置bxCAN外设&#xff08;CAN控制器)&#xff0c;支持CAN2.0A和2.0B&#xff0c;可以自动发送CAN报文和按照过滤器自动接收指定CAN报文&#xff0c;程序只需处理报文数据而无需关注总线的电平细节 波特率最高可达1兆位/秒3个可配置优先级的发送邮箱2个3级深度的接…

前端表格解析方法

工具类文件 // fileUtils.tsimport { ref } from vue; import * as xlsx from xlsx;interface RowData {[key: string]: any; }export const tableData ref<RowData[]>([]);export async function handleFileSelect(url: string): Promise<void> {try {const res…

【Git远程操作】忽略特殊文件 | 配置命令别名

目录 忽略特殊文件 配置命令别名 忽略特殊文件 前面我们讲到git提供了一个特殊的配置文件.gitignore模板 在⽇常开发中&#xff0c;我们有些⽂件不想或者不应该提交到远端&#xff0c;⽐如保存了数据库密码的配置⽂件&#xff0c;那怎么让 Git 知道呢&#xff1f;在 Git ⼯作…

python-网络并发模型

3. 网络并发模型 3.1 网络并发模型概述 什么是网络并发 在实际工作中&#xff0c;一个服务端程序往往要应对多个客户端同时发起访问的情况。如果让服务端程序能够更好的同时满足更多客户端网络请求的情形&#xff0c;这就是并发网络模型。 循环网络模型问题 循环网络模型只能…

【应急响应】Windows应急响应手册(勒索病毒篇)

文章目录 前言一、勒索病毒简述保护现场确定勒索病毒家族根据勒索病毒类型寻找解决方法寻找加密器解决勒索善后阶段常规安全检查阶段 前言 本篇内容围绕勒索病毒事件进行分析&#xff0c;通过使用技术手段来确定勒索病毒家族并寻找解密方法&#xff0c;实战中过程中可参考文中…

【JavaScript 算法】堆排序:优先队列的实现

&#x1f525; 个人主页&#xff1a;空白诗 文章目录 一、算法原理堆的定义堆排序的步骤 二、算法实现构建最大堆注释说明&#xff1a; 三、应用场景四、总结 堆排序&#xff08;Heap Sort&#xff09;是一种基于堆数据结构的排序算法&#xff0c;具有较好的时间复杂度表现。堆…

uniapp中给data中的变量赋值报错

排查了一上午&#xff0c;原本以为是赋值的这个变量有一个键名是空字符串的问题&#xff0c;后来发现是因为在data中定义变量是写的是{}&#xff0c;如果写成null就不会报错了&#xff0c;具体原因不清楚为什么

jmeter部署

一、windows环境下部署 1、安装jdk并配置jdk的环境变量 (1) 安装jdk jdk下载完成后双击安装包&#xff1a;无限点击"下一步"直到完成&#xff0c;默认路径即可。 (2) jdk安装完成后配置jdk的环境变量 找到环境变量中的系统变量&#xff1a;此电脑 --> 右键属性 …