iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > Python >python教程(六)·字符串
  • 253
分享到

python教程(六)·字符串

字符串教程python 2023-01-30 23:01:28 253人浏览 独家记忆

Python 官方文档:入门教程 => 点击学习

摘要

我们已经学习了字符串的使用方法,我们还学习了使用索引和分片操作字符串,经历了这么长的时间,相信大家也有所掌握;本节将讨论并学习字符串的格式化与字符串的常用方法 字符串格式化 字符串是序列的一种,所以所有的通用序列操作当然都适用啦,这里就

我们已经学习字符串的使用方法,我们还学习了使用索引和分片操作字符串,经历了这么长的时间,相信大家也有所掌握;本节将讨论并学习字符串的格式化与字符串的常用方法

字符串格式化

字符串是序列的一种,所以所有的通用序列操作当然都适用啦,这里就不再重复了,下面我们来探讨字符串的格式化

何为字符串格式化?字符串格式化就是指把数据按照一定的格式组成一个字符串,这貌似很难说清楚,下面来看个例子:

现有下列变量:

year = 2018
month = 3
day = 9

我们要输出格式为“年|月|日”的字符串,那么我们可以使用加号+来进行拼接字符串:

output = str(year) + '|' + str(month) + '|' + str(day)
print(output)

我们将year、month、day三个变量按照一定的格式组成了一个字符串,这样的过程就可以称为字符串格式化。

然而,今天我们来探讨的不是以这种拼接方式实现的字符串格式化,而是以用数据填充模板的方式来实现,也就是我们给出一个模板“年|月|日”,我们只需要提供三个值,年、月、日,然后就生成我们想要的字符串。

python支持的字符串格式方式有两种,下面来一一介绍

传统方式

第一种字符串格式化使用百分号%来实现,在%的左边是格式化字符串,也就是我们的模板,右边是我们用来格式化的数据(元组类型),也就是用来填充的值,举例如下:

>>> year = 2018
>>> month = 3
>>> day = 9
>>> output = '%s|%s|%s' % (year, month, day)
>>> print(output)
2018|3|9
>>> 

模板字符串中的%s叫做转换说明符,也叫占位符,就是用来占着位置,等待被替换成提供的值,s表示这个位置将替换成字符串,如果值不是字符串,就使用str函数转换成字符串,完整的转换说明符,由以下部分按顺序组成:

  1. %字符:这是转换说明符的开始
  2. 转换标志(可选):-表示左对齐,+表示在数值前加上正负号,空格表示正数之前保留空格,0表示转换值后位数不足就用0填充
  3. 最小字段宽度(可选):转换后的值不能短于该值指定的宽度,如果该位置写的是*,则宽度由%右边的元组提供
  4. .后跟精度值(可选):如果转换的是浮点数,精度值就表示小数点后的位数,如果转换的是字符串,精度值就表示最大的字段宽度,如果为*,那么该值由%右边的元组提供
  5. 转换类型:看下表:
转换类型 含义 例子
d或i 有符号的十进制整数 '%d' % 123 => '123'
o 无符号的八进制整数 '%o' % 8 => '10'
u 无符号十进制整数 '%u' % 123 => '123'
x 无符号十六进制整数(小写) '%x' % 123 => '7b'
X 无符号十六进制整数(大写) '%x' % 123 => '7B'
e 科学计数法表示的浮点数(小写) '%e' % 123.456 => '1.234560e+02'
E 科学计数法表示的浮点数(小写) '%E' % 123.456 => '1.234560E+02'
f,F 十进制浮点数 '%f' % 123.456 => '123.456000''%F' % 123.456 => '123.456000'
g 如果指数大于-4或者小于精度值则和e相同,其它情况与f相同
G 如果指数大于-4或者小于精度值则和E相同,其它情况与F相同
c 单字符串(ASCII码值或则单字符字符串) '%c' % 65 => 'A''%c' % 'a' => 'a'
r 字符串(使用repr函数转换任意Python对象) 'hello %r!' % 'world' => "hello 'world'!"
s 字符串(使用str函数转换任意python对象 'hello %s!' % 'world' => 'hello world!'

看到这个表相信大家都晕了,告诉大家一个秘密,我从来没有记住这个表!⊙▽⊙

因为一般来说,大多数的值都是可以转换成字符串的,所以最常用的转换说明符也就一个%s(~ ̄▽ ̄)~

虽然不需要记住那么多的转换类型,但有些细节还是要记住的!

字段宽度和精度

字段宽度是转换后的值所占的最少字符个数,精度就是转换后的小数位数(对于浮点数),或者转换后最大字符个数(对于字符串),这两个参数都是整数或者星号*,它们之间用点.分隔(如果只指定宽度不指定精度就不必要使用点.),举例如下:

>>> '%9f' % 1.0 # 字段宽度为9
' 1.000000'
>>> '%9.1f' % 1.0 # 字段宽度为9精度为1
'      1.0'
>>> '%.2f' % 1.1 # 精度为2
'1.10'

可以看到,转换后的字符串宽度不足时,默认在左边用空格填充

使用星号*的时候,需提供相应的宽度或精度:

>>> '%.*s' % (5, 'hello world!')  # 精度为5
'hello'

标志

紧接着%,我们可以使用一个标志,这个标志可以是0+-或者空格

  • 0表示数字的填充符使用0:
    python >>> '%09f' % 1.0 '01.000000'
  • +表示给数值加上正负号:
    python >>> '%+d' % 12 '+12' >>> '%+d' % -12 '-12'
  • -表示左对齐数值:
    python >>> '%-9f' % 1.0 '1.000000 '
  • 空格表示在正数前加上空格:
    python >>> '% d' % 12 ' 12' >>> '% d' % -12 '-12'

补充%%表示百分号%本身

学过C语言的都知道,这种传统的字符串格式化方式和C语言的字符串格式化方式大同小异,但是这种方式正逐渐被python抛弃,python官方推荐下面这种新的字符串格式化方式

更先进的方式

python的字符串有一个fORMat方法,这个方法正是使用新版字符串格式化的渠道,下面是用法:

基本用法:使用{}做占位符,按顺序填充参数:

>>> 'hello {}, I am {}'.format('world', 'Lee')
'hello world, I am Lee'

使用数字指定参数的位置(从0开始):

>>> 'Between {0} and {1}, I like {0}'.format('apple', 'banana')
'Between apple and banana, I like apple'

使用关键字参数指定参数:

>>> 'I am {name}, and my age is {age}.'.format(name='Lee', age=18)
'I am Lee, and my age is 18.'
>>> d = {'name': 'Lee', 'age': 18}  # 使用字典
>>> 'I am {name}, and my age is {age}.'.format(**d)  # 展开字典
'I am Lee, and my age is 18.'

还可以通过列表索引来指定参数:

>>> lst = ['Lee', 18]
>>> 'I am {0[0]}, and my age is {0[1]}.'.format(lst)
'I am Lee, and my age is 18.'

花括号{}中使用冒号:分隔,左边指定字段名(数字,关键字等),右边按顺序指定:

  1. 填充字符:用于填充的字符,默认为空格
  2. 对齐方式
    • ^ 居中
    • < 左对齐
    • > 右对齐
  3. 正负号
    • + 给数字加上正负号
    • - 只给负数加上负号(默认)
    • 空格 给正数加上空格
  4. 宽度:指定最小字段宽度,以0开始表示用0填充
  5. 精度:在宽度字段后添加一个点.再写此字段,表示小数点后的位数(对于浮点数),或者最大字段宽度(对于字符串)
  6. 转换类型:大致与传统方式相同

补充:两个{表示{本身,两个}表示}本身。

读者可以参照这篇文章,写得比较详细:Python 中 str.format() 方法详解


字符串方法

了解了这么多的字符串格式化方式,该介绍几个字符串常用方法了。

要记住字符串是不可变的,所以下面介绍到的方法都不会改变原来的字符串!

find

find方法用于在一个字符串中查找一个子串,返回第一个匹配字串的首字符索引,如果没有找到就返回-1,举例如下:

>>> 'hello Lee'.find('Lee')
6
>>> 'hello Lee'.find('jack')
-1

还可以指定查找的起点、终点(不包含):

>>> s = 'hello Lee'
>>> s.find('Lee', 7)  # 指定起点
-1
>>> s.find('Lee', 0, 9)  # 指定起点和终点
6

replace

replace方法用于返回替换后的字符串,如:

>>> 'hello world!'.replace('world', 'Lee')  # 用'Lee'替换'world'
'hello Lee!'

translate

和replace方法类似,但是可以同时替换多个字符,用法如下:

>>> table = str.maketrans('hw', 'HW') # 制作映射表,h=>H,w=>W
>>> table
{104: 72, 119: 87}
>>> 'hello world'.translate(table)
'Hello World'

strip

该方法用于去除两侧指定的字符串(默认为空白符,即空格、制表符、换行符等),如:

>>> ' hello world     '.strip()
'hello world'
>>> '**hello world***'.strip('*')
'hello world'

补充:lstrip只作用于字符串左端,rstrip只作用于字符串右端

split和join

split方法用来讲字符串分割成序列,如:

>>> s = 'Guangdong, Zhejiang, Shanghai'
>>> s.split(',')  # 用逗号','作为分割符
['Guangdong', ' Zhejiang', ' Shanghai']
>>> s.split()  # 默认使用空白符(空格、制表符、换行符等)作为分割符
['Guangdong,', 'Zhejiang,', 'Shanghai']
>>> s.split(',', 1)  # 分割1次  
['Guangdong', ' Zhejiang, Shanghai']

补充:rsplit从右边开始分割

join用于将序列连接成字符串,如:

>>> ','.join(['hello', 'world'])
'hello,world'

lower和upper

lower方法和upper方法分别返回转换成小写和大写的字符串,如:

>>> 'AbcD'.lower()
'abcd'
>>> 'AbcD'.upper()
'ABCD'

本节内容较多,好好消化吧!

不知道下一次有时间更新又是什么时候咯 ヾ( ̄▽ ̄)Bye~Bye~

--结束END--

本文标题: python教程(六)·字符串

本文链接: https://www.lsjlt.com/news/181343.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • python教程(六)·字符串
    我们已经学习了字符串的使用方法,我们还学习了使用索引和分片操作字符串,经历了这么长的时间,相信大家也有所掌握;本节将讨论并学习字符串的格式化与字符串的常用方法 字符串格式化 字符串是序列的一种,所以所有的通用序列操作当然都适用啦,这里就...
    99+
    2023-01-30
    字符串 教程 python
  • Python基础知识(六)--字符串
      #字符串   #字符串是用固定的str数据类型表示的,用来存放Unicode字符序列  #str数据类型可以用来创建一个字符串对象,参数为空时返回一个空字符串  a = str()  print(a)                  ...
    99+
    2023-01-31
    字符串 基础知识 Python
  • python怎么重复字符串_python重复字符串教程
    1、首先打开pycharm,进入到pycharm主页。 2、然后新建python脚本,右键--点击new--点击 python file。 3、输入一段字符串,代码:s = "-"。...
    99+
    2024-04-02
  • Python怎么定义字符串_Python定义字符串教程
    1、首先简单地理解,字符串就是【一串字符】,也就是用引号内的任何数据,比如【hello,charlie】是一个字符串,【how are you?】也是一个字符串。python 要求,字符...
    99+
    2024-04-02
  • Python入门教程(九)Python字符串介绍
    目录字符串字面量用字符串向变量赋值多行字符串字符串是数组裁切负的索引字符串长度字符串方法检查字符串字符串级联(串联)字符串格式字符串方法字符串字面量 python 中的字符串字面量由...
    99+
    2023-05-15
    Python Python 字符串
  • Python教程:字符串中的第一个唯一字符
    Python教程——字符串中的第一个唯一字符题目:给定一个字符串,找到它的第一个不重复的字符,并返回它的索引。如果不存在,则返回 -1。案例:s = "leetcode"返回 0.s&nbs...
    99+
    2023-06-02
  • Python 变量教程字节对象与字符串
    目录前言编码解码前言 在 Python 2 中,str 和 bytes 都是相同的 typeByte 对象,而在 Python 3 中,Byte 对象在 Python 3 中定义为&...
    99+
    2024-04-02
  • Golang 与 Python - 十六进制字符串到整数
    大家好,今天本人给大家带来文章《Golang 与 Python - 十六进制字符串到整数》,文中内容主要涉及到,如果你对Golang方面的知识点感兴趣,那就请各位朋友继续看下去吧~希望能真正帮到你们...
    99+
    2024-04-05
  • python常用的六个字符串处理方法
    1.upper(将小写字母转换为大写) 语法:        str.upper() 参数:         NA 实例: a = 'abc' b = a.upper() print(b) 结果:         ABC     2....
    99+
    2023-01-31
    字符串 常用 方法
  • python教程:15种字符串操作方法
    字符串是 字符的序列 。字符串基本上就是一组单词。我几乎可以保证你在每个Python程序中都要用到字符串,所以请特别留心下面这部分的内容。下面告诉你如何在Python中使用字符串。 1. 字符串定义 ...
    99+
    2023-10-09
    python 开发语言
  • Golang:验证字符串是有效的十六进制字符串吗?
    php小编小新在这里为大家介绍一种验证字符串是否为有效十六进制字符串的方法。在编程中,经常会遇到需要验证输入是否符合特定格式的需求,而对于十六进制字符串的验证也是其中之一。本文将向大家...
    99+
    2024-02-12
  • 在Python 中将十六进制字符串转换为 int
    在Python中,可以使用 `int()` 函数将十六进制字符串转换为整数。需要将十六进制字符串作为第一个参数传递给 `int()`...
    99+
    2023-09-26
    Python
  • PHP如何转换十六进制字符串为二进制字符串
    这篇文章将为大家详细讲解有关PHP如何转换十六进制字符串为二进制字符串,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。如何将十六进制字符串转换为二进制字符串 前言: 十六进制和二进制是计算机科学中常用的两种...
    99+
    2024-04-02
  • python字符串翻转教学设计
    第1关:统计“唐诗三百首”中诗人出现的次数 def count_poet(file, poet): """统计诗人出现的次数,包括以作者身份和出现的诗句中的情况,返回一个整数""" with open(file, 'r', e...
    99+
    2023-09-11
    python 学习 算法 头歌 Powered by 金山文档
  • python 字符串
    字符串>>> a = 'Hello World!'>>> print (a)                # 输出完整字符串Hello World!>>> print (a[0])  ...
    99+
    2023-01-31
    字符串 python
  • python字符串
    字符串的操作方法很多,这里只选几种常用的(1)    字符串大小写转换1.    S.lower()    字母大写转换...
    99+
    2023-01-30
    字符串 python
  • Python 字符串
        1.字符串的索引       2.字符串的切片   s[1:3]   从第二个数切片到第三个,上边界不包含在内。     s[3: ]     s[ :3]   没个给切片的边界,上边界默认是0,下边界默认是末尾。’     s[ ...
    99+
    2023-01-31
    字符串 Python
  • python---字符串
    特性:不可修改 test = "my name is fengxiaoli" ###确定字符串中字符位置 print(test.rfind("m"))                  #找到m所在的位置,以最右边的为准 print(te...
    99+
    2023-01-31
    字符串 python
  • Python——— 字符串
    (一)字符串     字符串是 Python 中最常用的数据类型。我们可以使用引号 ( ' 或 " ) 来创建字符串。顾名思义,羊肉串是由羊肉做成的串,而字符串就是由字符组成的。   字符串的本质是:字符序列。 2     Pyth...
    99+
    2023-09-02
    python 开发语言
  • Python格式化字符串f-string的使用教程
    目录楔子实现 repr 打印整数的进制转换整数的填充浮点数的小数保留任意字符的填充日期的截取f-string 的注意事项小结楔子 在 Python3.6 之前,格式化字符串一般会使用...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作