Python 中三引号可以将复杂的字符串进行赋值
Python 三引号允许一个字符串跨多行,字符串中可以包含换行符、制表符以及其他特殊字符
三引号的语法是一对连续的单引号或者双引号(通常都是成对的用)
hi = ’‘’hi
there‘’‘
print(hi)
三引号让程序员从引号和特殊字符串的泥潭里面解脱出来,自始至终保持一小块字符串的格式(即所见即所得)格式的。
一个典型的用例是,当你需要一块HTML或者SQL时,这时当用三引号标记,使用传统的转义字符体系将十分费神
sql = ’‘’
CREATE TABLE u
login VARCHAR(
uid INTEGER,
prid INTEGER)
‘’‘
print(sql)
Unicode 字符串
Python 中定义一个 Unicode 字符串和定义一个普通字符串一样简单:
如下, 被替换的 u0020 标识表示在给定位置插入编码值为 0x0020 的 Unicode 字符(空格符)
字符串使用方法详解
字符串基本特点
字符串的编码
字符串的创建(单行)
字符串的创建(多行)
空字符串和len()函数
转移字符 n: 换行 r: 回车 t:横向制表符 b:退格 \:输出转义符
字符串拼接 +
字符串复制 *
不换行打印
从控制台读取输入的字符串 input()
字符串替换 replace()
数字转字符串 str()
使用[]提取指定索引下的字符
字符串切片操作 类似java substring()
split()分割字符串和join()合并字符串
字符串驻留机制和字符串比较
字符串比较和同一性
成员操作符判断子字符串
字符串常用方法汇总
去除首尾信息
大小写转换
格式排版
字符串特征判断方法
字符串的格式化
填充与对齐
数字格式化
可变字符串
上述介绍配套测试代码
1.字符串基本特点
# Python的字符串是不可变的,但可以将字符串的一部分复制到新创建的字符串,达到“看起来修改”的效果。
2.字符串的编码
# Python3直接支持Unicode,可以表示世界上任何书面语言的字符。Python3的字符默认就是16位Unicode编码,ASCII码是Unicode编码的子集。
# 使用内置函数ord()可以把字符转换成对应的Unicode码;
print(ord(”A“))
print(ord(”a“))
print(ord(”明“))
# 使用内置函数chr()可以把十进制数字转换成对应的字符。
print(chr(706))
3.引号创建字符串
# 我们可以通过单引号或双引号创建字符串。 使用两种引号的好处是可以创建本身就包含引号的字符串,而不用使用转义字符。
a = ”I’m a teacher!“
print(a) # I‘m a teacher!
b = ’my_name is ”TOM“‘
print(b) # my_name is ”TOM“
4.连续三个单引号或三个双引号,可以帮助我们创建多行字符串。在长字符串中会保留原始的格式。
c = ’‘’Fake
news
!
‘’‘
print(c)
5.空字符串和len()函数
# Python允许空字符串的存在,不包含任何字符且长度为0。
print(len(’a‘))
print(len(’‘))
# len()用于计算字符串含有多少字符。
print(len(”天子守国门,君王死社稷“))
6.转义字符
# n: 换行 r: 回车 t:横向制表符 b:退格 \:输出转义符
print(”啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊n惺惺惜惺惺嘻嘻嘻嘻嘻嘻嘻r惺惺惜惺惺t想新b写写嘻嘻嘻惺惺惜惺惺想新写写许许多多的若若若热\二二“)
7.字符串拼接
# 可以使用 + 将多个字符串拼接起来
a = ’皮尔斯‘ + ’摩根‘
print(a)
# 可以将多个字面字符串直接放到一起实现拼接。
b = ’皮尔斯‘’摩根‘
print(b)
8.字符串复制
# 使用*可以实现字符串复制
c = ”MAGA!“ * 3
print(c)
9.不换行打印
# 我们可以通过参数end = “任意字符串”。实现末尾添加任何内容:
print(”唐纳德“, end=’ ‘)
print(”特朗普“, end=’##‘)
print(”特离谱“)
10.从控制台读取字符串
# 我们可以使用input()从控制台读取键盘输入的内容。
# myCash = input(”请输入付款金额“”(若付款, 概不退换): “)
# print(”您的收款金额是: “ + myCash)
11.replace() 实现字符串替换
# 整个过程中,实际上我们是创建了新的字符串对象,并指向了变量a,而不是修改了以前的字符串。
a = ”Mr Trump say: Fake news!“
a = a.replace(”Trump“, ”Trace“)
print(a)
12.str()实现数字转型字符串
a = str(5.20) # 结果是:a = ‘5.20’
b = str(3.14e2) # 结果是:b = ’314.0’
c = str(True) # 结果是:c = ‘True’
print(a)
print(b)
print(c)
”“”
13.使用[]提取字符
字符串的本质就是字符序列,我们可以通过在字符串后面添加[], 在[]里面指定偏移量,可以提取该位置的单个字符。
正向搜索:
最左侧第一个字符,偏移量是0,第二个偏移量是1,以此类推。直到len(str)-1为止。
反向搜索:
最右侧第一个字符,偏移量是-1,倒数第二个偏移量是-2,以此类推,直到-len(str)为止
“”“
a = ”Ivanka Trump“
# 字符串开头
print(a[0])
print(a[-len(a)])
# 字符串结尾
print(a[-1])
print(a[len(a) - 1])
14.字符串切片slice操作
# 切片slice操作可以让我们快速的提取子字符串。标准格式为 起始偏移量start:终止偏移量end:步长step
# 典型操作(三个量为正数的情况)如下
a = ”Donald Trump“
print(”[:] 提取整个字符串: “, a[:])
print(”[start:] 从start索引开始到结尾: “, a[2:])
print(”[:end] 从头开始知道end-1: “, a[:2])
print(”[start:end] 从start到end-1: “, a[2:4])
print(”[start:end:step] 从start提取到end-1,步长是step: “, a[1:8:2])
# 其他操作(三个量为负数)的情况:
print(”倒数三个:“, a[-3:])
print(”倒数第八个到倒数第三个(包头不包尾): “, a[-3:-1])
print(”步长为负,从右到左反向提取: “, a[::-1])
# 切片操作时,起始偏移量和终止偏移量不在[0,字符串长度-1]这个范围,也不会报错。起始偏移量小于0则会当做0,终止偏移量大于“长 度-1”会被当成-1。
print(a[7:100])
15. split()分割和join()合并
# split()可以基于指定分隔符将字符串分隔成多个子字符串(存储到列表中)。如果不指定分隔符,则默认使用空白字符
a = ”Mr Trump say: Fake news!“
print(a.split())
print(a.split(”:“))
# join()的作用和split()作用刚好相反,用于将一系列子字符串连接起来。
b = [’Mr‘, ’Trump‘, ’say:‘, ’Fake‘, ’news!‘]
print(’-‘.join(b))
16. 字符串驻留机制和字符串比较
# 字符串驻留:常量字符串只保留一份
c = ”dd#“
d = ”dd#“
print(c is d) # True
17. 字符串比较和同一性
# 可以直接使用 == != 对字符串进行比较,是否含有相同的字符
# 使用 is not is ,判断两个对象是否同一个对象。比较的是对象的地址,即 id(obj1) 是否和 id(obj2) 相等。
a = ”Donald Trump“
b = ”Ivanka Trump“
print(a == b)
print(a is not b)
18. 成员操作符判断子字符串
# in not in 关键字,判断某个字符(子字符串)是否存在于字符串中。’
print(”ab“ in ”abcdefg“)
19. 字符串常用方法汇总
a = ‘’‘明太祖朱元璋,朱标,建文帝朱允炆
明成祖朱棣,明仁宗朱高炽,明宣宗朱瞻基,明英宗朱祁镇,明代宗朱祁玉
明宪宗朱见深,明孝宗朱佑樘,明武宗朱厚照,明睿宗朱祐杬,
明世宗朱厚熜,明穆宗朱载垕,明神宗朱翊钧,
明光宗朱常洛。明熹宗朱由校,明思宗朱由检
’‘’
print(len(a))
print(a.startswith(”明太祖“))
print(a.endswith(”朱由检“))
print(”第一次出现指定字符串的位置: “, a.find(”朱“))
print(”最后一次出现指定字符串的位置“, a.rfind(”朱“)) # 测试为false, 原因待定位
print(”指定字符串出现了几次: “, a.count(”宗“))
print(”所有字符全是字母或数字: “, a.isalnum())
20. 去除首尾信息
# 我们可以通过strip()去除字符串首尾指定信息。通过lstrip()去除字符串左边指定信息,rstrip()去除字符串右边指定信息。
print(”-abc-“.strip(”-“))
print(”-abc-“.lstrip(”-“))
print(”-abc-“.rstrip(”-“))
21. 大小写转换
a = ”Mr Trump say: Fake news!“
print(”产生新的字符串,首字母大写: “, a.capitalize())
print(”产生新的字符串,每个单词都首字母大写:“, a.title())
print(”产生新的字符串,所有字符全转成大写: “, a.upper())
print(”产生新的字符串,所有字符全转成小写: “, a.lower())
print(”产生新的,所有字母大小写转换: “, a.swapcase())
22. 格式排版
# center() 、 ljust() 、 rjust() 这三个函数用于对字符串实现排版。
a = ”asd“
print(a.center(100, ”*“))
print(a.center(100))
print(a.ljust(100, ”*“))
print(a.rjust(100, ”*“))
‘’‘
23. 特征判断方法
isalnum() 是否为字母或数字
isalpha() 检测字符串是否只由字母组成(含汉字)
isdigit() 检测字符串是否只由数字组成
isspace()检测是否为空白符
isupper() 是否为大写字母
islower() 是否为小写字母
’‘’
a = ”trump拆那“
print(a.isalnum())
print(a.isalpha())
print(a.isdigit())
print(a.isspace())
print(a.isupper())
print(a.islower())
print(a.isdecimal())
# 24. 字符串的格式化
# format() 基本用法基本语法是通过 {} 和 : 来代替以前的 % 。
# format() 函数可以接受不限个数的参数,位置可以不按顺序。
a = ”今年是{0}年, 是农历十二生肖中的{1}年“
print(a.format(2022, ”鼠“))
# 我们可以通过{索引}/{参数名},直接映射参数值,实现对字符串的格式化,非常方便。
b = ”爸爸的爸爸叫什么? 爸爸的爸爸叫{grandpa}“
print(b.format(grandpa=”爷爷“))
# 25. 填充与对齐
# 填充常跟对齐一起使用
# ^ 、 《 、 》 分别是居中、左对齐、右对齐,后面带宽度
# : 号后面带填充的字符,只能是一个字符,不指定的话默认是用空格填充
print(”{:*》10}“.format(”testStr“)) # 在十个字符中将字符串居右对齐, 多出的用*补齐
print(”我是{0},{1:w^6}这里你把握不住“.format(”潘长江“, ”嘎子“))
# 26. 数字格式化
# 浮点数通过 f ,整数通过 d 进行需要的格式化。
a = ”您的支付宝到账{:.2f}元, 需还款{:10d}元“
print(a.format(14138.552673, 6))
# 27. 可变字符串
# Python中,字符串属于不可变对象,不支持原地修改,如果需要修改其中的值,只能创建新的字符串对象。
# 确实需要原地修改字符串,可以使用io.StringIO对象或array模块
import io
s = ”hello, EVA“
sio = io.StringIO(s) # 可变字符串
print(sio)
v1 = sio.getvalue()
print(”v1:“, v1)
char7 = sio.seek(7) # 指针知道索引7这个位置
sio.write(”OnePiece“)
v2 = sio.getvalue()
print(”v2:“, v2)
# 类型转换总结
# 转换为int
print(‘int()默认情况下为:’, int())
print(‘str字符型转换为int:’, int(‘010’))
print(‘float浮点型转换为int:’, int(234.23))
# #十进制数10,对应的2进制,8进制,10进制,16进制分别是:1010,12,10,0xa
print(‘int(’0xa‘, 16) = ’, int(‘0xa’, 16))
print(‘int(’10‘, 10) = ’, int(‘10’, 10))
print(‘int(’12‘, 8) = ’, int(‘12’, 8))
print(‘int(’1010‘, 2) = ’, int(‘1010’, 2))
# 转换为float
print(‘float()默认情况下为:’, float())
print(‘str字符型转换为float:’,
float(‘123.01’))
print(‘int浮点型转换为float:’, float(32))
# 转换为complex
print(‘创建一个复数(实部+虚部):’, complex(12, 43))
print(‘创建一个复数(实部+虚部):’, complex(12))
# 转换为str字符串
print(‘str()默认情况下为:’, str())
print(‘float型转换为str:’, str(232.33))
print(‘int转换为str:’, str(32))
lists = [‘a’, ‘b’, ‘e’, ‘c’, ‘d’, ‘a’]
print(‘列表list转换为str:’, ‘’.join(lists))
# 转换为list
strs = ‘hongten’
print(‘序列strs转换为list:’, list(strs))
# 转换为tuple(元组)
print(‘列表list转换为tuple:’, tuple(lists))
# 字符和整数之间的转换
print(‘整数转换为字符chr:’, chr(67))
print(‘字符chr转换为整数:’, ord(‘C’))
print(‘整数转16进制数:’, hex(12))
print(‘整数转8进制数:’, oct(12))
全部0条评论
快来发表一下你的评论吧 !