字符串字面量
在字符串中使用单引号,
字符串用单引号引起来的是无法使用单引号的,
那么可以使用双引号把字符串引起来,就可以在字符串中使用单引号。
同理,使用想在字符串中使用双引号,那就用单引号把字符串引起来。
str_0 = "'hello' world"
print(str_0) # 'hello' world
str_0 = '"hello" world'
print(str_0) # "hello" world
转义字符
一个倒斜杆,后紧跟想要添加到字符串中的字符(尽管它包含了两个字符,但大家公认它是一个转义字符。
转义字符 | 输出为 |
\’ | 单引号 |
\" | 双引号 |
\t | 制表符 |
\n | 换行符 |
\\ | 倒斜杆 |
原始字符串
在字符串开始处的引号前加上r,使他成为原始字符串,原始字符串完全忽略转义字符,输出字符串中的所有倒斜杆。
print('hello\' \\ word\"') # 单 杠 双
print(r'hello\' \\ word\"') # 原始字符串
print('hello \n word') # 换行
# 制表符 产生一段空格供输出对齐
print(1, '\t', 0) # 1 0
print(12, '\t', 0) # 12 0
三重引号字符串多行字符串
(多行字符串下是无法注释,缩进功能无效,包括转义,等都是字符串的以部分,也相当于把一个注释赋值给一个变量了)
str_1 = """
1
2
"""
print(str_1)
str_1 = '''
1
2
'''
print(str_1)
字符串索引和切片
字符串中每个字符都是独立的,都拥有索引,包括空字符。
str_1 = 'hello word'
# for i in str_1:
# print(i)
print(str_1[0:]) # 切到尾
print(str_1[:5]) # 从头开始切
print(str_1[0::2]) # 步长
print(str_1[-1:-11:-1]) #输出
字符串的in 和not in操作符(返回值为布尔值)
str_1 = 'hello word'
print('hello' in str_1) # True
print('e' in str_1) # True
print('e' not in str_1) # False
将字符放入其他字符串
1.加法连接
2.格式化输出
3.f字符串,用花括号代替%s
str_1 = '灰太狼'
str_2 = '23'
print(str_1 + '今年' + str_2 + '岁') # 加法连接
print('%s今年%s岁'%(str_1, str_2)) # %s 占位插入
print(f'{str_1}今年{str_2}岁') # f字符串
字符串的方法
(没有改变值,而是返回一个新值,如果要改变在将它获取的结果赋值给他自己来改变值)
.upper() 转换为大写
.lower() 转换为小写
.isupper() 检查是否全大写
.islower() 检查是否全小写
str_0 = 'Who are yoU'
print(str_0.upper()) # WHO ARE YOU
print(str_0.isupper()) # False
print(str_0.lower()) # who are you
print(str_0.islower()) # False
# 转换大小写的案例
code = 'Gf6P'
print('输入验证码', code)
str_1 = input(":") # 输入
if str_1.lower() == code.lower(): # 全部转换为小写做比较
print('验证成功!')
else:
print('请重新验证!')
isX字符串的方法
is开头的的变量,函数,方法,返回的值一帮是布尔值
.isalpha :只包含字母,非空字符,返回True
.isalnum: 只包含字母和数字,非空,返回True
.isdecimal:只包含数字和字符,非空,返回True
.isspace:只包含空格,制表符,换行符,非空,返回True
.istitle:大写字母开头,其他字母小写的单词,数字,空格。
print('Aa'.isalpha()) # 只能是纯字母 & 非空
print('A1a'.isalnum()) # 只能是纯字母和数字 & 非空
print('1'.isdecimal()) # 只能是纯整数字符 & 非空
print(' \t \n'.isspace()) # 只能是\t \n 空字符 & 非空
print('Aa123'.istitle()) # 只能是大写字符开头
print('AA123'[0].istitle()) # 字符串的索引0是否是大写
# 输入账户必须是纯字符母
# 输入密码必须是纯数字
n = 'root'
p = '123456'
while True:
name = input('账户:')
if name.isalpha() != 1:
print('输入不是纯字母')
if name == n:
print('ok')
break
else:
print('账户不正确')
continue
while True:
pwd = input('密码:')
if pwd.isdecimal() != 1:
print('输入不是纯数字')
if pwd == p:
print('登入成功')
break
else:
print('密码不正确')
continue
print('下次一定!')
检查以什么开头,以什么结尾
.startswith() 检查以什么开头(某字符或字母组合或单词)
.endswith() 检查以什么结尾(某字符或字母组合或单词)
str_1 = 'hello word'
print(str_1.startswith('h')) # True
print(str_1.startswith('he')) # True
print(str_1.startswith('hello')) # True
print(str_1.endswith('d')) # True
print(str_1.endswith('rd')) # True
print(str_1.endswith('word')) # True
切分和拼接接
.split() 把字符串切分为列表
.join()
str_1 = 'a b c d e f g'
x = str_1.split()
print(x) # 切成列表 ['a', 'b', 'c', 'd', 'e', 'f', 'g']
print(''.join(x)) # 拼接 abcdefg
str_1 = 'a_b_c_d_e_f_g'
print(str_1)
a = str_1.split('_') # 以_切分为类型类型存放
b = '_'.join(a) # 以_拼接会字符串
print(a)
print(b)
分隔字符串
partition() 以_分隔前后前后。返回三个值。
1.之前的文本 分隔符 之后的文本,如果传入的字符在字符串中有多个,以第一个为准。
2.如果传入的字符,不存在于字符串中,字符串整体做一个值输入,剩余两个值空位。
3.将它的返回值赋值给三个变量
str_1 = 'a b c d e d g'
print(str_1.partition('d')) # ('a b c ', 'd', ' e d g')
print(str_1.partition('1')) # ('a b c d e d g', '', '')
a, b, c = str_1.partition('d')
print(a, b, c) # a b c d e d g
文本对齐
.sjust() 传入一个整数x,插入x个空字符对齐文本,右对齐,文本内存填充空格。
.ljust() 传入一个整数x,插入x个空字符对齐文本,左对齐,文本内存填充空格。
.center() 传入一个整数x,插入x个空字符对齐文本,居中,文本内存填充空格。
第一个参数是产生的空格。第二个参数是代替空格的的符号。
print(1, '123'.rjust(9)) # 右对齐 1 123
print('123'.ljust(9),1) # 左对齐 123 1
print('123'.center(10, '-')) # 居中 ---123----
# x 为左对齐的空格
# y 为右对齐的空格
# z 字典为参数传入
def a(x, y, z):
print('zoo'.center(x + y - 1, '-') + '$')
for k, v in z.items(): # 迭代取值
print(k.ljust(x, '-'), end='') # 抑制换行
print(str(v).rjust(y)) # 只对字符进行操作,整型使用str()
zoo = {'Tiger': 80, 'Monkey': 30, 'Elephant': 50}
a(20, 5, zoo)
删除字符
.strip() 删前后指定字符 。
.lstrip() 删除首部字符。
.rstrip() 删除尾部字符。
(参数会按每个字母来进行筛选并删除)
print('--123--') # --123--
print('--123--'.strip('-')) # 123
print('--123--'.lstrip('-')) # 123--
print('--123--'.rstrip('-')) # --123
print('--123--'.lstrip('-1')) # 23--
print('--123--'.rstrip('-3')) # --12
字符串的数字(Unicode编码)
计算机内部存存储的是二进制,Unicode编码用特点的一组二进制表示一个字母。
每个文本字符都应着一个相对应的数字值,称为Unicode代码点
.ord() 获取一个单字符的代码点(整数)
.chr() 获取一个整数代码点的单字符(字符)
for i in range(97, 123):
print(chr(i), end='\t')
print()
for i in range(ord('a'), ord('z')+1): # 把字符转为整数迭代,z转整数加1
print(i, end='\t')