一、字符串
字符串就是由若干个不同的unicode字符组成的不可变序列
1 .字符串创建
2.获取字符
因为是不可变序列,所以不能修改单个字符; 凡是修改字符串的操作都产生新串
3.字符串转义
- 常⻅转义字符
- 原生字符
如果在字符串中不把\当做转移字符,可以使⽤
4.序列通⽤操作
4 字符串常用函数
4.1 字符串查找和替换
str1 = 'a fox jumped over the fence'
4.2 字符串分隔和组合
4.3 字符串判断
4. 4字符串转换
4.5 其它方法
5. 字符串格式化
- 用%格式化
- 用format格式化
⼆、字节
在python3中最重要的特性是对文本和⼆进制数据做了更加清晰的区分,⽂本总是Unicode,由字符类型表示,⽽二进制数据则由byte类型表示, python3不会以任意隐式⽅式混用字节型和字符型,也因此在python3中不能拼接字符串和字节包(python2中可以,会自动进行转换),也不能在字节包中搜索字符串,也不能将字符串传⼊参数为字节包的函数。Bytes 对象是由单个字节作为基本元素(8位,取值范围 0-255)组成的序列,为不可变对象。 bytes对象只负责以二进制字节序列的形式记录所需记录的对象,⾄于该对象到底表示什么(⽐如到底是什么字符)则由相应的编码格式解码所决定。Python3中, bytes通常用于⽹络数据传输、⼆进制图片和⽂件的保存等等。可以通过调用bytes()⽣成bytes实例,其值形式为 b'xxxxx',其中 'xxxxx' 为⼀⾄多个转义的十六进制字符串(单个 x 的形式为: \x12,其中\x为小写的十六进制转义字符, 12为二位十六进制数)组成的序列,每个十六进制数代表一个字节(八位二进制数,取值范围0-255),对于同一个字符串如果采用不同的编码方式生成bytes对象,就会形成不不同的值
1 创建字节
2 字符串和字节的转换
作业
一、填空
1.已知s2 = ‘123’,则: s2 * 3 = _123123123_; s2 + str(456) = _123456__________;
2.已知s1 = ‘123456789’。则: s1[:3] = _123_; s1[-5:] = _56789_; s1[::2]=_13579_; s1[::-3] = _963_;
int(s1[3:5]) + int(s1[-5:3:-1]) = _50_______。
3.已知s1 = “this is a test of Python”;统计字符串中s出现的次数: _print(s1.count("s"))__;
取出⼦串”test”的表达式: _print(s1[10:15])__; 获取s1的反序字符串:
__print(s1[::-1])____; 将⼦串”test”替换为”exam”: __print(s1.replace("test", "exam"))___________
4.已知字符串 a = “aAsmr3idd4bgs7Dlsf9eAF”,要求如下:将a字符串的⼤大改为⼩写,⼩写改为⼤写:_print(a.swapcase())____;转为⼩写字符串:_print(a.lower())____________。
5.已知x="abc",y="def",z=["d","e","f"], 则x.join(y)= __dabceabcf______________;
x.join(z) = __dabceabcf________________________。
6.把s1=”你好”,编码为字节流字符串: ___print(s1.encode('utf-8'))______________
7.已知字符串: s2 = ‘ bj1902 ’,去除s2左边的空格: _print(s2.lstrip())__________;去除s2右
边的空格: _print(s2.rstrip())___________;去除s2两边的空格: __print(s2.strip())____________;
8.定义变量s=‘abcde', 写出下列代码运行的结果
s.upper() ___ABCDE_____________
s[2::-1] ____cba____________
s.isdigit() __False______________
s * 2 __abcdeabcde______________
'*'.join(list(s)[:3]) ____a*b*c____________
二、编程
初级
1. 输⼊一个字符串,自⼰统计该字符串有多少个字符,不允许⽤len函数
2.任给一个字符串,请验证是否是⼿机号,手机号为11位数字,开头三位必须是130,151,186
- 使用列表存储130,151,186;使用in判断
- 使⽤切⽚左取3位
3.将字符串’1234567890’转换成‘ 1,234,567,890’输出,每3位⽤用逗号隔开。
4.输⼊两个字符串,从第一字符串中删除第⼆个字符串中所有的字符
5.任意输⼊一段文字,统计有多少个单词(用空格隔开)、多少个数字、多少字⺟、多少空格。
6. 已知字符串 a = "aAsmr3idd4bgs7Dlsf9eAF",要求如下:
a.将a字符串的数字取出,并输出成一个新的字符串
b.请统计a字符串出现的每个字母的出现次数(忽略大小写, a与A是同一个字
母),并输出成一个字典。 例例 {'a':4,'b':2}
c.输出a字符串出现频率最高的字母
d.请判断 'boy'里出现的每一个字母,是否都出现在a字符串里。如果出现,则输出True,否则,则输 出False
【中级】
1.input函数每次只能输入一个字符串,请实现如下输入格式: 1,20,30 。然后将获得的字符串分割,得到:三个整数: 1 20 30,然后赋值给三个变量。
2.求字符串最后一个单词的长度,单词之间用空格分割。
3.输⼊一个字符串,压缩字符串如下aabbbccccd变成a2b3c4d1
4.给定一个句子(只包含字母和空格),将句子中的单词位置反转,单词用空格分割, 单词之间只有一个空格,前后没有空格。例例如:
“hello xiao mi”-> “mi xiao hello”
5.将s = “ajldjlajfdljfddd",去重并从小到大排序输出"adfjl"
6.使用密码表加密
密码表加密是一种十分常用的密码加密方法,加密的原理是根据明文和密码表,加密形成密文,根据密文和密码表解密,读出明文。密码表可以是如下表所示:
⾃己设计密码表,任意输⼊一个字符串,然后显示其密⽂。
来源:CSDN
作者:风中月隐
链接:https://blog.csdn.net/u014586651/article/details/104055547