技术标签: 字符串的切片操作与连接 c++如何让字符串重复输出 python rfind函数用法 python根须系统斜杠
点击上方蓝字关注我们,一起涨姿势!
在Python基础01之入门中,我们学习了Python中的输入(input()
),输出(print()
)的使用,变量赋值,简单运算符的相关知识,今天一起来学习字符串的知识。
字符串是 Python 中最常用的数据类型,它是一种不可变序列。可以使用引号来创建字符串,引号可以是'单引号'"双引号" '''三单引号''', """三双引号""",单引号和双引号在使用上没什么区别,三引号可以跨行输出,引号的使用必须成对,否则会出错。
str1 = '我是单引号字符串'str2 = "我是双引号字符串"str3 = '''我是三单引号字符串'''str4 = """我是三双引号字符串"""str5 = """ _ooOoo_ o8888888o 88" . "88 (| -_- |) O\ = /O ____/`---'\____ .' \\| |// `. / \\||| : |||// \ / _||||| -:- |||||_ \ | | \\\ - /// | | | \_| ''\---/'' | | \ .-\__ `-` ___/-. / ___`. .' /--.--\ `. . __ ."" '< `.___\__/___.' >'"". | | : `- \`.;`\ _ /`;.`/ - ` : | | \ \ `-. \_ __\ /__ _/ .-` / / ======`-.____`-.___\_____/___.-`____.-'====== `=---=' ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 佛祖保佑 永无BUG"""print(str1)print(str2)print(str3)print(str4)print(str5)
输出效果为:
(素材来自网络) 二、转义字符和原始字符串Python使用反斜杠"\"转义字符,要输出'doesn't','"Isn't," they said.',这样的句子,可以使用反斜杠对"'"进行转义。
常见转义字符如下:
符号 | 含义 | 符号 | 含义 |
\' | 单引号 | \r | 回车符 |
\" | 双引号 | \f | 换页符 |
\a | 系统响铃 | \o | 八进制字符 |
\b | 退格符 | \x | 十六进制字符 |
\n | 换行符 | \0 | 空字符 |
\t | 横向制表符 | \\ | 反斜杠 |
\v | 纵向制表符 |
所以在输出路径'C:\some\name'时,\n会被识别为换行,可以使用\\进行转义,但是路径(字符串)比较长的时候,如果你(懒)不希望多次输入\\时,可以使用原始字符串的方式,在引号前使用r即可。
三、字符串的连接和重复可以使用加号(+)进行字符串的连接,通过乘号(*)重复输出字符串
四、字符串的索引索引(S[i]
)可以获取特定偏移量(i)处的元素
第一个字符索引是 0
索引可以用负数,为负时会从右边开始数
单个字符是一个长度为一的字符串
索引值超过字符串长度,会报错
word = 'Python'word[0] # 输出Pword[-2] # 输出oword[10] # 报错
五、字符串的切片
除了索引,字符串还支持切片(S[i:j:k]
)。索引可以得到单个字符,而切片可以获取子字符串
省略开始索引(i)
时默认为0,省略结束索引(j)
时默认为到字符串的结束,k
为步长,默认为1
切片的开始总是被包括在结果中,而结束不被包括
索引值超过字符串长度,会被自动处理
word = 'Python'word[:]Out[3]: 'Python'word[1:]Out[4]: 'ython'word[:3]Out[5]: 'Pyt'word[:-1]Out[6]: 'Pytho'word[1:3]Out[7]: 'yt'word[1:100]Out[8]: 'ython'word[1::2]Out[9]: 'yhn'word[::2]Out[10]: 'Pto'word[::-1]Out[11]: 'nohtyP'word[5:2:-1]Out[12]: 'noh'
通过下表可以更加容易理解索引和切片
P | y | t | h | o | n | |
正向 | 0 | 1 | 2 | 3 | 4 | 5 |
反向 | -6 | -5 | -4 | -3 | -2 | -1 |
内建函数 len()
返回一个字符串的长度
常用的字符串方法为:
方法 | 描述 | |
str. capitalize () |
返回原字符串的副本,其首个字符大写,其余为小写。 | |
str. center (width[, fillchar]) |
返回长度为 width 的字符串,原字符串在其正中。使用指定的 fillchar 填充两边的空位 | |
str. count (sub[, start[, end]]) |
子字符串 sub 在 [start, end] 范围内非重叠出现的次数 | |
str. find (sub[, start[, end]]) |
子字符串 sub 在 s[start:end] 切片内被找到的最小索引 | |
str. index (sub[, start[, end]]) |
类似于 find(),但在找不到子类时会引发 ValueError | |
str. replace (old, new[, count]) |
返回字符串的副本,其中出现的所有子字符串 old 都将被替换为 new | |
str. rfind (sub[, start[, end]]) |
返回子字符串 sub 在字符串内被找到的最大(最右)索引 | |
str. rindex (sub[, start[, end]]) |
类似于 rfind(),但在子字符串 sub 未找到时会引发 ValueError | |
str. rstrip ([chars]) |
返回原字符串的副本,移除其中的末尾字符 | |
str. split (sep=None, maxsplit=-1) |
返回一个由字符串内单词组成的列表,使用 sep 作为分隔字符串 | |
str. strip ([chars]) |
返回原字符串的副本,移除其中的前导和末尾字符 | |
str. title () |
返回原字符串的标题版本,其中每个单词第一个字母为大写,其余字母为小写 | |
str. upper () |
返回原字符串的副本,其中所有区分大小写的字符 4 均转换为大写 | |
str. join (iterable) |
返回一个由 iterable 中的字符串拼接而成的字符串。 |
(上表为常见常用的字符串方法,具体使用可以查询官方文档)
- End -
扫码二维码
获取更多精彩
木一学习室
点下在看,你最好看
文章浏览阅读2.5k次。原文链接:https://www.fearlazy.com/index.php/post/324.htmlQWidget类没有提供查找子控件的方法,但是它爹QObject有。这个方法就是findChild,它长这样:很显然它是一个模板,因此使用时需要提供一个类型,这个类型就是要查找的对象的类型。函数有两个参数:第一个是要查找的对象名(对象名通过setObjectName设置)第二个表示查找直接孩子还是递归查找(可以查找后代的后代),默认Qt::FindChil.._qwidget孩子的类型
文章浏览阅读3.1k次。Unity开发最好的地方就是有各种强大的插件,有哪些插件让大家事半功倍,稳定强大 值得推荐学习和入手呢?Unity5.0之后,制作UI 以及UI的动画,UI特效,大家一般都使用什么插件?或者说有什么好的插件推荐?关于特效制作,大家又有什么好的插件使用经验?请大家分享下各自的项目经验和插件推荐吧。添加评论 分享按投票排序按时间排序_qhierarchy 下载
文章浏览阅读5.5k次,点赞4次,收藏13次。用于计算光照衰减系数。参数一为返回值(光照衰减系数),参数二用于阴影计算,参数三是世界坐标实现代码位于AutoLight导入文件之中,使用之前需要#include "AutoLight.cginc"源码:_LightTexture0解析:https://blog.csdn.net/zengjunjie59/article/details/109532962unity_WorldToLight :用于把顶点从世界空间转换到光源空间(https://blog.csdn.net/zengjun_unity_light_attenuation
文章浏览阅读2.8k次,点赞7次,收藏14次。大家好,从今天开始我会把NR相关的知识以博文的方式放上来。可能速度会比较慢,时间也会拉得很长,因为内容比较多,我还在整理中,而且很多内容关联性很强,我得考虑介绍的先后顺序。从我学习3GPP的经验考虑,我大概的思路是这样的:1. 介绍NR的一些背景知识,主要是架构与演进。2. 介绍NR的主要无线技术。3. 介绍5G NR一些专有概念,其中主要是5G 帧结构和相关的物理资源的组成单位。4.然后把5G NR无线频谱相关的内容介绍一下,不会太细。只是笼络地把相关知识点梳理一遍,当然,如果您是专门做._nr
文章浏览阅读3.1k次。开发板运行系统:32位linux主机 ubuntu17.041、下载portaudio_v18_1.ziphttp://www.portaudio.com/download.html2、下载eSpeak-1.48.04-source.ziphttp://espeak.sourceforge.net/download.html3、交叉编译por_espeak交叉编译
文章浏览阅读338次。目标:使用定时器实现div背景色的透明度动态改变注意:这里没有进行兼容处理,别使用低版本的ie游览器!!!代码: <!doctype html><html> <head> <title>div背景透明度动态改变的效果</title> <meta charset="utf-8" /> </head> <body> <div class="_css动态增加div透明度
文章浏览阅读6.8k次,点赞2次,收藏18次。本文仅为模型应用实战,而非颜值研究,所得结果仅供娱乐,仅供参考。方法也仅供参考。一般而言,数据量越大,结果越接近正常人审美。由于本次数据量较小,故仅为实验。使用环境:ubuntu14.04,opencv3.2.0,dlib19.6,python2.7一、准备工作:1、下载dlib库,下载特征提取模型。该模型的作用是通过卷积神经网络产生128维的特征向量,用以代表这张脸。网络输入参数为人脸landm..._研究如何提取其他面部特征实现年 龄预测和颜值评分?
文章浏览阅读3.9w次,点赞29次,收藏112次。VisualStudioUninstaller完全卸载VisualStudio最近做项目,vs版本一直没确定,导致自己装了vs2015,还装了vs2013。然后项目确定需要用boost库,两个vs共存,自己编译boost库一直出问题。下定决心要卸载vs,重新安装vs2013。以前的经验告诉我,自己去卸载很容易卸载不干净,甚至损坏系统。查了一些方法,发现VisualStudioUnins..._visualstudiouninstaller
文章浏览阅读2.5k次。create or replace function upd_timestamp() returns trigger as$$begin new.update_time = current_timestamp; return new;end$$language plpgsql;create or replace function cre_timestamp() returns tr..._postupdatetime
文章浏览阅读2.9k次。记一下最近碰到的一个加载so文件的问题简介:so文件就是C编译后的文件。适用于linux系统。windows中使用的是dll。java中的调用方式很简单:HCNetSDK INSTANCE = (HCNetSDK) Native.loadLibrary("hcnetsdk", HCNetSDK.class);这里采用的是jna 。采用maven的可以导入jna的依赖。采用gradle以及未采用maven方式的可以放jar。gradle这里如果想放jar的话,需要:c_native.loadlibrary linux so文件
文章浏览阅读1k次。//NaiveBayes.h#ifndef NAIVEBAYES_H_#define NAIVEBAYES_H_#include#include#include#include#include#include#include#include#include#includeusing namespace std;class NaiveBayes{private:
文章浏览阅读210次。目录1. 索引概述2. 存储引擎概述3. 事务概述1. 索引概述2. 存储引擎概述3. 事务概述_mysql5.7 的需要事务如何选取引擎