前言

​ 大家好,我是字符串。YorkFish 介绍了这么多有关列表的信息,我找他谈了谈,最终在我的命(ken)令(qiu)下,他答应具体介绍一些我“团队中的朋友(内置方法)”给大家认识。


如何查看 python3 中和 str 有关的方法

  • dir(str) —— 列举和 str 有关的方法

    • 其中带下划线的如 __add__ 是魔法方法,还没学到,暂时不做解释
    • capitalize 开始,到 zfill 为止,是要上的“硬菜”。我数了一下,Python3.7 在这儿有 45 个方法。一次写完有点伤身体,我决定养生一点,分三篇吧。
  • help(str) —— 列举并简要介绍和 str 有关的方法
  • help(str.capitalize) —— 单独查看 str 的某个方法(方法后不加括号)

字符串方法

1. capitalize()

  • 释义:把字符串的第一个字符改为大写(原本就大写,则忽略),其余改为小写(原本就小写,也忽略)
  • 示例
# 例1.1

name1_1 = "YorkFish"	# 注意大小写
name1_2 = "yorkFish"
name1_3 = "YorkFish"
name1_4 = "yorkfish"
naem1_5 = "123YorkFish" print(name1_1.capitalize())
print(name1_2.capitalize())
print(name1_3.capitalize())
print(name1_4.capitalize())
print(name1_5.capitalize())
  • 运行结果

Yorkfish

Yorkfish

Yorkfish

Yorkfish

123yorkfish

从结果看,并不是从第一个字母开始操作,而是从第一个字符开始操作。


# 例1.2 接例1.1

print(name1_1.capitalize)	# capitalize 后没带括号
  • 运行结果

<built-in method capitalize of str object at 0x000001DCB0384030>

括号不能漏。


2. casefold()

  • 释义:将整个字符串的字符改为小写
  • 示例
# 例2

name2 = "YorkFish"
print(name2.casefold())
  • 运行结果

yorkfish


3. center(width)

  • 释义:width 为自定义的一段长度(通常要比字符串长),让字符串在这段长度里居中,其余位置用空格填充
  • 示例
# 例3

name3 = "123YorkFish"
print(1, name3.center(30), 1)
  • 运行结果

1 123YorkFish 1

  • 不直观?来张截图:


4. count(sub[, start[, end]])

  1. [] 里的参数可用可不用
  2. sub, start, end 在这里都是代号
  3. sub 表示要计数的字符(查了一下词典,sub 有替身之意)
  4. start 表示开始位置,若没设置,默认为开头
  5. end 表示结束的位置,若没设置,默认为结尾
  • 示例
# 例4

str4 = "Actions speak louder than words."

print(str4.count('A'))
print(str4.count('A', 1))
print(str4.count('a', 8, 12)) # 相当于把索引范围缩小到 speak 上
  • 运行结果

1

0

1

从结果看,1. 区分大小写;2. 从 0 开始索引。


5. endswith(sub[, start[, end]])

  • 释义:检查字符串是否以 sub 子字符串结束,若是,返回 True;若不是,返回 False。可用 startend 自定义范围
  • 示例
# 例5

str5 = "Winter has come, can spring be far behind?"

print(str5.endswith('?'))
print(str5.endswith('far behind?'))
print(str5.endswith('Winter has come, can spring be far behind?')) print(str5.endswith("come", 12, 15)) # 12 到 15 刚好是 come
print(str5.endswith("come", 11, 15))
print(str5.endswith("e, c", 15, 18)) # 15 到 18 刚好是 e, c
print(str5.endswith("e, c", 14, 18)) print(str5.endswith('e', 12, 15))
  • 运行结果

True

True

True

False

True

Flase

True

True

从结果看,1. 可以查单个字符、多个字符,甚至是本体;2. 中间的某一段不能查这段本身。

  • 表兄弟:startswith(prefix[, start[, end]])第三弹

6. find(sub[, start[, end]])

  • 释义;寻找字符串中是否包含 sub 子字符串。若有,返回索引值;若无,返回 -1
  • 示例
# 例6

str6 = "Kid, happiness is a very simple matter; grow up, simple is a very happy thing! "

print(str6.find("is"))
print(str6.find("is", 40))
print(str6.find("simple", 15, 40))
print(str6.find("thing", 15, 40))
  • 运行结果

15

56

25

-1

  • 亲兄弟:rfind(sub[, start[, end]])

    • 类似于 find(sub[, start[, end]]),不过是从右边开始查找

7. index(sub[, start[, end]])

  • 索引君 index()[Python3] 006 列表的常用方法 中出现过,这次更详细
  • 释义:跟 find() 的用法仅一点不同:若索引不到,会报错(产生一个异常)
  • 示例
# 例7

str7 = "Kid, happiness is a very simple matter; grow up, simple is a very happy thing! "

print(str7.index("simple", 15, 40))
print(str7.index("thing", 15, 40))
  • 运行结果

25

ValueError:……substring not found

  • 亲兄弟:rindex(sub[, start[, end]])

    • 类似于 index(sub[, start[, end]]),不过是从右边开始查找

8. isalnum()

  • 释义:若一个非空字符串中所有的字符都是字母或数字,返回 True;若否,返回False
  • 示例
# 例8

name8_1 = "YorkFish2019"
name8_2 = "YorkFish 2019" # 比 name8_1 多了一个空格
name8_3 = '' # 空字符串
name8_4 = "YorkFish②⓪①⑨" # YorkFish 后面是带圈的数字 2019 print(name8_1.isalnum())
print(name8_2.isalnum())
print(name8_3.isalnum())
print(name8_4.isalnum())
  • 运行结果

True

False

False

True

若释义中没有“非空字符串”的限制,也说得通:空字符串中包含的不是字母或数字,所以返回 False

数字除了 0-9,还包括带圈的 0-9


9. isalpha()

  • 释义:若一个非空字符串中所有的字符都是字母,返回 True;若否,返回False
  • 示例
# 例9

name9_1 = "YorkFish"
name9_2 = "YorkFish2019"
name9_3 = "鱼"
name9_4 = "

[Python3] 009 字符串:给你们看看我的内置方法 第一弹的更多相关文章

  1. [Python3] 010 字符串:给你们看看我的内置方法 第二弹

    目录 少废话,上例子 1. isidentifier() 2. islower() 3. isnumeric() 4. isprintable() 5. isspace() 6. istitle() ...

  2. [Python3] 011 字符串:给你们看看我的内置方法 第三弹

    目录 少废话,上例子 1. encode(encoding='utf-8', errors='strict') 2. expandtabs([tabsize=8]) 借此机会简单地说一说 print( ...

  3. python学习番外篇——字符串的数据类型转换及内置方法

    目录 字符串的数据类型转换及内置方法 类型转换 内置方法 优先掌握的方法 需要掌握的方法 strip, lstrip, rstrip lower, upper, islower, isupper 插入 ...

  4. python基础——4(数字、字符串、列表类型的内置方法介绍)

    目录 一.可变与不可变类型 二.数字类型 三.字符串类型 四.列表类型 一.可变与不可变类型 可变类型:值改变,但是id不变,证明就是在改变原值,是可变类型 不可变类型:值改变,id也跟着改变,证明产 ...

  5. 零基础入门学习Python(14)--字符串:各种奇葩的内置方法

    前言 这节课我们回过头来,再谈一下字符串,或许我们现在再来谈字符串,有些朋友可能觉得没必要了,甚至有些朋友就会觉得,不就是字符串吗,哥闭着眼也能写出来,那其实关于字符串还有很多你不知道的秘密哦.由于字 ...

  6. Python14之字符串(各种奇葩的内置方法)

    一.字符串的分片操作 其分片操作和列表和元组一样 str1 = 'keshengtao' str1[2:6] 'shen' str1[:] 'keshengtao' str1[:4] 'kesh' 二 ...

  7. 小白基础Python重要的字符串详解String的内置方法

    String的内置方法: st='hello world  {name} is {age}'  {}  特殊内容需要识别format print(st.count('1')) 统计元素个数 print ...

  8. python之字符串,列表,字典,元组,集合内置方法总结

    目录 数字类型的内置方法 整型/浮点型 字符串类型的内置方法 列表的内置方法 字典的内置方法 元组的内置方法 集合类型内置方法 布尔类型 数据类型总结 数字类型的内置方法 整型/浮点型 加 + 减 - ...

  9. 字符串:各种奇葩的内置方法 - 零基础入门学习Python014

    字符串:各种奇葩的内置方法 让编程改变世界 Change the world by program 字符串:各种奇葩的内置方法 或许现在又回过头来谈字符串,有些朋友可能会觉得没必要,也有些朋友会觉得不 ...

随机推荐

  1. hdu 3530 单调队列最值

    /** HDU 3530 单调队列的应用 题意: 给定一段序列,求出最长的一段子序列使得该子序列中最大最小只差x满足m<=x<=k. 解题思路: 建立两个单调队列分别递增和递减维护(头尾删 ...

  2. Selenium 2 & WebDriver &多线程 并发

    我用的是Selenium2,至于它的背景和历史就不赘述了.Selenium2也叫WebDriver.下面讲个例子,用WebDriver+java来写个自动化测试的程序.(如果能用firefox去测试的 ...

  3. Git 回滚操作之 revert

    https://blog.csdn.net/HobHunter/article/details/79462899 https://blog.csdn.net/secretx/article/detai ...

  4. unigui ios微信界面错位和点击失灵问题

    IOS微信下会出现二个严重问题: 1.输入框失去焦点导致控件错位,造成无点正常点击. 此问题是微信自带浏览器,一直遗留问题, 尝试了多种方法始终无解.因此要用来开发公众号的一定要注意. 2.界面下移 ...

  5. 使用 flex 弹性布局 ,相关教程记录

    一.Flex布局是什么? Flex是Flexible Box的缩写,意为"弹性布局",用来为盒状模型提供最大的灵活性. 任何一个容器都可以指定为Flex布局. .box1{ dis ...

  6. 7,HashMap

    一,HashMap简介 1,HashMap 是一个散列表,它存储的内容是键值对(key-value)映射. 2,HashMap 继承于AbstractMap,实现了Map.Cloneable.java ...

  7. 开发 .swan 文件

    这部分是每个智能小程序页面的展现模板,类似于 Web 开发中的 HTML ,SWAN 模板中使用的标签均为 SWAN 组件规定的标签. <view s-for="item in ite ...

  8. Oralce动态的创建按月的分区

    说明: XXX为一个配置表,里面配置了要分区的表明,即CODENO = 'PARTITIONTABLENAME',只有每个月月底的时候,才会进入IF的判断,此外还有一个定时任务,每天去执行即可. 存储 ...

  9. Laya 爆改Laya IDE和Laya引擎使其支持2D粒子爆发模式

    Laya 爆改Laya IDE和Laya引擎使其支持2D粒子爆发模式 @author ixenos 2019-11-01 19:47:26 1. 修改IDE的功能需要深入到/resources/app ...

  10. android开源框架thinkinandroid相关研究

    和命令相关的类有: TAICommand:接口文件,一个命令接口所有命令需要从此实现,还有以下几种方法: TACommandExecutor 命令的实现类,其中含有commands这个成员变量.大部分 ...