目录

第四章  字符串

一、字符串格式问题及转义字符:

二、字符串的常见操作:

(一)字符串的接拼:

(二)字符串索引:

(三)字符串分片:

(四)字符串的不可变性:

(五)字符串大小写转换方法:

(六)字符串分割、组合、移除:

(七)字符串查找与替换:

(八)字符串对齐:

(九)字符串格式化输出:

(1)%占位格式化字符串:

(2)format() 方法格式化字符串:


第四章  字符串

一、字符串格式问题及转义字符:

由第一章基础总结,我们知道,字符串是一种用来表示文本的数据类型,它是由符号或者数值组成的一个连续序列。对字符串有了一定的了解。首先我们来看看一些平时容易犯的错误例子:

# 前后不统一:
name1 = '小明"
name2 = "小明'# 使用了中文引号:
name1 = ‘小明’
name2 = “小明”#多行输出有误:
poetry = '日暮苍山远,天寒白屋贫。
柴门闻犬吠,风雪夜归人。'
print(poetry)
# 报错:SyntaxError: bad token on line 1

由上段代码可以总结出,我们平时容易犯的错误,如引号前后不统一、使用了中文引号、多行输出有误等。其中,多行输出,我们可以通过使用三引号''' ''' 来输出。不过,除了使用多行字符串来实现多行文本输出外,使用 \n 也能达到一样的效果。\n 被称为 换行符,用于文本间的换行。

常用转义字符如下:(r:让转义字符失效。如:print(r'你\n好')  #输出:你好)


二、字符串的常见操作:

(一)字符串的接拼:

通过 + 可以将两个字符串拼接,得到一个新的字符串。如下:

first_name = '史蒂夫'
last_name = '乔布斯'
# 使用 + 拼接字符串
full_name = first_name + '·' + last_name
print(full_name)
# 输出:史蒂夫·乔布斯

当我们把同一个字符串重复很多次的时候,我们可以使用多个 + 拼接,像下面这样:

str1 = '海草'
str2 = str1 + str1 + str1
print(str2)
# 输出:海草海草海草

上面那样的写法太麻烦了,你有没有想到更快捷的方法?对了,用 *,数学中的乘法是相同的数加起来的快捷方式,Python 中字符串的拼接操作也是如此。

str1 = '海草'
str2 = str1 * 3  # 相当于 str1 + str1 + str1
print(str2)
# 输出:海草海草海草

除此之外,Python中还有一些常用的字符串运算符,如下:

Python字符串运算符
操作符 描述 实例
+ 字符串连接 如上面代码
* 重复输出字符串 如上面代码
[ ] 通过索引获取字符串中的字符 a[2]
[ : ] 截取字符串中的一部分 a[1:4]
in 成员运算符,如果字符串中包含给定的字符,则返回True 'H' in 'Hello'
not in 成员运算符,如果字符串中不包含给定的字符,则返回True 'M' in 'Hello'
r/R 原始字符串,在转义字符中,可以使转义字符失效 print(r'你\n好')  
% 格式字符串 后面详解

(二)字符串索引:

通过索引或反向索引的方式访问字符串中的字符。正向索引是从 0 开始计数,而反向索引则是从 -1 开始计数。如下:

str = 'Hello World'
print(str[6])  # 输出:W
print(str[-5])  # 输出:W

上段代码具体原理如下:

(三)字符串分片:

string = 'Hello World'# 从索引 0 开始,到索引 3 为止,不包括索引 3
print(string[0:3])
# 输出:Hel# 如果第一个索引是 0,可以省略
print(string[:3])
# 输出:Helprint(string[3:11])
# 输出:lo World# 如果分片到末尾,后面也可以省略
print(string[3:])
# 输出:lo World# 如果都省略,则是复制一个一样的字符串
print(string[:])
# 输出:Hello World

上面的这些例子中有两个注意点:

  1. 分片是半闭半开区间,即包含前面索引位置的元素,不包含后面索引位置的元素。比如:string[m:n] 获取的是字符串 string 中索引为 m 到 n-1 之间的元素(包括 m 和 n-1);
  2. 分片中前后索引的值是可以省略的,前索引省略默认0后索引省略默认为序列长度

关于分片索引的一个注意点

string = 'Hello World'
print(string[0:100000])

你猜猜运行结果是什么?是不是会报错?因为后面索引超出了字符串本身的长度。其实不然,分片超出范围是不会报错的。上段代码结果是:Hello World。(你可以把字符串想象成一根绳子,分片就是用刀将绳子切分开来。在字符串长度内分片相当于在绳子上切割,而超出范围相当于一刀砍到了空气,对于绳子来说没有影响。)

这一点和索引取值是不同的,如果索引取值超出范围将会报错。比如将上面的第二行代码改成 print(string[100000]) 将会得到 IndexError: string index out of range(索引错误:字符串索引超出范围)的报错。如下:

string = 'Hello World'
print(string[100000])# 输出:IndexError: string index out of range

          (四)字符串的不可变性:

字符串一旦创建后是不可改变的,这个属性和元组类似,通过索引来改变字符串中元素就会报错,那么我们怎样才能修改字符串的内容呢?答案是使用字符串分片和拼接去生成一个新的字符串,看个例子:

name = '鹿班七号'name[0] = '鲁'
print(name)
# 报错:TypeError: 'str' does not support item assignment on line 2new_name = '鲁' + name[1:]
print(new_name)
# 输出:鲁班七号

(五)字符串大小写转换方法:

举例说明:

'abcd'.upper()  # 'ABCD'
'ABCD'.lower()  # 'abcd'
'ABCD'.capitalize()  # 'Abcd'
'1aBcD'.capitalize()  # '1abcd'
'this is an example string'.title()   # This Is An Example String
'5g is coming'.title()  # 5G Is Coming
'abcd'.swapcase()  # 'ABCD'

(六)字符串分割、组合、移除:

举例说明:

str = '$带-你-打-开-编-程-世-界-的-大-门$'
print('~'.join(str.split('-')).strip('$'))
# 上面代码相当于
# str = str.split('-')
# str = '~'.join(str)
# str = str.strip('$')# 输出:带~你~打~开~编~程~世~界~的~大~门

除了上表中,strip()方法(移除字符串头尾指定字符)可以移除字符串中的指定字符外,Python中的 lstrip()方法(移除字符串头部指定字符) 和 rstrip() 方法(移除字符串尾部指定字符)也可以删除字符串中的指定字符。

          (七)字符串查找与替换:

举例说明:

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

          (八)字符串对齐:

在使用Word处理文档时可能需要对文档的格式进行调整,如标题居中显示、左对齐、右对齐等。Python提供了center()(居中对齐)ljust()(左对齐)rjust()(右对齐)这3个方法来设置字符串对齐方式

          (九)字符串格式化输出:

字符串格式化输出是按照一种既定格式给字符串填空的方式,以便我们更加方便地写入字符串。

                         (1)%占位格式化字符串:

def print_intro(name, age, city):intro = '我叫%s,今年 %d 岁,来自%s。' % (name, age, city)print(intro)print_intro('李华', 18, '重庆')
# 输出:我叫李华,今年 18 岁,来自南京。

上段代码中,% 运算符左边是要格式化的字符串,右边是一个元组。如果只有一个占位符,可以将元组里的元素拿出来。常用占位符如下:

字符串常用占位符
格式符 格式说明
%c 将对应的数据格式化为字符
%s 将对应的数据格式化为字符串
%d 将对应的数据格式化为整数
%u 将对应的数据格式化为无符号整型
%o 将对应的数据格式化为无符号八进制数
%x 将对应的数据格式化为无符号十六进制数
%f 将对应的数据格式化为浮点数,可指定小数点后的精度(默认保留6位小数)

                         (2)format() 方法格式化字符串:

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

'我叫{},今年 {} 岁,来自{}'.format('李华', 18, '重庆')
# 我叫李华,今年 18 岁,来自重庆#还可以给占位符编号:
'我叫{0},今年 {1} 岁,来自{2}'.format('李华', 18, '重庆')
# 我叫李华,今年 18 岁,来自重庆# 调整编号顺序
'我叫{2},今年 {1} 岁,来自{0}'.format('重庆', 18, '李华')
# 我叫李华,今年 18 岁,来自重庆# 重复编号
'我叫{0},{0}今年 {1} 岁,来自{2}'.format('李华', 18, '重庆')
# 我叫李华,李华今年 18 岁,来自重庆#还可以给占位符命名:
'我叫{name},今年 {age} 岁,来自{city}'.format(name = '李华', age = 18, city = '重庆')
# 我叫李华,今年 18 岁,来自重庆

Python基础总结(四) 字符串相关推荐

  1. Python基础数据类型之字符串(二)

    Python基础数据类型之字符串(二) 一.字符串的常规操作 二.字符串的大小写转换 1.首字母大写 2. 每个单词首字母大写 3.大写转化为小写 4.所有字母变成大写字母 二.验证码忽略大小写 三. ...

  2. Python基础数据类型之字符串(一)

    Python基础数据类型之字符串(一) 一.字符串格式化 1.字符串占位符 2.字符串格式化操作 二.f-string格式化 三.字符串的索引 四.字符串的切片 1.常规切片使用方法 3.步长的介绍 ...

  3. Python基础(四)--字典与集合

    Python基础(四)--字典与集合 1 字典 1.1 什么是字典 字典提供的是一种映射存储的方式.字典分为两个部分,一个是键(key),一个是key所关联的值(value).,一个键关联(或绑定)一 ...

  4. str.replace()——Python的“第四”字符串格式

    str.replace(),Python的"第四"字符串格式. [学习的细节是欢悦的历程] Python 官网:https://www.python.org/ Free:大咖免费& ...

  5. 小白都能学会的Python基础 第四讲:Python函数与模块

    1.华小智系列 - Python基础(案例版) <Python基础>目录 第四讲:Python函数与模块 1.函数的定义与调用 2.函数参数与返回值 2.1 参数再研究 2.2 返回值 2 ...

  6. Python基础——第四章:Python循环语句

    前言 本文是根据黑马程序员Python教程所作之笔记,目的是为了方便我本人以及广大同学们查漏补缺. 不想做笔记直接来我的频道.当然啦,自己的笔记才是最好的哦! PS:感谢黑马程序员! 教程链接:黑马程 ...

  7. Python基础语法day02字符串详解和列表

    今天是python基础语法入门第二天,大概总共会有四天左右.四天后就是对于python的numpy库的详细文章.那话不多说,我们开始. 目录 字符串详解 字符串独有功能 检测头尾字符 判断输入结果是否 ...

  8. python 字符转义_【课堂笔记】Python基础语法:字符串

    本文是<财务Python基础:字符串>视频的文字版笔记,供大家参考. Python中的字符串 字符串是以单引号'或双引号"括起来的任意文本.注意即使是数字,如果用引号引起来,那么 ...

  9. Python基础day03【字符串(定义、输入输出、常用方法)、列表(定义、基本使用、增删改查、嵌套)、元组】

    视频.源码.课件.软件.笔记:超全面Python基础入门教程[十天课程]博客笔记汇总表[黑马程序员] Python基础day3 作业解析[5道 字符串题.3道 列表题.2道 元组题]      学习目 ...

  10. AI算法工程师 | 02人工智能基础-Python基础(四)os模块_打开读取文件

    文章目录 Python基础语法 之 文件和流 os 模块 调用操作系统命令 操作文件和目录 案例-文件重命名 打开读取文件 打开文件 读取文件 补充-中文编码问题 Python基础语法 之 文件和流 ...

最新文章

  1. Java中创建泛型数组
  2. iOS中系统自带正则表达式的应用
  3. python pil png合成gif储存时变黑_使用 Python 玩转图片
  4. java 多线程输出_[Java多线程]ABC三个线程顺序输出的问题
  5. Windows XP系统安装SQL Server 2005(开发版)图解
  6. 关于零拷贝技术,你了解多少?
  7. java excel 数据有效性_poi操作excel设置数据有效性
  8. 【日常篇】006_从黑体辐射到RGB——如何定量计算光谱的颜色?
  9. 夏令时到底是个什么东西?
  10. 【SonarQube】安装、配置与使用 01
  11. Vue前端编译问题集
  12. 2022年lazada跨境店 新,马,泰,菲等4个国家正式开放食品类目招商
  13. Ubuntu/CentOS 磁盘分区扩展
  14. [报错] SyntaxError: Missing parentheses in call to ‘exec‘
  15. Bootstrap 与 Jackknife 笔记
  16. k8s使用harbor创建POD
  17. 电磁场与仿真软件(7)
  18. Abb机器人工具重量检测
  19. mysql 数据上一条下一条问题
  20. 用dos命令破除unix管理员口令

热门文章

  1. layui 点击保存延迟几秒跳转页面
  2. 【史上最骚爬虫|疯狂爬取中国大学mooc】太燃了,爬虫vs慕课反爬世纪大战|No.1
  3. Windows 7的“杀手锏”是智能
  4. 快速提示:安装Laravel 5
  5. 利用python爬虫大量基金股票的净值写入到csv文件中方便做其他计算
  6. 虚拟内存与物理内存的区别,
  7. vue.js毕业设计,基于vue.js前后端分离在线教育视频点播小程序系统 开题报告
  8. linux 软链接重新连接,Linux总结(十二)set_uid set_gid stic_bit 软链接 硬链接
  9. win10将硬盘作为存储池删除读不到盘符_东芝的传承,我来延续:铠侠TC10 SATA固态硬盘上手评测...
  10. 百度地图使用(保姆式教学)