Python学习笔记:字符串

时间:2022-09-21 07:50:40

字符串

  1. 字符串定义:字符串可以使用一对单引号、双引号或三引号来定义,即便是单个字符也会当做字符串来处理(Python中没有字符类型,单个字符也就是只有一个字符的字符串而已)。
  2. 原始字符串:字符串中反斜杠“\”表示转义,如果不想“\”表示转义,在字符串之前加上“r”或“R”,表示原始字符串,即字符串中的字符都是原始的字符,没有任何特殊含义(没有转义),比如r'aaa\n',其中“\n”就是两个普通字符,不再代表换行符了。
  3. 字符串切片:字符串就是一个字符序列,可以使用列表的切片运算来获得字符串的子串,也可以使用下标索引获得其中的字符的位置,第一个字符的下标为0(从左向右),最后一个字符的下标为-1(从右向左)。
  4. 字符串连接:可以使用“+”号连接两个字符串(会在内存重新开辟一块空间,创建一个新的字符串来表示这个连接结果),推荐使用字符串的join()方法来链接字符串;可以使用“*”进行字符串的重复连接;可以进行字符串的级联,比如:s='aaa '' bbb',s的结果为'aaa  bbb',级联的字符串在同一行,且字符串之间可以空格(连接时会忽略掉)。
  5. 星号“*”用法:在生成新字符串时,可以使用“*”来指定某个字符串的重复次数,如:s='a'*3 >>> s='aaa'。
  6. 字符串类型:Python2.7.x中字符串类型有两种:普通字符串和Unicode字符串,前者使用普通字符串定义或str()函数可以得到,后者在定义字符串前加上前缀u或U。而Python3中只有Unicode字符串。
  7. 字符串格式化:有两种格式化方式,一种是使用“%”(旧的方式),这个也比较简单且常用,但是推荐另一种新的方式,就是使用str.format()方法,使用“{}”占位符格式化字符串。使用格式化的符号时,前者直接在“%”后使用就行了,比如:'Python%0.2f' % 2.7123,后者需要在{}中的符号前加上冒号,比如:'Python{:0.2f}'.format(2.7123),后者更多用法见示例代码。

 

格式化符号表(以%为例)
%c 转为单字符
%r 转为用repr()表达的字符串
%s 转为用str()表达的字符串
%d或%i 转为有符号的十进制整数
%u 转为无符号的十进制整数
%o 转为无符号的八进制整数
%x 转为无符号的十六进制整数,十六进制字母用小写表示
%X 转为无符号的十六进制整数, 十六进制字母用大写表示
%e 转为科学计数法表达的浮点数,其中的e用小写表示
%E 转为科学计数法表达的浮点数,其中的E用大写表示
%f或%F 转为浮点数
%g 由Python根据数字的大小自动判断转换为%e或%f
%G 由Python根据数字的大小自动判断转换为%E或%F
%%

输出“%”

辅助格式化符号表
* 定义宽度或小数点的精度
- 左对齐
+ 对正数输出正值符号“+”
<sp> 数字的大小不足m.n的要求时,用空格补位
# 在八进制数前显示0,在十六进制数前显示0x或0X
0 数字的大小不足m.n的要求时,用0补位
m.n m是显示的最小总宽度,n是小数点后的位数(如果可用)

  

  使用str.format()格式化字符串示例:

>>> string = 'python{}, django{}, tornado{}'.format(2.7, 'web', 'tornado')  # 有多少个{}占位符就有多少个值与其对应,按照顺序“填”进字符串中,如果{}和值的个数不相等,则会报错
>>> string
'python2.7, djangoweb, tornadotornado'
>>> string = 'python{}, django{}, tornado{}'.format(2.7, 'web')
Traceback (most recent call last):
File "<pyshell#6>", line 1, in <module>
string = 'python{}, django{}, tornado{}'.format(2.7, 'web')
IndexError: tuple index out of range
>>> string = 'python{0}, django{2}, tornado{1}'.format(2.7, 'web', 'tornado') # 也可以指定“填”进去的值(从0开始,后面的值不一定都要用上,但是要保证指定的位置是有值的)
>>> string
'python2.7, djangotornado, tornadoweb'
>>> string = 'python{py}, django{dja}, tornado{tor}'.format(tor='tornado', dja='web', py=2.7) # 可以使用键值对的形式赋值,这里也可以以字典的形式传入“**para_dict”
>>> string
'python2.7, djangoweb, tornadotornado'
>>>
>>> 'Python{:.2f}'.format(2.7123) # 使用格式化符号
'Python2.71'
>>> 'Python%.2f' % 2.7123
'Python2.71'
>>> 

Python学习笔记:字符串的更多相关文章

  1. Python学习笔记-字符串

    Python之使用字符串 1.所有的标准序列操作(索引,分片,乘法,判断成员资格,求长度,取最小值,最大值)对字符串同样适用.但是字符串都是不可变的. 2.字符串格式化使用字符串格式化操作符即%. f ...

  2. python学习笔记——字符串

    类方法string.upper(str)需要引入string模块,实例方法str.upper()不需要引入string模块 无与伦比的列表解析功能 # coding=utf-8 # 列表解析 prin ...

  3. Python学习笔记 - 字符串和编码

    #!/usr/bin/env python3 # -*- coding: utf-8 -*- #第一行注释是为了告诉Linux/OS X系统, #这是一个Python可执行程序,Windows系统会忽 ...

  4. python 学习笔记 字符串和编码

    字符编码:因为计算机只能处理数字,如果要处理文本,就必须先把文本转换为数字才能处理,最早的计算机在设计时采用8个比特(bit)作为一个字节 (byte),所以,一个字节能表示的最大的整数是255(二进 ...

  5. Python学习笔记-字符串与注释

    OSX从Pthon 2.7升级到3.8 1,官网下载最新安装包安装 2,执行认证文件command 3,执行设置path command 4,设置默认python 在terminal里运行open   ...

  6. python学习笔记-字符串的拼接

    1.百分号方式拼接 %[(name)][flags][width].[precision]typecode (name)      可选,用于选择指定的key flags          可选,可供 ...

  7. &lbrack;Python学习笔记&rsqb; 字符串类型及操作

    字符串处理 索引:返回字符串中单个字符 <字符串>[M] 切片:返回字符串中一段字符子串 <字符串>[M:N:K] 字符串格式化使用.format()方法

  8. python学习笔记--字符串格式化

    字符串和常量 print(r'hello\py\thon') r 代表后面字符不进行转义,原样输出; 表示常量,命名时变量名字大写代表常量.NAME = 'liulixue'; 字符串表示:' ', ...

  9. 【python学习笔记】3&period;字符串使用

    [python学习笔记]3.字符串使用 字符串是一种序列,素有标准的序列操作对字符串用样适用,字符串是不可以改变 格式化操作符,%,左侧是格式化字符串,右侧是被格式的值,可以是一个值.元组.字典 数值 ...

  10. python学习笔记&lpar;二&rpar;、字符串操作

    该一系列python学习笔记都是根据<Python基础教程(第3版)>内容所记录整理的 1.字符串基本操作 所有标准序列操作(索引.切片.乘法.成员资格检查.长度.最小值和最大值)都适用于 ...

随机推荐

  1. Python之路Day18-正则及Django

    一. 正则表达式 1.定义正则表达式 /.../  用于定义正则表达式 /.../g 表示全局匹配 /.../i 表示不区分大小写 /.../m 表示多行匹配JS正则匹配时本身就是支持多行,此处多行匹 ...

  2. Geometry关系高级操作

    一些高级的操作 几何形状Geometry缓冲(buffer) 线段的融合(linemerge)是将Geometry A中相互连接的线段进行连接 多边形化操作(polygonize)对Geometry ...

  3. vbs下载文件

    Dim Url,SavePath,FilenameUrl="http://www.kumi.cn/photo/43/7e/63/437e636e413071e3.jpg"SaveP ...

  4. 根据存放位置数据的链表P打印链表L的元素

    题目:给定一个链表L和另一个链表P,它们包含以升序排列的整数.操作printLots打印L中那些由P所指定的位置上的元素.写出过程printLots(L,P).只可以使用公有的STL容器操作.该过程的 ...

  5. &lt&semi;一道题&gt&semi;求1 &plus; 2&excl; &plus; 3&excl; &plus; &period;&period;&period;&period; &plus; N&excl;

    一道小题,╮(╯▽╰)╭ #include <stdio.h> /*jie cheng * * 1 + 2! + 3! + ... + N! * * */ int factorial(in ...

  6. Unty3D动态加载图片

    试验动态加载图片,代码如下: using UnityEngine; using System.Collections; public class DynamicLoad : MonoBehaviour ...

  7. 从Html5直播到互动直播,看直播协议的选择

    目前,国内主流的直播协议有HLS.RTMP.HTTP FLV,适用于不同的直播场景. 一.HLS.RTMP与HTTP FLV 1.HLS HLS 全称是 HTTP Live Streaming, 是一 ...

  8. OpenCV Mat格式存储YUV图像

    YUV图像用的比较多,而且YUV图像的格式众多(YUV格式可以参考YUV pixel formats),如何用OpenCV的Mat类型来存储YUV图像也是经常遇到的问题. 对于YUV444图像来说,就 ...

  9. &lbrack;JavaScript&rsqb;catch&lpar;ex&rpar;语句中的ex

    try/catch语句是JavaScript语句提供的异常处理机制,一旦try语句块内部的语句抛出异常,在catch语句块即可捕获到Error类型的异常信息.我们知道JavaScript里是没有块作用 ...

  10. histoty显示时间戳

    设置Linux可以查看历史命令的执行时间     大家都知道Linux平台上,可以通过history命令查看最近所执行过的命令,但history命令默认所显示的只有编号和命令的,只知道命令是最近所执行 ...