Python入门-字符串Str

字符串

字符串 是Python中的 不可变 数据类型

1.字符串相关处理方法

在这里插入图片描述

  1. 大小写转换
# 大小写转换
s1='HelloWorld'
new_s2=s1.lower()
print(s1,new_s2)new_s3=s1.upper()
print(new_s3)

结果:

D:\Python_Home\venv\Scripts\python.exe D:\Python_Home\chap6\示例6-1字符串的相关处理方法1.py 
HelloWorld helloworld
HELLOWORLD
  1. 字符串的分隔
e_mail='2624137649@qq.com'
lst=e_mail.split('@')
print('邮箱名:',lst[0],'邮箱服务器域名:',lst[1])

结果:

邮箱名: 2624137649 邮箱服务器域名: qq.com
  1. 判断前缀和后缀
s1='HelloWorld'
print(s1.startswith('H')) #True
print(s1.startswith('P')) #False print('demo.py'.endswith('.py'))
print('demo.text'.endswith('.text'))

结果:

True
False
True
True
  1. 字符串的替换
s='HelloWorld'
#字符串的替换
new_s=s.replace('o','你好',1) #最后一个参数是替换次数,默认是全部替换
print(new_s)

结果:

Hell你好World
  1. 字符串在指定的宽度范围内居中
s='HelloWorld'
print(s.center(20))
print(s.center(20,'*'))

结果:

     HelloWorld     
*****HelloWorld*****

注:第一个HelloWorld 左右两边都有空格的

  1. 去掉字符串左右的空格
s=' Hellow  world   '
print(s.strip())
print(s.lstrip())  #去掉字符串左侧的空格
print(s.rstrip())  #去掉字符串右侧的空格

结果:

Hellow  world
Hellow  world   Hellow  world
  1. #去掉指定的字符
s3='dl-Helloworld'
print(s3.strip('ld'))  #与顺序无关  -Hellowor
print(s3.lstrip('ld'))          # -Helloworld
print(s3.rstrip('dl'))          # dl-Hellowor

结果:

-Hellowor
-Helloworld
dl-Hellowor

2.格式化字符串

  • 使用占位符进行格式化
name='马冬梅'
age=18
score=98.5print('姓名:%s,年龄:%d,成绩:%f' % (name,age,score))

结果:

姓名:马冬梅,年龄:18,成绩:98.500000

此时成绩后面有很多小数点 00000怎么办?
那我们就精确一下位数,更改代码:

print('姓名:%s,年龄:%d,成绩:%.1f' % (name,age,score))

结果:

姓名:马冬梅,年龄:18,成绩:98.5
  • f-string
name='马冬梅'
age=18
score=98.5print(f'姓名:{name},年龄:{age},成绩:{score}')

结果:

姓名:马冬梅,年龄:18,成绩:98.5
  • 使用字符串的 format 方法 #0、1、2 相当于索引
name='马冬梅'
age=18
score=98.5
print('姓名:{0},年龄:{1},成绩:{2}'.format(name,age,score))
print('姓名:{2},年龄:{0},成绩:{1}'.format(age,score,name))

结果:

姓名:马冬梅,年龄:18,成绩:98.5
姓名:马冬梅,年龄:18,成绩:98.5

3.字符串的编码和解码

将str类型转换成 bytes 类型,需要用到字符串的 encode()方法

str.encode(encoding=‘utf-8’,errors=‘strict/ignore/replace’)

bytes.decode(encoding=‘utf-8’,errors=‘strict/ignore/replace’)

注:errors=‘strict/ignore/replace’ 里面是 分别是三种编码和解码出错时,出现的三种反应的模式

  • 编码:
s='伟大的中国梦'
#编码 str->bytes
scode=s.encode(errors='replace')  #默认是utf-8,因为 utf-8中文占3个字节
print(scode)

结果:

b'\xe4\xbc\x9f\xe5\xa4\xa7\xe7\x9a\x84\xe4\xb8\xad\xe5\x9b\xbd\xe6\xa2\xa6'

gbk:

scode_gbk=s.encode('gbk',errors='replace')
print(scode_gbk)

结果:

b'\xce\xb0\xb4\xf3\xb5\xc4\xd6\xd0\xb9\xfa\xc3\xce'
  • 编码中的出错问题:
    (这里我们想办法去找一个图标)

(1).replace

s2='耶🤮'
scode_error=s2.encode('gbk',errors='replace')   #strict
print(scode_error)

结果:

b'\xd2\xae?'

replace 模式下这种图标编程一种: 问号

(2). ignore (忽略)

s2='耶🤮'
scode_error=s2.encode('gbk',errors='ignore')   #strict
print(scode_error)

结果:

b'\xd2\xae'

它就忽略了

(3). strict

s2='耶🤮'
scode_error=s2.encode('gbk',errors='strict')   #strict
print(scode_error)

结果:

Traceback (most recent call last):File "D:\Python_Home\chap6\示例6-5字符串的编码和解码.py", line 17, in <module>scode_error=s2.encode('gbk',errors='strict')   #strict^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
UnicodeEncodeError: 'gbk' codec can't encode character '\U0001f92e' in position 1: illegal multibyte sequence

报错了

  • 解码 bytes->str

print(bytes.decode(scode_gbk,'gbk'))
print(bytes.decode(scode,'utf-8'))

结果:

伟大的中国梦
伟大的中国梦

4.数据的验证

  • 判断是否为数字
print('123'.isdigit())  #True
print('一二三'.isdigit())  #False
print('02j223'.isdigit()) #False
  • 所有字符都是数字
print('1234'.isnumeric())    #True
print('一二三'.isnumeric())   #True
print('02j223'.isnumeric())  #False
print('壹贰叁'.isnumeric())   #True

中文的 "一二三"和 “壹贰叁” 都是可以识别的

  • 所有字符都是字母(包含中文字符)
print('hello你好'.isalpha())      #True
print('hello你好123'.isalpha())   #False
print('hello你好一二三'.isalpha()) #True
print('hello你好壹贰叁'.isalpha())  #True
  • 所有字符都是数字或字母
print('hello你好'.isalnum())      #True
print('hello你好123'.isalnum())   #False
print('hello你好一二三'.isalnum()) #True
print('hello你好壹贰叁'.isalnum()) #True
  • 所有字符都是首字母大写
print('Hello'.istitle())        #True
print('HelloWorld'.istitle())   #False
print('Helloworld'.istitle())   #True
print('Hello World'.istitle())  #True
print('Hello world'.istitle())  #False
  • 判断是否都是空白字符
print('\t'.isspace())    #True
print(' '.isspace())     #True
print('\n'.isspace())    #True

字符串的拼接

  • 使用+号
s1='hello'
s2='world'
print(s1+s2)
  • 使用字符串的 join()方法
s1='hello'
s2='world'
print(''.join([s1,s2]))
print('*'.join(['hello','world','python','java','php']))

结果:

helloworld
hello*world*python*java*php
  • 直接拼接
print('hellow''world')
  • 使用格式化字符串进行拼接
s1='hello'
s2='world'
print('%s%s' % (s1,s2))
print(f'{s1}{s2}')
print('{0}{1}'.format(s1,s2))

字符串的去重

s='helloworldhelloworlddasdfrgrtg5fefrf'#字符串拼接及 not in
new_s=''
for item in s:if item not in new_s:new_s+=item  #拼接
print(new_s)#使用索引 + not in
new_s2=''
for i in range(len(s)):if s[i] not in new_s2:new_s2+=s[i]
print(new_s2)# 通过集合去重+列表排序
new_s3=set(s)
lst=list(new_s3)
lst.sort(key=s.index)
print(''.join(lst))

结果:

D:\Python_Home\venv\Scripts\python.exe D:\Python_Home\chap6\示例6-8字符串的去重操作.py 
helowrdasfgt5
helowrdasfgt5
helowrdasfgt5

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

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

相关文章

Android Studio实现课表

本文章主要展示课表的实现&#xff0c;里面包含很多控件的用法&#xff0c;比如吐司Toast、通知Notification、ListView&#xff0c;数值选择器NumberPicker&#xff0c;SeekBar同editText的关联。抽屉导航栏 还有一些其他的功能&#xff0c;比如InputFilter自定义的字符过滤器…

华为云CCE-集群内访问-根据ip访问同个pod

华为云CCE-集群内访问-根据ip访问同个pod 问题描述&#xff1a;架构如下&#xff1a;解决方法&#xff1a; 问题描述&#xff1a; 使用service集群内访问时&#xff0c;由于启用了两个pod&#xff0c;导致请求轮询在两个pod之间&#xff0c;无法返回正确的结果。 架构如下&am…

【CISSP学习笔记】6. 安全开发

该知识领域涉及如下考点&#xff0c;具体内容分布于如下各个子章节&#xff1a; 理解安全并将其融入软件开发生命周期 (SDLC) 中在软件开发环境中识别和应用安全控制评估软件安全的有效性评估获得软件对安全的影响定义并应用安全编码准则和标准 6.1. 系统开发控制 6.1.1. 软…

uniapp的css样式图片大小截图展示

目录 截取图片前截取图片后第一种方式&#xff1a;代码第二种方式&#xff1a;代码最后 截取图片前 截取图片后 第一种方式&#xff1a;代码 <view class"swiper-box-img"><image class"swiper-box-img-img" :src"item.file_path" mod…

计算机毕业设计 基于SpringBoot的高校危化试剂仓储管理系统的设计与实现 Java实战项目 附源码+文档+视频讲解

博主介绍&#xff1a;✌从事软件开发10年之余&#xff0c;专注于Java技术领域、Python人工智能及数据挖掘、小程序项目开发和Android项目开发等。CSDN、掘金、华为云、InfoQ、阿里云等平台优质作者✌ &#x1f345;文末获取源码联系&#x1f345; &#x1f447;&#x1f3fb; 精…

JVM工作原理与实战(一):初识JVM

专栏导航 JVM工作原理与实战 RabbitMQ入门指南 从零开始了解大数据 目录 专栏导航 前言 一、JVM概念 二、JVM的三大核心功能 1.内存管理 2.解释执行虚拟机指令 3.即时编译 三、常见的JVM虚拟机 1.HotSpot 2.GraalVM 3.Dragonwell JDK 龙井 4.Eclipse OpenJ9 总结 …

数据仓库-数仓优化小厂实践

一、背景 由于公司规模较小&#xff0c;大数据相关没有实现平台化&#xff0c;相关的架构都是原生的Apache组件&#xff0c;所以集群的维护和优化都需要人工的参与。根据自己的实践整理一些数仓相关的优化。 二、优化 1、简易架构图 2、ODS层优化 2.1 分段式解析 随着业务增长…

【XR806开发板试用】XR806串口驱动CM32M对小厨宝的控制实验

一.说明 非常感谢基于安谋科技STAR-MC1的全志XR806 Wi-FiBLE开源鸿蒙开发板试用活动,并获得开发板试用。 XR806是全志科技旗下子公司广州芯之联研发设计的一款支持WiFi和BLE的高集成度无线MCU芯片&#xff0c;支持OpenHarmony minisystem和FreeRTOS&#xff0c;具有集成度高、…

2013年第二届数学建模国际赛小美赛B题寄居蟹进化出人类的就业模式解题全过程文档及程序

2013年第二届数学建模国际赛小美赛 B题 寄居蟹进化出人类的就业模式 原题再现&#xff1a; 寄居蟹是美国最受欢迎的宠物品种&#xff0c;依靠其他动物的壳来保护。剥去寄居蟹的壳&#xff0c;你会看到它柔软、粉红色的腹部卷曲在头状的蕨类叶子后面。大多数寄居蟹喜欢蜗牛壳&…

每日一题:LeetCode-LCR 179. 查找总价格为目标值的两个商品

每日一题系列&#xff08;day 16&#xff09; 前言&#xff1a; &#x1f308; &#x1f308; &#x1f308; &#x1f308; &#x1f308; &#x1f308; &#x1f308; &#x1f308; &#x1f308; &#x1f308; &#x1f308; &#x1f308; &#x1f308; &#x1f50e…

ChatGPT在地学、GIS、气象、农业、生态、环境等领域中的高级应用

以ChatGPT、LLaMA、Gemini、DALLE、Midjourney、Stable Diffusion、星火大模型、文心一言、千问为代表AI大语言模型带来了新一波人工智能浪潮&#xff0c;可以面向科研选题、思维导图、数据清洗、统计分析、高级编程、代码调试、算法学习、论文检索、写作、翻译、润色、文献辅助…

NodeJs 第四章 net、http、https 模块

net、http、https 模块 netnet 模块是什么net 模块能干些什么net 模块如何创建服务器net 模块如何创建客户端 http如何发送一个http请求如何创建 http 服务 https如何获取 SSL 证书如何创建一个 https 服务 net net 模块是什么 net 模块异步网络 API&#xff0c;用于创建基于…

MongoDB主从复制,一文打尽!

&#x1f4e2;&#x1f4e2;&#x1f4e2;&#x1f4e3;&#x1f4e3;&#x1f4e3; 哈喽&#xff01;大家好&#xff0c;我是【IT邦德】&#xff0c;江湖人称jeames007&#xff0c;10余年DBA及大数据工作经验 一位上进心十足的【大数据领域博主】&#xff01;&#x1f61c;&am…

Spring Boot学习随笔- Jasypt加密数据库用户名和密码以及解密

学习视频&#xff1a;【编程不良人】2021年SpringBoot最新最全教程 第十九章、Jasypt加密 Jasypt全称是Java Simplified Encryption&#xff0c;是一个开源项目。 Jasypt与Spring Boot集成&#xff0c;以便在应用程序的属性文件中加密敏感信息&#xff0c;然后在应用程序运行…

mac下jd-gui提示没有找到合适的jdk版本

mac下jd-gui提示jdk有问题 背景解决看一下是不是真有问题了方法一&#xff1a;修改启动脚本方法二&#xff1a;设置launchd环境变量 扩展动态切jdk脚本(.bash_profile) 背景 配置了动态jdk后&#xff0c;再次使用JD-GUI提示没有找到合适的jdk版本。 解决 看一下是不是真有问题…

《数据结构、算法与应用C++语言描述》- 平衡搜索树 -全网唯一完整详细实现插入和删除操作的模板类

平衡搜索树 完整可编译运行代码见&#xff1a;Github::Data-Structures-Algorithms-and-Applications/_34Balanced search tree 概述 本章会讲AVL、红-黑树、分裂树、B-树。 平衡搜索树的应用&#xff1f; AVL 和红-黑树和分裂树适合内部存储的应用。 B-树适合外部存储的…

gzip引入后node_modules中.cache compression-webpack-plugin占用内存过多

1.Gzip Gzip&#xff08;GNU zip&#xff09;是一种常见的文件压缩格式和压缩算法&#xff0c;通常用于在 Web 服务器上对静态资源文件进行压缩&#xff0c;以减小文件大小并加快文件传输速度。在前端开发中&#xff0c;经常会使用 Gzip 压缩来优化网站的性能。 Gzip 压缩通过…

云计算:OpenStack 配置云主机实例的资源实现内网互通

目录 一、实验 1. 环境 2.配置项目及用户 3.配置规格实例与镜像 4.配置VPC 5. 配置安全组 6. 创建云主机 cs_01 &#xff08;cirros系统&#xff09; 7.创建云主机 cs_02 &#xff08;cirros系统&#xff09; 8.创建云主机 cs_03 &#xff08;cirros系统&#xff09; …

AI大模型引领未来智慧科研暨丨ChatGPT在地学、GIS、气象、农业、生态、环境等领域中的高级应用

以ChatGPT、LLaMA、Gemini、DALLE、Midjourney、Stable Diffusion、星火大模型、文心一言、千问为代表AI大语言模型带来了新一波人工智能浪潮&#xff0c;可以面向科研选题、思维导图、数据清洗、统计分析、高级编程、代码调试、算法学习、论文检索、写作、翻译、润色、文献辅助…

第十三章 Nacos服务注册和配置中心

Nacos服务注册和配置中心 gitee&#xff1a;springcloud_study: springcloud&#xff1a;服务集群、注册中心、配置中心&#xff08;热更新&#xff09;、服务网关&#xff08;校验、路由、负载均衡&#xff09;、分布式缓存、分布式搜索、消息队列&#xff08;异步通信&#…