1.字符串格式化

1)字符串

使用" "或' '包裹的任意文本。

打印多行文字的方法:使用一对三引号''' '''来包裹多行字符串;

使用换行符\n,其后方的内容将另起一行显示。

2) 拼接字符串使用+可以将多个字符串拼接;

使用*可以将多个相同字符串拼接。

str1 = '海草'

str2 = str1 * 3 # 相当于str1 + str1 + str1

print(str2)

# 输出:海草海草海草

note: +和*只用于同种类型的拼接,其他类型要用str()转换。

3) 字符串格式化输出

按照既定格式给字符串填空,以便更方便地写入字符串。

def print_intro(name, age, city):

intro = '我叫' + name + ',今年' + str(age) + '岁,来自' + city + '。'

print(intro)

print_intro('晗晗', 23, '河北')

# 输出:我叫晗晗,今年23岁,来自河北。

使用字符串格式化输出,上述代码可简化为:

def print_intro(name, age, city):

intro = '我叫%s,今年%d岁,来自%s。' % (name, age, city)

print(intro)

print_intro('晗晗', 23, '河北')

# 输出:我叫晗晗,今年23岁,来自河北。

字符串格式化输出的语法规则:第一部分:含有占位符的字符串;

第二部分:%运算符作为分隔;

第三部分:包含一个或多个元素的元组。

note: 如果只有一个占位符,可以将元组中的元素拿出来,如:'我叫%s。' % 'Monika'

常见占位符:%d 整数

%f 浮点数

%s 字符串

%x 十六进制整数

note: %s是万能的,可以把任何数据类型转化为字符串。

2. 字符串索引

1) 字符串索引

和列表一样,可以通过索引和反向索引访问字符串中的字符。

str = 'Hello World'

print(str[6]) # 输出:W

print(str[-5]) # 输出:W

正向索引从0开始计数,反向索引从-1开始计数。一般来说,访问靠前的元素用正向索引,靠后的元素用反向索引。

2) 字符串分片

字符串也是有序序列,其分片方法与列表相似。

str = 'Hello World'

# 从索引0开始,到索引3为止,不包括索引3

print(str[0:3])

# 输出:Hel

# 如果第一个索引是0,可以省略

print(str[:3])

# 输出:Hel

print(str[3:11])

# 输出:lo world

# 如果分片到末尾,也可以省略

print(str[3:])

# 输出:lo world

# 复制一个相同的字符串

print(str[:])

# 输出:Hello world

# 使用反向索引分片

print(str[-3:])

# 输出:rld

3) 字符串不可变性

字符串一旦创建则不可改变,这一属性与元组类似,通过索引来改变字符串中元素就会报错:

str = '鹿班七号'

str[0] = '鲁'

print(str)

# TypeError: 'str' does not support item assignment on line 2

因此,若要修改字符串中的内容,要使用字符串分片和拼接来生成一个新的字符串。

str = '鹿班七号'

str = '鲁' + str[1:]

print(str)

# 输出:鲁班七号

3. 字符串方法

1) 大小写转换方法upper():用于将字符串中的小写字母转为大写字母;

lower():用于将字符串中的大写字母转为小写字母;

capitalize():用于将字符串中的第一个字母转为大写,其他字母转为小写,首字符如果是非字母则不变,其他字母变小写;

title():用于返回“标题化”的字符串,及所有单词的首字母转为大写,其余字母均为小写(非字母后的第一个字母也将转为大写);

swapcase():用于对字符串中的大小写字母互相转换。

str = 'feel THE change'

# 将str转为全大写并输出

print(str.upper())

# 输出:FEEL THE CHANGE

# 将str转为全小写并输出

print(str.lower())

# 输出:feel the change

# 将str进行大小写互换并输出

print(str.swapcase())

# 输出:FEEL the CHANGE

# 将str“标题化”并输出

print(str.title())

# 输出:Feel The Change

2) 分割、组合与移除方法split():用于通过指定分隔符对字符串进行分割。有两个可选参数,第一个参数为分隔符,默认为所有空字符,包括空格、\n、\t等,第二个参数为最大分割次数,默认为-1,即不限次;

join():用于将序列中的元素以指定的字符连接生成一个新的字符串,join方法接收一个序列作为参数,.前面的字符串用于连接符;

strip():用于移除字符串开头和结尾指定的字符或字符序列(默认为空字符),当传入一个字符串时,会将传入字符串中每个字符依次移除。

str = '$打-开-编-程-世-界-的-大-门$'

str = str.split('-')

str = '~'.join(str)

str = str.strip('$')

print(str)

# 输出:打~开~编~程~世~界~的~大~门

# 上述代码等同于 print('~'.join(str.split('-').strip('$'))

3) 定位与替换方法count():用于统计字符串中某个字符串出现的次数,第一个参数为要统计次数的字符串,后两个可选参数为开始和结束索引;

find():用于检测字符串中是否包含子字符串,如果包含子字符串返回第一次出现的索引值,否则返回-1,第一个参数为要查找的字符串,后两个可选参数为开始与结束索引;

replace():用于将字符串中的指定字符串替换成别的字符串,第一个参数为被替换字符串,第二个参数为替换字符串,第三个参数为替换的最多次数,默认无限次。

str = 'feel the change'

# 输出str中e的个数

print(str.count('e'))

# 输出:4

# 输出str中change的索引值

print(str.find('change'))

# 输出:9

# 将str中的change替换为CHANGE

print(str.replace('change', 'CHANGE'))

# 输出:feel the CHANGE

4) 格式化输出方法

除了使用%运算符,也可使用字符串的format()方法进行字符串的格式化输出。format()方法使用{}作为占位符,然后按照参数顺序替换对应的占位符。

'我叫{},今年{}岁,来自{}'.format('Monika', 23, '河北')

# 输出:我叫Monika,今年23岁,来自河北

此外,也可给占位符编号或命名(参数顺序不再重要):

'我叫{2},今年{1}岁,来自{0}'.format('河北', 23, 'Monika')

'我叫{name},今年{age}岁,来自{city}'.format(age = 23, city = '河北', name = 'Monika')

# 以上两例均输出:我叫Monika,今年23岁,来自河北

Reference:

[1] Wes McKinney. 2017. Python for Data Analysis: Data Wrangling with Pandas, NumPy, and IPython, 2nd Edition [M]. O'Reilly Media, Inc.

[2] CSDN博客. Python博客[OL]. https://www.csdn.net/nav/python. 2020.

万门69节入门python_Python入门六:字符串相关推荐

  1. 69讲入门python_Python入门,一定要吃透这69个内置函数

    内置函数就是Python预先定义的函数,这些内置函数使用方便,无需导入,直接调用,大大提高使用者的工作效率,也更便于程序的阅读.截止到Python版本3.9.1,Python一共提供了69个内置函数. ...

  2. 深度学习入门笔记(六):误差反向传播算法

    专栏--深度学习入门笔记 推荐文章 深度学习入门笔记(一):机器学习基础 深度学习入门笔记(二):神经网络基础 深度学习入门笔记(三):感知机 深度学习入门笔记(四):神经网络 深度学习入门笔记(五) ...

  3. 无人驾驶汽车系统入门(十六)——最短路径搜索之A*算法

    无人驾驶汽车系统入门(十六)--最短路径搜索之A*算法 路线规划中一个很核心的问题即最短路径的搜索,说到最短路径的搜索我们就不得不提A*算法,虽然原始的A*算法属于离散路径搜索算法(我们的世界是连续的 ...

  4. 宏宇社:国外lead入门教程(六)lead任务辅助工具网站

    宏宇社:国外lead入门教程(六)lead任务辅助工具网站 做国外lead任务需要的是批量操作.简单的来说,你不可能通过在同一个联盟申请的一个账号就能做到几百美刀.几千美刀的成绩.这种获利的程度很难达 ...

  5. STM32固件库(标准外设库)入门学习 第六章TIM定时器(一)

    STM32固件库(标准外设库)入门学习 第六章TIM定时器(一) 文章目录 STM32固件库(标准外设库)入门学习 第六章TIM定时器(一) 前言 一.定时器类型 1 基本定时器 2 通用定时器 3 ...

  6. System Generator从入门到放弃(六)-利用Vivado HLS block实现VivadoHLS调用C/C++代码

    System Generator从入门到放弃(六)-利用Vivado HLS block实现Vivado HLS调用C/C++代码 夜未央,流星落,情已殇 文章目录 System Generator从 ...

  7. [Eclipse]GEF入门系列(六、添加菜单和工具条)

    我发现一旦稍稍体会到GEF的妙处,就会很自然的被它吸引住.不仅是因为用它做出的图形界面好看,更重要的是,UI中最复杂和细微的问题,在GEF的设计中无不被周到的考虑并以适当的模式解决,当你了解了这些,完 ...

  8. UWP开发入门(十六)——常见的内存泄漏的原因

    原文:UWP开发入门(十六)--常见的内存泄漏的原因 本篇借鉴了同事翔哥的劳动成果,在巨人的肩膀上把稿子又念了一遍. 内存泄漏的概念我这里就不说了,之前<UWP开发入门(十三)--用Diagno ...

  9. 【Arduino】开发入门教程【六】数据类型转换函数

    Arduino数据类型转换函数有 char() : 将任意类型的值转换成char类型; byte():  将任意类型的值转换成byte类型; int():  将任意类型的值转换成int类型; long ...

最新文章

  1. golang中的byte与rune
  2. DELAY INIT 延迟初始化
  3. C++职工信息管理系统
  4. 11G延迟密码验证的取消
  5. pip install cryptography error
  6. PAT 1014 Waiting in Line
  7. find python列表_Python基础知识(7)list列表各种操作
  8. (6)<a>标签如何实现点击既不刷新也不跳转的功能
  9. SpringBoot2.1.5(23)---SpringBoot 开发WEB应用
  10. 2016/11/14
  11. DataSet.GetBookMark内存泄漏
  12. 计蒜客——双重回文数
  13. 传统企业信息化的成功案例的一些感想(原创)
  14. 中的draw函数_哪一个热图函数更快?
  15. 仿安居客好租网房产源码
  16. python入门自学软件手机版,python编程教学app
  17. 高电平、低电平、高电平有效、低电平有效
  18. linux下查看eml类型文件
  19. vnr光学识别怎么打开_小区安装家用防盗报警系统方案
  20. vue+echarts制作大屏利用css3 scale 进行屏幕自适应

热门文章

  1. SparkStreaming靠什么征服了字节跳动?
  2. 为反对种族歧视,GitHub正在把master/slave等术语替换掉
  3. 彻底理解 Cookie,Session,Token
  4. Python源码学习:Python类机制分析
  5. 使用Django开发REST 接口
  6. 网络空间安全Windows系统命令行学习笔记
  7. ArcFace - 人脸识别
  8. 工业相机帧率与曝光时间的关系
  9. 干货|深度学习之过拟合和正则化
  10. 综述 | 图像去噪方法比较