day8----总结 字符串

day8-字符串


  • 1.什么是字符串(str)

1)字符串
字符串是容器型数据类型(序列),单引号和双引号是标志。引号中所有内容都是字符串的元素
2)字符串元素
字符串中元素又叫字符(在python中长度是1的字符串就可以看成字符)
a.转义字符:特殊符号前加\,表示特殊意义和功能
\'  -  '
\"  - "
\n  -  换行
\\  -  \
\t -   相当于缩进

b.编码字符:\u4位16进制数   将4位16进制数对应的编码打印
1)字符编码
2)ASCII和Unicode编码表
中文对应的Unicode中的范围:0x4e00  -  0x9fa5
3)字符编码相关方法:
chr(编码值)   -   将编码值转换成字符
ord(字符)   -   获取字符对应的编码值
str1 = 'abc\'123'
print(str1)    # abc'123
str2 = 'abc\n123'
print(str2)     # abc
                # 123
str2 = 'abc\\n123'
print(str2)    # abc\n123

print('\u5e00')    # 币

# 2.字符编码
print(chr(97))   # a
print(chr(0x1800))   # ᠀    蒙语
for x in range(0x1800, 0x18af):
    print(chr(x), end=' ')
print()

for x in range(0x1100, 0x11ff):
    print(chr(x), end=' ')
print()

# 打印中文
# num = 0
# for x in range(0x4e00, 0x9fa5):
#     num += 1
#     print(chr(x), end=' ')
#     if num % 50 == 0:
#         print()
# print()

# ord
print(ord('蒋'), ord('南'), ord('轲'))    # 33931 21335 36722
print(hex(ord('蒋')), hex(ord('南')), hex(ord('轲')))   # 0x848b 0x5357 0x8f72

print(ord('a'))  # 97

字符串相关操作

  • 1.获取字符 - 和列表获取元素一样
str1 = 'hello world!'
# 1)获取单个字符
print(str1[0])   # 'h'
print(str1[-2])   # 'd'

# 2)字符串切片
print(str1[2:6:2])   # 'lo'
print(str1[-2:-6:-1])   # 'dlro'
print(str1[2:6:-2])    # ''   空串
print(str1[3::-1])  # 'lleh'
print(str1[3:0:-1])   # lle
# 3)遍历
for char in 'abc':
    print(char)
  • 2.字符串操作:
    1)+ 和 *
    字符串1 + 字符串2 - 将字符串1和字符串2拼接在一起,产生一个新的字符串
    字符串N、N字符串 - - 字符串重复出现N次产生一个新的字符串
str1 = 'abc'
str2 = '123'
print(str1 + str2)   # abc123
print(3 * str2)   # 123123123
  1. == !=:
print('abc' == 'abc')   # True
print('abc' == 'acb')   # False
  1. , <, <=, >=
    只能两个字符串比较大小 -- 注意:从前往后按顺序比较对应字母编码的大小

# '0' <= char <= '9'  判断是否是数字
# '\u4e00' <= char <= '\u9fa5'   判断是否是中文
# 'a' <= char <= 'z'  判断是否是小写字母
# 'A' <= char <= 'Z'  判断是否是大写字母
  1. in /not in
    字符串1 in字符串2 - 判断字符串2中是否包含字符串1

5)len, max, min, sorted, str
字符串转换:所有数据都可以转换成字符串,转换时候是将数据放在引号中

    注意:转义字符和编码字符的长度都是1

6)r语法:
在字符串的最前面加r/R,可以阻止字符串中所有的转义字符转义

str1 = '\tabc\nare\'you!\u4e00'
print(str1)   # abc
            # are'you!一
str1 = r'\tabc\nare\'you!\u4e00'
print(str1)   # \tabc\nare\'you!\u4e00
str1 = '\tabc\\nare\'you!\u4e00'
print(str1)   # abc\nare'you!一

7)格式化字符串

在字符串中用格式占位符表示字符串中不确定的部分
a.语法:包含格式占位符的字符 % (数据1, 数据2 ,...) -()中数据的个数和类型要和前面的格式占位符一一对应
b.格式占位符:
%s   -   字符串
%d   -   整数
%.Nf  -  浮点数,N控制小数点后小数的位数 
%c    -  字符(可以将数字转换成字符)
注意:1)不清楚数据类型时候,都可以用 %s 来作格式占位符
     2)所有的数据都可以使用%s来接收
str4 = 'a:%s, b:%d, c:%.2f, d:%f' % ('how', 100, 1.23456, 1.232)
print(str4)   # a:how, b:100, c:1.23, d:1.232000

字符串相关方法

1.对齐方式:
  • 字符串.center(宽度, 填充字符='') - 居中
str1 = 'abc'
print(str1.center(9, '+'))     # +++abc+++    居中
  • 字符串.ljust(宽度, 填充字符='') - 左对齐
print(str1.ljust(9, '+'))       # abc++++++   左对齐
  • 字符串.rjust(宽度, 填充字符= '') - 右对齐
print(str1.rjust(9, '+'))      # ++++++abc
  • 字符串.zfill(宽度) == 字符串.rjust(宽度, 0)
print(str1.zfill(9))   # 000000abc
2.统计子串个数
  • 字符串1.count(字符串2) - 统计字符串1中字符串2的个数
str1 = 'abcdbcgfa'
print(str1.count('a'))    # 2
3.获取子串下标
  • 字符串.find(子串) - 查找到子串第一次出现的位置,不存在时候,返回-1
str1 = 'sdfghjkfdhsgasd'
print(str1.find('d'))     # 1
  • 字符串.index(子串) - 如果不存在,会报错
str1 = 'sdfhsgasd'
print(str1.index('g'))   # 5
4.join方法
  • 字符串.join(序列) - 将序列中的元素用字符串连接产生一个新的字符串
    要求:序列中的元素必须是字符串,如果是字典,key是字符串
str2 = '+'.join('123')
print(str2)   # 1+2+3
5.替换
  • 字符串1.replace(字符串2,字符串3) - 将字符串1中的字符串2全部替换成字符串3
str1 = 'how are you! Im fine, thank you! and you?'
new_str1 = str1.replace('you', 'YOU') 
print(new_str1)    # how are YOU! Im fine, thank YOU! and YOU?
  • 字符串1.replace(字符串2, 字符串3,N) -- 将字符串1中的前N个字符串2替换成字符串3
new_str1 = str1.replace('you', 'me', 2) 
print(new_str1)   # how are me! Im fine, thank me! and you?
6.字符串切割
  • 字符串1.split(字符串2) - 将字符串2作为切割点切割字符串1, 返回一个列表
str1 = 'how are you! Im fine, thank you! and you?'
str_list = str1.split(' ')
print(str_list)   # ['how', 'are', 'you!', 'Im', 'fine,', 'thank', 'you!', 'and', 'you?']
str_list = str1.split('!')
print(str_list)  # ['how are you', ' Im fine, thank you', ' and you?']
7.将第一个字符变成大写
  • 字符串.capitalize()
str = 'this is string' 
print (str.capitalize())      # This is string
8.endswith()方法
  • 字符串1.endswith(字符串2) - 判断字符串1是否以字符串2结尾
str1 = 'hello world!!'
print(str1.endswith('!!'))   # True
9.lower() - 将字符串中所有大写字符转小写
  • 字符串.lower()
str1 = 'JNKGJDsjdjjmc'
print(str1.lower())   # jnkgjdsjdjjmc
10.upper() - 将字符串中小写字母全部转成大写
  • 字符串.upper()
str1 = 'ghjkcvb'
print(str1.upper())  # GHJKCVB
11.max() - 获取字符串中最大的字母
  • max(字符串)
str1 = 'ghjkslieukd'
print(max(str1))   # u
12.rfind() - 类似find函数,不过是重右边查找
  • 字符串1.rfind(字符串2,开始下标,结束下标)
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 1.什么是字符串(str) 1)字符串字符串是容器型数据类型(序列);以单引号或者双引号作为容器的标志(引号中所有...
    举颗凤梨阅读 715评论 0 1
  • 1 字符编码 python中的编码采用的是Unicode编码。什么是编码?就是数字和字符的一一对应的,其中字符对应...
    barriers阅读 509评论 0 1
  • 一.认识字符串 什么是字符串(str)字符串是python中一种常用的有序但是不可变的容器类的数据类型,可以同时存...
    2ez4ddf阅读 673评论 0 0
  • 1.什么是字符串 a.使用单引号或者双引号括起来的字符集就是字符串。 b.引号中单独的符号、数字、字母等叫字符 c...
    PIECE_MAN阅读 1,981评论 0 6
  • 字符串 1.什么是字符串 序列:有序,不可变的。用单引号或者双引号括起来的任意字符(集)。 2.字符串中的字符 a...
    落幕丶丶阅读 949评论 0 0

友情链接更多精彩内容