字符串_月隐学python第7课

一、字符串


字符串就是由若干个不同的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.使用密码表加密
密码表加密是一种十分常用的密码加密方法,加密的原理是根据明文和密码表,加密形成密文,根据密文和密码表解密,读出明文。密码表可以是如下表所示:

⾃己设计密码表,任意输⼊一个字符串,然后显示其密⽂。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

风中月隐

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值