Python_字符串

字符串的定义和基本使用

字符串就是一串字符连起来的串, 我们在程序中使用字符串这种数据类型来表示一段文本信息.

大多数编程语言都使用双引号来定义字符串, 所以尽量使用双号来定义字符串, 这样可以跟其他编程语言相同.

单引号的应用场景:

只有当字符串里需要用到双引号(比如:描述绰号的时候)的时候, 整个字符串采用单引号引起来.

如下:

 可以把字符串看成能够存储多个字符的大柜子, 在每一个小格子中, 我们顺序的存储一个又一个的字符, 然后可以通过索引的方式从一个字符串中获取对应小格子中保存的字符.

在python 中, 所有的索引计数都是从0开始的.

使用索引取出字母 p 

迭代遍历字符串:

 len 函数可以统计字符串的长度,.

count 方法可以统计一个大的字符串中某一个指定的小字符串出现的次数.  (子字符串不存在时, 会输出 0 )

index 方法可以获取到某一个指定的小字符串在大字符串中出现的位置.  (子字符串不存在时, 会报错)

substring not found > 子字符串没有找到.

小字符串也叫子字符串.

字符串的常用方法:

输入 . 后, 按下 Tab 键, 就会跳出很多方法.

 

 center 是居中的意思.

endswith 是以......结尾 的意思, 就是用来判断这个字符串是不是以某一个字符串结尾的.

第一类字符串:判断类型

is 开头的方法都是来进行各种判断的.

isspace 就是来判断这个字符串中包含的内容是否都是由空格组成的.(还可以判断 \t(制表符, 垂直方向保持对齐) , \n(换行符) , \r(回车, ) 这种空白字符)

 

 

 

isalpha 就是来判断一个字符串是否所有的字符都是英文字母组成的.

isalnum 就是用来判断一个字符串是否所有的字符都是由字母或下划线组成的.

判断数字的三个方法: isdecimal, isdigit, isnumeric 都是用来判断一个字符串是否所有的字符都是由数字组成.

这三个方法都能判断字符串中是否只包含数字, 

 但是都不能判断小数, 若判断小数, 返回结果为False

 isdecimal 这个方法只能判断单纯的数字, isdigit 这个方法不仅能判断阿拉伯数字, 还能判断一些特殊的数字, (1)只是一个单纯的字符.

(1) 这种符号, 在程序世界中是有一种单独的叫法的, 叫做 unicode 字符串, 所谓 Unicode 字符串, 从直观上来讲, 从键盘上没有办法直接输入, 但是可以通过一些其他的输入法, 或者一些其他的方式输入的字符串.

这些字符串还可以用另外一种方式来输入, 比如, "\u00b2" 表示上标的 2.(在数学上的平方, 这个平方在键盘上没有办法直接输入, 所有可以采用这种方法, 先输入一个 \u, 再在\u 后面输入 unicode 的编码)

只有 isdecimal 返回的是False.

 isnumeric 这个方法还可以判断一些中文数字.

isnumeric 能够返回True.

在开发时, 应该尽量的使用 isdecimal 这个方法, 因为程序开发中, 绝大多数都是针对纯粹的数字进行判断的, 极少会针对 特殊数字, 或者中文数字进行判断.

 istitle 就是一整个英文句子中, 每个单词的首字母都是大写的, 就认为是 title.

islower 就是用来判断一个字符串都由一个小写字母构成.

isupper 就是用来判断一个字符串是否都由大写字母构成.

 

第二类字符串:查找和替换

startswith 就是用来判断字符串是否是以指定的字符串开头.

endswith 就是用来判断字符串是否是以指定的字符串结束.

find 就是用来查找一个字符串中的子字符串.

replace 是替换的意思, 让一个字符串调用 replace 方法, 就可以把字符串中旧的字符串替换成新的字符串.

下面的2就表示 llo 这个字符串在上面 "hello world" 中出现的索引位置,  

 find 方法的用法和 index 很像.

index 方法如果指定的字符串不存在, 会报错.

find 方法如果指定的字符串不存在, 会返回-1.

 

replace 是替换的意思, 让一个字符串调用 replace 方法, 就可以把字符串中旧的字符串替换成新的字符串.

replace 有4 个参数.

先指定旧的字符串" world"和新的字符串"python".

 做一个输出:

 hello_str 这个变量中保存的内容没有被替换. 

replace 执行完成之后, 会返回一个新的字符串, 但replace 方法不会修改原有的字符串的内容.

 

第三类字符串:大小写转换

 

文本对齐:

所谓的文本对齐, 就是指我们输出的字符串, 要么统一向左对齐, 要么统一向右对齐, 或者全部居中对齐.

ljust 向左对齐.(just 这个单词是调整的意思)

rjust 向有对齐.

center 居中对齐.

 演练(居中对齐前):

 center 这个方法可以接收三个参数.

        width 表示宽度. 让字符串都保证一定的宽度, 就都能保证所有的输出内容都能居中. 

        fillchar 表示填充字符, 如果不使用这个参数, python会默认使用英文的空格增加在字符串的前后, 英文效果对齐不好时, 可尝试使用中文的空格, 中文的空格明显要比中文的空格跨度要大一些, 

 center 方法在前面帮我们加上几个空格, 实现了居中对齐.   

 使用中文空格实现居中对齐.

向左居中对齐.

 向右居中对齐.

去除空白字符

所谓去除空白字符, 就是把一个字符串中前面以及后面没用的空白字符去掉, 只保留中间有内容的部分, 这个就叫做去除空白字符, 

 去除前:

 先使用strip 方法去除字符串中的空白字符.

在使用center 方法居中显示文本.

去除后:

 

 

字符串的拆分和拼接

从功能上来看, split 方法负责拆分, join 方法负责拼接.

一句话讲, split 就是使用指定的分割符, 把一个大的字符串拆分成一个字符串列表, 

如果在调用 split 方法时, 不传递任何的参数, split 方法就会使用所有的空白字符作为分割符号.

join这个方法可以接收一个序列(字典, 元组, 列表 等)作为一个参数, join 方法在使用的时候, 就可以使用 调用方法的字符串作为分隔符来把序列中的所有内容拼接成一个大的字符串.

 演练前:

第一步, 拆分字符串, 把空白字符全部去掉, 先使用split 方法把字符串拆分成一个列表, 拆分的同时就可以把所有的空白字符去掉了. 

控制台输出了一个列表(没有包含任何的空白字符): 

第二步, 合并字符串, 使用空格作为分隔符, 拼接成一个整齐的字符串, 将第一个需求得到得列表传递给 join 方法, 就可以拼接处一个整齐得字符串. 

让这个" "空格字符串调用一下join方法, 再把刚刚拆分完成的 poem_str 列表作为参数传递进来.

 

-> str 这个小窗口告诉我们, join 方法执行完成之后, 会返回一个字符串.

 

 

 sep 就表示分隔符, optional 就表示可选的意思,  可以指定分隔符, 也可以不指定分隔符.

-> List[str] 就表示split 这个方法执行完成之后, 会返回一个列表, 我们应该使用一个列表变量来接收一个方法的返回结果.

在使用split 方法的时候, 如果不传递参数, 就会使用任何的空白字符作为分隔符号.

split 方法执行完成之后, 会返回一个列表, 需要定义一个列表变量来接收这个列表.

 

字符串的切片

 

两刀下去之后, 中间的结果就是切片的结果.

开始索引就是第一刀下去所在的位置.

结束索引就是第二刀下去所在的位置.

比如把开始索引指定为0, 结束索引指定为2, 两刀下去之后, 可以得到索引为0 的字符和索引为 1 的字符共同组成的一个小字符串, 索引2 对应的字符不包含再切片结果内(最终切片的结果时不包含结束索引对应的字符的)

步长:比如, 初始索引为0, 步长为2, 0+2 等于2, 因此第二个要切的字符的索引就是2.

 当字符串很长(取末尾的字符时很麻烦)时, 可以使用倒序索引.

倒序索引就是最后一个字符所对应的索引为-1.  

倒序索引的索引值从右向左依次递减.

把结束索引空出来, 就能切除到字符串的末尾了.

字符串切片演练

使用这个字符串完成9 个目标

1. 截取从 2~ 5 位置的字符串

 2.截取从2 ~末尾的字符串

 3.截取从开始到~末尾的字符串(两种取法)

4.截取完整的字符串

5.从开始位置开始, 每隔一个字符截取字符串.

6.从索引1 开始, 每隔一个字符截取字符串.

 

7. 截取从2~ 到 末尾  -1 的字符串(这种说法不包含-1).

 8.截取字符串末尾两个字符.

末尾两个字符意味着开始字符是从开始倒数第二个开始.

9.字符串的逆序

要想反过来, 把开始索引指定为-1 就可以了.

再把开始索引该为-1, 就可以从最后开始切起. 

这样就可以把这个字符串逆序过来.

单纯指定步长也可以. 

 

 

 

 

 

 

 

 

  • 3
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值