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.5

print('姓名:%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.5

print(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://www.mfbz.cn/a/276471.html

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

相关文章

python-39-flask+nginx+Gunicorn的组合应用

flask nginx Gunicorn 王炸 1 flasknginxgunicornsupervisor 1.1 myapp.py from flask import Flask app Flask(__name__)app.route("/") def test_link():return "the link is very good"if __name__"__main__":app.run()默认是5000端口…

C语言实现RSA算法加解密

使用c语言实现了RSA加解密算法&#xff0c;可以加解密文件和字符串。 rsa算法原理 选择两个大素数p和q&#xff1b;计算n p * q;计算φ(n)(p-1)(q-1)&#xff1b;选择与φ(n)互素的整数d&#xff1b;由de1 mod φ(n)计算得到e&#xff1b;公钥是(e, n), 私钥是(d, n);假设明…

SASS循环

<template><div><button class"btn type-1">默认按钮</button><button class"type-2">主要按钮</button><button class"type-3">成功按钮</button><button class"type-4">信息…

【Linux学习笔记】解析Linux系统内核:架构、功能、工作原理和发展趋势

操作系统是一个用来和硬件打交道并为用户程序提供一个有限服务集的低级支撑软件。一个计算机系统是一个硬件和软件的共生体&#xff0c;它们互相依赖&#xff0c;不可分割。计算机的硬件&#xff0c;含有外围设备、处理器、内存、硬盘和其他的电子设备组成计算机的发动机。但是…

【Spark精讲】一文讲透Spark RDD

MapReduce的缺陷 MR虽然在编程接口的种类和丰富程度上已经比较完善了&#xff0c;但这些系统普遍都缺乏操作分布式内存的接口抽象&#xff0c;导致很多应用在性能上非常低效 。 这些应用的共同特点是需要在多个并行操 作之间重用工作数据集 &#xff0c;典型的场景就是机器学习…

uniapp中uview组件库丰富LoadingPage 加载页

目录 基本使用 #显示或隐藏 #文字内容 #动画模式 #动画图片 #文字颜色 #文字大小 #图标大小 2.0.32 #背景颜色 #图标颜色 API #Props 基本使用 <template><view><u-loading-page></u-loading-page></view> </template>#显示或…

golang第五卷---包以及常用内置包归纳

包以及常用内置包归纳 包的概念math包time包sync包 Go 语言官方的包文档网站&#xff1a;包文档 包的概念 Go语言是使用包来组织源代码的&#xff0c;包&#xff08;package&#xff09;是多个 Go 源码的集合&#xff0c;是一种高级的代码复用方案。 任何源代码文件必须属于某…

Spark 集群搭建

文章目录 搭建前准备安装搭建解压并重命名环境变量配置配置文件yarn-site.xmlspark-env.sh 官网求 π(PI) 案例启动spark-shell通过浏览器查看显示查看 Spark 的网页信息展示 搭建前准备 下载地址&#xff1a;Index of /dist/spark (apache.org) 配置好 hadoop 环境&#xff…

2022年全国职业院校技能大赛(高职组)“云计算”赛项赛卷①第二场次:容器云

2022年全国职业院校技能大赛&#xff08;高职组&#xff09; “云计算”赛项赛卷1 第二场次&#xff1a;容器云&#xff08;40分&#xff09; 目录 2022年全国职业院校技能大赛&#xff08;高职组&#xff09; “云计算”赛项赛卷1 第二场次&#xff1a;容器云&#xff08…

开源预约挂号平台 - 从0到上线

文章目录 开源预约挂号平台 - 从0到上线演示地址源码地址可以学到的技术前端技术后端技术部署上线开发工具其他技术业务功能 项目讲解前端创建项目 - 安装PNPM - 使用VSCODE - 安装插件首页顶部与底部 - 封装组建 - 使用scss左右布局中间内容部分路由 - vue-routerBANNER- 走马…

阿里云30个公共云地域、89个可用区、5个金融云和政务云地域

阿里云基础设施目前已面向全球四大洲&#xff0c;公共云地域开服运营30个公共云地域、89个可用区&#xff0c;此外还拥有5个金融云、政务云地域&#xff0c;并且致力于持续的新地域规划和建设&#xff0c;从而更好的满足用户多样化的业务和场景需求。伴随着基础设施的加速投入和…

【机器学习】深度学习概论(一)

经典的机器学习算法与深度学习对比 一、机器学习面临的挑战 1.1 机器学习算法用于各种应用问题时所利用的典型特征 1.2 采用人工特征的机器学习算法处理流程 1.3 人工设计特征面临的问题 二、 深度学习技术 2.1 采用受限玻尔兹曼机和逐层训练的方法训练深层网络 2.2 自动编码器…

首次使用TypeScript,报错:无法重新声明块级范围变量(声明变量报错)

前几天在书写TypeScript代码时&#xff0c;出现了声明变量报错的情况&#xff0c;具体情况如下&#xff1a; let arr: number; arr 10; console.log(arr);报错如下&#xff1a; 解决方案&#xff1a; 在配置文件tsconfig.json中&#xff0c;配置如下代码&#xff1a; { &q…

js_常用事件演示

✨前言✨ 1.如果代码对您有帮助 欢迎点赞&#x1f44d;收藏⭐哟 后面如有问题可以私信评论哟&#x1f5d2;️ 2.博主后面将持续更新哟&#x1f618;&#x1f389;文章目录 &#x1f354;一、在JavaScript中什么是事件&#xff1f;&#x1f35f;二、为什么要使用事件&#x…

西软云XMS 反序列化RCE漏洞复现

0x01 产品简介 西软云XMS是基于云平台数据中心开发的支持多酒店、多语言、多平台的酒店管理系统。致力于以新一代云架构为国内四,五星级中高端酒店提供灵活、高度整合酒店业务,助力酒店智能转型升级。 0x02 漏洞概述 西软云XMS /fox-invoker/FoxLookupInvoker接口处存在反…

Erlang、RabbitMQ下载与安装教程(windows超详细)

目录 安装Erlang 1.首先安装RabbitMQ需要安装Erlang环境 2.点击下载好的.exe文件进行傻瓜式安装,一直next即可 3.配置Erlang环境变量 安装RabbitMQ 1.给出RabbitMQ官网下载址&#xff1a;Installing on Windows — RabbitMQ&#xff0c;找到 2.配置RabbitMQ环境变量&#xff0…

国际物流公司科普_集装箱种类区分和介绍_箱讯科技

集装箱运输的不断发展&#xff0c;为适应装载不同种类货物的需要&#xff0c;因而出现了不同种类的集装箱。今天和大家一起来总结一下。 按使用材料分类 根据箱子主体部件&#xff08;侧壁、端壁、箱顶等&#xff09;采用什么材料&#xff0c;就叫做什么材料制造的集装箱&…

机器学习的任务

根据学习任务的不同&#xff0c;机器学习算法大致可分为3类&#xff1a;监督学习、无监督学习和半监督学习。 监督学习&#xff08;Supervised Learning&#xff09; 在监督学习中&#xff0c;我们有一组带有标签&#xff08;即已知输出&#xff09;的训练样本作为输入。目标是…

Baumer工业相机堡盟工业相机如何通过BGAPI SDK实现Raw格式的图像保存(C++)

Baumer工业相机堡盟工业相机如何通过BGAPI SDK实现Raw格式的图像保存&#xff08;C&#xff09; Baumer工业相机Baumer工业相机通过SDK实现Raw格式的图像保存的技术背景通过SDK获取相机信息的代码分析Baumer工业相机回调函数里保存原始图像数据Baumer保存Raw图像格式重要核心代…

用Html和js和layui写一个简单猜拳小游戏

简单学习技术&#xff0c;写了一个小游戏&#xff0c;用html和js写一个简单的小游戏。玩家点击按钮出拳&#xff0c;玩家胜利结果显示绿色&#xff0c;玩家输了结果显示红色&#xff0c;平局结果显示蓝色。 页面效果&#xff1a; 代码&#xff1a; <!DOCTYPE html> <…
最新文章