[Python3] 004 字符串的基本使用
1. 字符串简介
1.1 作用
- 表示一段文字信息
1.2 注意点
- 1 个字符,表示长度为 1 的字符串
- 许多地方,1 个英文字符占 1 个字节,1 个中文字符占 2 个字节,它们是不同的
- Python3 中,就长度而言,中英文一视同仁,1 个字符对应 1 个长度
2. 使用方式
2.1 用引号括起来
- 单引号、双引号、三引号均可
少废话,上例子
'你好,Python!'
"你好,Python!"
"""
小时候,快乐是件很简单的事。
长大后,简单是件很快乐的事。
—— 云村的某位网友
"""
2.2 单、双引号可以“轮换交替”
- 单引号中可以嵌入双引号
- 双引号中可以嵌入单引号
少废话,上例子
"I'm YorkFish."
'His nickname is "YorkFish".'
3. 转义字符
3.1 简介
- 顾名思义,转变了意义的字符
- 形如 \n \" \x7d
- 以反斜杠
\
打头,表示接下来进入“转义时间” - 反斜杠后面接“字母”、“符号”或“数字”
- 组合后就有了新的意义
- 以反斜杠
3.2 常用的转义字符及含义(第一梯队)
符号 | 释义 | 使用方法 |
---|---|---|
\' | 单引号 | 在一对单引号中插入单引号,见例 3.1 |
\" | 双引号 | 在一对双引号中插入双引号,见例 3.2 |
\n | 换行符 | Windows 下表示“回车” |
\r | 回车符 | Linux 下与 \n 组队表示“回车”,如 \n\r |
\t | 横向制表符 | 相当于 Tab 键 |
\ + 八进制数 | 八进制数代表的字符 | 见例 3.3 |
\x | 十六进制数代表的字符 | 见例 3.4 |
\\ | 反斜杠 | 见例 3.5 |
# 例 3.1
>>> print('I\'m YorkFish.')
I'm YorkFish.
>>>
# 例 3.2
>>> print("I am learning \"Python3\".")
I am learning "Python3".
>>>
# 例 3.3
>>> print("Hello\12World") # \12 表示换行;\12=10 => Ascii 表的 10 意为“换行”
Hello
World
>>>
# 例 3.4
>>> print('\x40') # \x40 表示 @;\x40=64 => Ascii 表的 64 意为 @
@
>>>
# 例 3.5
>>> print('\')
File "<stdin>", line 1
print('\')
^
SyntaxError: EOL while scanning string literal
>>>
>>> print('\\')
\
>>>
- 挖个坑,已经填平,详见 [Python3 填坑] 004 关于八进制
- 内容:\o 无效
- 编号:Py004-1
3.3 常用的转义字符及含义(第二梯队)
符号 | 释义 | 使用方法 |
---|---|---|
\a | 发出系统响铃声 | 挖个坑,已经填平,详见 [Python3 填坑] 005 如何“响铃” 内容:如何响铃 编号:Py004-2 |
\b | 退格符 | 往前删一个字,见例 3.6 |
\v | 纵向制表符 | 挖个坑,日后填平 内容:如何使用“纵向制表符” 编号:Py004-3 |
\f | 换页符 | 挖个坑,日后填平 内容:如何使用“换页符” 编号:Py004-4 |
\0 | 0 为数字 表示一个空字符 |
见例 3.7 |
# 例3.6
>>> print("123\b45")
1245
>>>
>>> print("12三\b45") # 每个字符,长度均为 1
1245
>>>
# 例 3.7
>>> s = "012"
>>> print(s[3])
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
IndexError: string index out of range
>>>
- 挖个坑,已经填平,详见 [Python3 填坑] 006 “杠零”,空字符的使用]
- 内容:Python3 是否类似 C,以
\0
结尾 - 编号:Py004-5
- 内容:Python3 是否类似 C,以
4. 格式化
4.1 简介
不是 U 盘、硬盘的那种
是为了让字符串能按照一定格式排版好输出
两种方法
- 利用 %
- 利用 format()
4.2 方法一:利用 %
4.2.1 关于 %s
# 例 4.1
>>> s1 = "Python3"
>>> s2 = "I am learning %s1."
>>> print(s2)
I am learning %s1.
>>>
# 例 4.2
>>> print("I am learning %s." % "Python3")
I am learning Python3.
>>>
# 例 4.3
>>> s1 = "I am learning %s."
>>> print(s1 % "Python3")
I am learning Python3.
>>>
4.2.2 关于 %d
# 例 4.4
>>> print("I am learning Python%d." % 3)
I am learning Python3.
>>>
# 例 4.5
>>> s1 = "I am %s. And I'm learning Python%d."
>>> print(s1 % ("YorkFish", 3))
I am YorkFish. And I'm learning Python3.
>>>
- 挖坑,已经填平,详见 [Python3 填坑] 001 格式化符号 & 格式化操作符的辅助指令
- 内容:Python3 的其它格式化符号;编号:Py004-6
- 内容:Python3 的格式化操作符的辅助指令,编号:Py004-7
4.3 方法二:利用 format()
# 例 4.6
>>> s1 = "I am {}.".format("YorkFish")
>>> print(s1)
I am YorkFish.
>>>
>>> s2 = "My nickname is {0}. I am learning Python{1}. Today, I dug more than {0} holes.".format(YorkFish, 3)
>>> print(s2)
My nickname is YorkFish. I am learning Python3. Today, I dug more than 3 holes.
- 挖个坑,日后填平
- 内容:format() 的更多用法
- 编号:Py004-8
[Python3] 004 字符串的基本使用的更多相关文章
- Python3 格式化字符串
Python3 格式化字符串 在Python 3.6之前,有两种将Python表达式嵌入到字符串文本中进行格式化的主要方法:%-formatting和str.format() 一.%-formatti ...
- 一篇文章助你理解Python3中字符串编码问题
前几天给大家介绍了unicode编码和utf-8编码的理论知识,以及Python2中字符串编码问题,没来得及上车的小伙伴们可以戳这篇文章:浅谈unicode编码和utf-8编码的关系和一篇文章助你理解 ...
- python3的字符串和字节
Python3中内置类型bytes和str用法及byte和string之间各种编码转换 Python 3最重要的新特性大概要算是对文本和二进制数据作了更为清晰的区分.文本总是Unicode(16进制) ...
- Python3.x - 字符串
Python3 字符串 字符串是 Python 中最常用的数据类型.我们可以使用引号( ' 或 " )来创建字符串. var1 = 'hello world' var2 = "he ...
- Python2与python3中字符串的区别
Python2 在python中包含两种字符串类型:str和unicode,str并不是完全意义上的字符串,其实是由unicode经过编码(encode)后的字节组成的字节字符串,而unicode则是 ...
- python3 拼接字符串的7种方法
1.直接通过(+)操作符拼接 1 2 >>> 'Hello' + ' ' + 'World' + '!' 'Hello World!' 使用这种方式进行字符串连接的操作效率低下,因为 ...
- Python3中字符串的编码与解码以及编码之间转换(decode、encode)
一.编码 二.编码与解码 Python3中对py文件的默认编码是urf-8.但是字符串的编码是Unicode. 由于Unicode采用32位4个字节来表示一个字符,存储和传输太浪费资源,所以传输和存储 ...
- Python3 数据类型-字符串
字符串是 Python 中最常用的数据类型,是一个个字符组成的有序的序列,是字符的集合. 一 字符串定义 创建字符串很简单,可以使用引号('或"或""")来创建 ...
- python3 之 字符串编码小结(Unicode、utf-8、gbk、gb2312等)
python3 解释器默认编码为Unicode,由str类型进行表示.二进制数据使用byte类型表示. 字符串通过编码转换成字节串,字节码通过解码成为字符串. encode:str-->byte ...
随机推荐
- Xshell6-项目使用
前端开发中,涉及服务器的地方一般都交给后端处理,这样有时候很不方便,所以,自己来上传服务器是非常爽的啦 工具: Xshell6 传送门: http://www.netsarang.com/produc ...
- react axios 跨域问题
周末又是补充知识点的时候了,用了react axios 跨越问题,貌似是要比vue 稍微麻烦一点 它请求http好像是没有问题的,但是https还是有跨域问题的, 我用的刚好是create-react ...
- CentOS8 中文输入法
CentOS8发布了,安装了下试试,结果发现中文输入法调不出来. 系统安装完成后,在系统[设置]的[Region&Language]里的[输入源]里可以添加汉语输入源,但是不能打中文字. 下面 ...
- app自动化的执行
appium --address 127.0.0.1 --port 10000 --bootstrap-port 10100 --webdriveragent-port 10110 在指定的目录下执行 ...
- keras学习笔记-bili莫烦
一.keras的backend设置 有两种方式: 1.修改JSON配置文件 修改~/.keras/keras.json文件内容为: { "iamge_dim_ordering":& ...
- Redis实战(十四)Redis实现Session共享
序言 登录的处理流程: 1.登录页面提交用户名密码. 2.登录成功后生成token.Token相当于原来的jsessionid,字符串,可以使用uuid. 3.把用户信息保存到redis.Key就是t ...
- Html5大文件断点续传实现方法
之前仿造uploadify写了一个HTML5版的文件上传插件,没看过的朋友可以点此先看一下~得到了不少朋友的好评,我自己也用在了项目中,不论是用户头像上传,还是各种媒体文件的上传,以及各种个性的业务需 ...
- const与#define的区别
1.const (1)为什么需要const成员函数? C中常用:“ #define 变量名 变量值”定义一个值替代,然而却有个致命缺点:缺乏类型检测机制,这样预处理在C++中成为可能引发错误的隐患,于 ...
- 配置文件:mainfest.xml
AndroidManifest.xml 是每个android程序中必须的文件. 它位于整个项目的根目录,描述了package中暴露的组件(activities,services, 等等),他们各自 ...
- java中的浅拷贝和深拷贝
复制 将一个对象的引用复制给另一个对象,一共有三种方式.第一种方式是直接赋值,第二种方式是浅复制,第三种方式是深复制. 1.直接赋值 在Java中,A a1 = a2,这实际上复制的是引用,也就是说 ...