Python基础-04 字符串
字符串的表示方式
- 在Python中,可以使用一对单引号/双引号或者一对三个双引号/一对三个单引号表示字符串
a = 'hello'
b = "hello"
c = '''hello'''
d = """hello"""
# 如果字符串里面还有双引号,外面就可以使用单引号
# 反之一样
# 如果字符串里面有双引号,外层也可以使用一对三个双引号或者一对三个单引号
- 字符串中的转义字符 \
x = 'I\'m xiaoming' # \ 表示的是转义字符,作用是对 \ 后面的字符进行转义
# \' 显示一个普通的单引号
# \" 显示一个普通的双引号
# \n 表示一个换行
# \t 表示一个制表符
# \\ 表示一个普通的反斜线
# 在字符串引号前添加一个r,在Python中表示的是原生字符串
字符串的下标和切片
- 下标我们也可以称之为索引,表示第几个数据
- 可迭代对象: str list tuple dict set range 都可以遍历
- 其中 str list tuple 可以通过下标来获取或者操作数据
- 在计算机中,下标都是从0开始的
- 可以通过下标来获取或者修改指定位置的数据
字符串是不可变的数据类型
对于字符串的任何操作都不会修改原有的字符串!!!
切片操作就是从字符串中复制一段指定的内容,生成一个新的字符串
# 切片语法:
# m[start:end:step]
# 包含start,不包含end
# 如果只设置了start,会从start到结尾
m[1:]# 如果只设置了end,会从开头到end
m[:4]# step代表步长,每隔step-1取一次
m[2:5:1]# 步长默认为1,步长不能为0# 步长为负数的时候代表从右往左找,同时应注意start及end
m[15:3:-1]# 可以使用::复制字符串
m[::]# 可以使用::-1将字符串倒置
m[::-1]# start和end如果是负数,但step不为负数时,相当于从右往左找找到对应的start和end(右往左第一个是-1),但字符串输出还是从左往右
a = 'abcdefghijklmnopqrstuvwxyz'
print(a[-9:-5])
# rstuprint(a[-5:-9:-1])
# vuts
字符串的常见操作
a = 'abcdefghijklmnopqrstuvwxyzi'
# 获取字符串的长度
print(len(a)) # 27# 查找内容相关的方法# find/index/rfind/rindex 可以获取指定字符的下标
print(a.find('i')) # 8,如果字符存在,返回下标,不存在返回-1
print(a.index('i')) # 8,如果字符存在,返回下标,不存在就报错
print(a.rfind('i')) # 26,从右往左查找第一个指定字符(最大索引),不存在返回-1
print(a.rindex('i')) # 26,从右往左查找第一个指定字符(最大索引),不存在报错# 判断相关的方法# startswitch,endswitch,isalpha,isdigit,isalnum,isspace
# is开头的是判断,结果是一个布尔类型
# 均为字符串的使用方法
# startswitch 以某个字符开始
# endswitch 以某个字符结束
# isalpha 是否是字母
# isdigit 是否是数字
# isalnum 是否是数字加字母,只写数字或者只写字母都是True
# isspace 是否全部是空格# 字符串替换方法# replace
word = 'hello'
print(word.replace('l','x')) # 原来的字符串不会变,而是生成一个新的字符串用来保存替换后的结果
字符串内容分割的相关操作
split rsplit splitlines parttion rparttion
x = 'zhangwan-lisi-wangwu-ermazi-dazhutou'
# 使用split方法,可以将一个字符串切割成一个列表,可以传两个参数,第一个是分隔的字符,第二个是分隔的次数
print(x.split('-')) # ['zhangwan', 'lisi', 'wangwu', 'ermazi', 'dazhutou']
print(x.split('-',2)) # ['zhangwan', 'lisi', 'wangwu-ermazi-dazhutou']# 使用rsplit方法,可以将一个字符串切割成一个列表,传第二个参数代表从右往左分几次
print(x.rsplit('-')) # ['zhangwan', 'lisi', 'wangwu', 'ermazi', 'dazhutou']
print(x.rsplit('-',2)) # ['zhangwan-lisi-wangwu', 'ermazi', 'dazhutou']# 使用splitlines,可以将一个字符串按照换行符进行分隔,返回一个列表
a = 'hello \n world'
print(a.splitlines()) # ['hello ', ' world']# 使用partition,可以按照传入的参数从左往右查找第一个匹配的参数,将字符串分为三个部分,返回一个元组
x = 'zhangwan-lisi-wangwu-lisi-ermazi-dazhutou'
print(x.partition("lisi")) # ('zhangwan-', 'lisi', '-wangwu-lisi-ermazi-dazhutou')# 使用rpartition可以按照传入的参数从右往左查找第一个匹配的参数,将字符串分为三个部分,返回一个元组
print(x.rpartition("lisi")) # ('zhangwan-lisi-wangwu-', 'lisi', '-ermazi-dazhutou')
字符的编码
- ASCII码表使用一个字节来表示一个字符.最多只能表示128个,不适用最高位,0-127
- ISO-8859-1 使用了最高位 0-127 和 ASCII码表完全兼容,最多能表示255个字符,0-254
- Unicode编码 --> 绝大部分国家的问题都有一个对应的编码
字符串的编码集
使用内置函数 chr 和 ord 能够查看数字和字符的对应关系
ord 获取字符对应的编码
chr 根据编码获取对应的字符
print(ord('A')) # 65
print(chr(65)) #A
- 将字符串转换为指定的编码集的结果
- 如果有一个编码集的结果,想把它转换为对应的字符,使用decode
# 字符串转换为指定的编码集
a = '你'
print(a.encode('gbk'))
print(a.encode('utf-8'))# b'\xc4\xe3'
# b'\xe4\xbd\xa0'# 编码结果转换为对应的字符
x = b'\xe4\xbd\xa0'
print(x.decode('utf-8'))# 你
成员运算符
in 和 not in 运算符的优先级
用来判断一个内容在可迭代对象中是否存在
word = "hello"
c = input("请输入一个字符")for x in word:if x == c :print('你输入的内容存在')break
else:print('你输入的内容不存在')
格式化打印字符串
- 可以使用 % 占位符来表示格式化一个字符串
- %s 表示的是字符串的占位符
- %d 表示的是整数的占位符
- %nd 打印时,显示n位,如果不够,在前面使用空格补齐
- %f 表示的是浮点数的占位符
- %.nf 打印时保留小数点后n位
- %x 将数字使用十六进制输出
- %% 输出一个%
name = "zhangsan"
age = 18
print('我叫%s,今年%d岁了'%(name,age))# 我叫zhangsan,今年18岁了# %d 拓展用法
print('今天是第%3d天'%(5))
print('今天是第%03d天'%(5))
print('今天是第%-3d天'%(5))# 今天是第 5天
# 今天是第005天
# 今天是第5 天# %f 拓展用法
print('我有%.2f元钱'% 3.1415926)# 我有3.14元钱
字符串的format方法的使用
- {}也可以用于字符串占位
# {}中什么都不写,会读取format方法后面的内容,一一对应填充
x = '大家好,我是{},今年{}岁了'.format('zhangsan',18)
print(x) # 大家好,我是zhangsan,今年18岁了# {数字}会根据数字的顺序读取format方法后面的内容,按顺序对应,数字从0开始
x = '大家好,我是{1},今年{0}岁了'.format(18,'zhangsan')
print(x) # 大家好,我是zhangsan,今年18岁了# {变量}会根据变量读取format方法后面的内容,一一对应填充
x = '大家好,我是{name},今年{age}岁了'.format(age = 18,name = 'zhangsan')
print(x) # 大家好,我是zhangsan,今年18岁了# {数字}{变量}可以混合使用,但是需要一一对应
# {}和{数字}不可以混合使用# 列表配合format使用
d = ['zhangsan',18]
x = '大家好,我是{},今年{}岁了'.format(*d)
print(x) # 大家好,我是zhangsan,今年18岁了#字典配合format使用
d = {'name':'zhangsan','age':'18'}
x = '大家好,我是{name},今年{age}岁了'.format(**d)
print(x) # 大家好,我是zhangsan,今年18岁了
相关文章:
Python基础-04 字符串
字符串的表示方式 在Python中,可以使用一对单引号/双引号或者一对三个双引号/一对三个单引号表示字符串 a hello b "hello" c hello d """hello""" # 如果字符串里面还有双引号,外面就可以使用单引号 # 反之一样 # 如果字符串里…...
VVC之编码结构
VVC之编码结构(新一代通用视频编码的读书笔记) 缩写概述EncAppmain函数解读 缩写 缩写含义CVSCoded Video Sequence, 编码视频序列IRAPIntra Random Access Point, 帧内随机接入点GDRGradual Decoding Refresh, 逐渐解码刷新AUAccess Unit, 访问单元PUP…...
FPGA基于SFP光口实现10G万兆网UDP通信 10G Ethernet Subsystem替代网络PHY芯片 提供工程源码和技术支持
目录 1、前言2、我这里已有的UDP方案3、详细设计方案4、vivado工程详解5、上板调试验证并演示6、福利:工程代码的获取 1、前言 目前网上的fpga实现udp基本生态如下: 1:verilog编写的udp收发器,但不带ping功能,这样的代…...
Linux Redis主从复制 | 哨兵监控模式 | 集群搭建 | 超详细
Linux Redis主从复制 | 哨兵监控模式 | 集群搭建 | 超详细 一 Redis的主从复制二 主从复制的作用三 主从复制的流程四 主从复制实验4.1 环境部署4.2 安装Redis(主从服务器)4.3 修改Master节点Redis配置文件 (192.168.163.100)4.4 修改Slave节点Redis配置…...
整柜海运到美国的规格和收费标准是什么
整柜海运是指将所有货物安装在一个整箱内,由发货人和收货人共同操作,而目的港的收货人一般只有一个,方便操作。整柜海运到美国的主要流程有以下几个步骤:订舱、装柜、报关、海运、清关、提柜和送货。实际上,国际物流出…...
Session和Cookie区别介绍+面试题
Session 会话: 对应的英文单词:session用户打开浏览器,进行一系列操作,然后关闭浏览器。整个过程叫做一次会话一个会话包含多次请求 session机制属于B/S结构的一部分,主要的作用就是为了保存会话状态。(用户登录成功后…...
easyx
普通的画线图什么的 首先我们需要安装一个easyx的图形库,然后把头文件搞出来 #include <stdio.h> #include <easyx.h>//easyx画线啥啥的图形库 #include <graphics.h> #include <math.h> #include <conio.h>//键盘操作的头文件 设…...
记一次科学
华为云与Centos8 华为云99元Hongkong的服务器:1M,1C,2G,40G,自带不可更改的Centos 8.2 64bit 华为yum源不可以,网上找了可用的CentOS8 官方源不支持后配置yum源 # 备份 mv /etc/yum.repos.d/CentOS-Base…...
亚马逊被人差评了怎么办?
第一种: 也是最简单的做法就是通过电话或者邮件联系留差评的买家,大致意思就是按照货值的2-3倍作为赔偿,能不能把差评给删了 赔偿一个普通产品2-3倍的价格比起找服务商删一个差评几百到一千不等可以说是绰绰有余了,碰到那种愿意…...
【目标检测】YOLOv5:修改自己的网络结构
前言 YOLOv5就像一座金矿,里面有无数可以学习的东西。之前的博文一直将YOLOv5当作一个黑盒使用,只考虑模型的输入和输出,以此来对模型进行二次开发。 本篇博文将更近一层,深入到“金矿”内部,来尝试对模型结构进行替换…...
spring boot 工程整合mongodb,遇到的坑
首先说一下背景,因为其他的一个web工程有使用mongo,我想着给另外一个工程把mongo也加过来吧。也是最近做一个发送 丘比特信 的需求,觉得这个信应该是存到 mongodb。结果拿过来遇到了很大的坑,也是对版本对原理不了解吧。 下面介…...
防抖函数(最全 最干净 最好理解)
1.应用场景 1.input输入框 输入远程查询 2.邮箱,手机号验证,用户名验证 3.resize等高评率场景 2.解决问题 高频场景带来的重复渲染 等问题 多次操作 只在操作结束后再执行操作函数 3.具体实现 3.1this问题(因为settimeout是window的对…...
王小川,才是深「爱」李彦宏的那个人?
在推出中国首个类ChatGPT产品「文心一言」后,李彦宏在接受专访时断言,中国基本不会再出一个OpenAI了,「创业公司重新做一个ChatGPT其实没有多大意义,基于大语言模型开发应用机会很大,没有必要再重新发明一遍轮子。」 听…...
南京邮电大学通达学院2023《电子装配实习》报告
南京邮电大学通达学院2023《电子装配实习》报告 一 声明二 题目/实习报告提示三 例答 红笺寄 休遣玉人知 ——赠nmy 一 声明 南京邮电大学通达学院2023《电子装配实习》报告 答案更新时间:2023.04.10,已更新完成,如无错误不在更新 由于作者解答能力有限…...
Linux--tty
Linux 终端(TTY) TTY 是 Teletype 或 Teletypewriter 的缩写,原来是指电传打字机,后来这种设备逐渐键盘和显示器取代。不管是电传打字机还是键盘显示器,都是作为计算机的终端设备存在的,所以 TTY 也泛指计算机的终端(terminal)设…...
一位女程序员的自述:我是如何成为前端工程师的
今天,我想和大家分享一下我的职场经历:我是如何成为一名前端工程师的,以及我为什么会选择这个职业。此外,大家比较关心的是我们为什么要出国工作呢?也是想给自己的职业生涯做一个阶段性的总结,尤其是作为一…...
C++命名空间详解
1.什么是命名空间 在c中,名称(name)可以是符号常量、变量、函数、结构、枚举、类和对象等等。工程越大,名称互相冲突性的可能性越大。另外使用多个厂商的类库时,也可能导致名称冲突。为了避免,在大规模程序…...
HDMI EDID概念梳理
EDID概念梳理: EDID数据格式: EDID包含两个部分,基本的EDID只有128个字节,还有128字节的扩展EDID,扩展部分不是必须有的。那通常电视都有扩展EDID。那EDID的详细定义在规范里面都可以找到,主要有以下几部分…...
Android端推送消息之极光推送
推送方式 轮询 --实现方式: 周期性主动获取网络中的数据; --缺点: 费电, 费流量; SMS --实现方式: 服务器端向手机端发送短信, 手机监听短信广播, 将拦截的短信信息进行显示; --优点: 省电, 省流量, 在没有网络的偏远地点也能接收到推送消息; --缺点: 费钱, 一毛钱一条;…...
2023测试工程师全新技术栈,吃透这些,起薪就15k
相信每个准备软件测试面试的同学,不管你是大学刚毕业,满心憧憬着进入公司实习、非计算机行业转行软件测试、自学测试就业还是培训后就业,都会面临着众多的疑问和不解,那就是该怎么走出着第一步,今天本文一次性告诉你&a…...
《Qt C++ 与 OpenCV:解锁视频播放程序设计的奥秘》
引言:探索视频播放程序设计之旅 在当今数字化时代,多媒体应用已渗透到我们生活的方方面面,从日常的视频娱乐到专业的视频监控、视频会议系统,视频播放程序作为多媒体应用的核心组成部分,扮演着至关重要的角色。无论是在个人电脑、移动设备还是智能电视等平台上,用户都期望…...
大型活动交通拥堵治理的视觉算法应用
大型活动下智慧交通的视觉分析应用 一、背景与挑战 大型活动(如演唱会、马拉松赛事、高考中考等)期间,城市交通面临瞬时人流车流激增、传统摄像头模糊、交通拥堵识别滞后等问题。以演唱会为例,暖城商圈曾因观众集中离场导致周边…...
java 实现excel文件转pdf | 无水印 | 无限制
文章目录 目录 文章目录 前言 1.项目远程仓库配置 2.pom文件引入相关依赖 3.代码破解 二、Excel转PDF 1.代码实现 2.Aspose.License.xml 授权文件 总结 前言 java处理excel转pdf一直没找到什么好用的免费jar包工具,自己手写的难度,恐怕高级程序员花费一年的事件,也…...
2.Vue编写一个app
1.src中重要的组成 1.1main.ts // 引入createApp用于创建应用 import { createApp } from "vue"; // 引用App根组件 import App from ./App.vue;createApp(App).mount(#app)1.2 App.vue 其中要写三种标签 <template> <!--html--> </template>…...
OPENCV形态学基础之二腐蚀
一.腐蚀的原理 (图1) 数学表达式:dst(x,y) erode(src(x,y)) min(x,y)src(xx,yy) 腐蚀也是图像形态学的基本功能之一,腐蚀跟膨胀属于反向操作,膨胀是把图像图像变大,而腐蚀就是把图像变小。腐蚀后的图像变小变暗淡。 腐蚀…...
免费数学几何作图web平台
光锐软件免费数学工具,maths,数学制图,数学作图,几何作图,几何,AR开发,AR教育,增强现实,软件公司,XR,MR,VR,虚拟仿真,虚拟现实,混合现实,教育科技产品,职业模拟培训,高保真VR场景,结构互动课件,元宇宙http://xaglare.c…...
嵌入式学习之系统编程(九)OSI模型、TCP/IP模型、UDP协议网络相关编程(6.3)
目录 一、网络编程--OSI模型 二、网络编程--TCP/IP模型 三、网络接口 四、UDP网络相关编程及主要函数 编辑编辑 UDP的特征 socke函数 bind函数 recvfrom函数(接收函数) sendto函数(发送函数) 五、网络编程之 UDP 用…...
基于江科大stm32屏幕驱动,实现OLED多级菜单(动画效果),结构体链表实现(独创源码)
引言 在嵌入式系统中,用户界面的设计往往直接影响到用户体验。本文将以STM32微控制器和OLED显示屏为例,介绍如何实现一个多级菜单系统。该系统支持用户通过按键导航菜单,执行相应操作,并提供平滑的滚动动画效果。 本文设计了一个…...
Qt的学习(二)
1. 创建Hello Word 两种方式,实现helloworld: 1.通过图形化的方式,在界面上创建出一个控件,显示helloworld 2.通过纯代码的方式,通过编写代码,在界面上创建控件, 显示hello world; …...
【Qt】控件 QWidget
控件 QWidget 一. 控件概述二. QWidget 的核心属性可用状态:enabled几何:geometrywindows frame 窗口框架的影响 窗口标题:windowTitle窗口图标:windowIconqrc 机制 窗口不透明度:windowOpacity光标:cursor…...
