1利用内置函数chr(),ord(),以及random模块写一个简单随机4位验证码?
import random
tmp = '' #最后生成的验证码
for i in range(4):
n=random.randrange(0,2) #生成随机数1或0,用来判断下面是生成随机数字还是字母
if n == 0:
num = random.randrange(65,91) #为0时,生成大写字母
tmp +=chr(num)
else:
k = random.randrange(0,10) #为1时,生成数字
tmp +=str(k)
print(tmp)
2.请写出“张三”分别用utf-8和 gbk编码所占的位数?(utf-8 和gbk 的区别?)
name="张三"
print(len(bytes(name,encoding='utf-8')))
print(len(bytes(name,encoding='gbk')))
------------------------------------------
6
4
- utf-8为了改变Unicode的这种缺点,规定1个英文字符用1个字节表示,1个中文字符用3个字节表示。特点;节省空间,速度慢,用在硬盘数据传输,网络数据传输,相比硬盘和网络速度,体现不出来的。
- gbk 是中文的字符编码,用2个字节代表一个字符。
3.python语言的特点?
- 解释型语言:执行前不需要编译。
- 动态语言: 声明变量时,不需要指定数据类型。
- python编写代码快,但是运行速度较低。由于Python允许加入基于C语言编写的扩展,因此我们能够优化代码,消除瓶颈,这点通常是可以实现的。
- python应用广泛。如数据分析,AI,机器学习,web开发,爬虫,Linux运维,金融科技等等方面。
4.深拷贝和浅拷贝?
深拷贝:深拷贝,包含对象里面的自对象的拷贝,所以原始对象的改变不会造成深拷贝里任何子元素的改变(始终不变)。
浅拷贝:copy浅拷贝,没有拷贝子对象,所以原始数据改变,子对象会改变。
>>> import copy
>>> lista = [1,2,3,['a','b']]
>>> listb = copy.copy(lista)
>>> listc = copy.deepcopy(lista)
>>> lista
[1, 2, 3, ['a', 'b']]
>>> listb
[1, 2, 3, ['a', 'b']]
>>> listc
[1, 2, 3, ['a', 'b']]
>>> lista.append(5)
>>> lista
[1, 2, 3, ['a', 'b'], 5]
>>> listb
[1, 2, 3, ['a', 'b']]
>>> listc
[1, 2, 3, ['a', 'b']]
>>> lista[3].append('c')
>>> lista
[1, 2, 3, ['a', 'b', 'c'], 5]
>>> listb
[1, 2, 3, ['a', 'b', 'c']]
>>> listc
[1, 2, 3, ['a', 'b']]
5.python中的re模块的search()和match()的区别?
- search只要字符串中存在待匹配的字符串就可以匹配成功。
- match必须待匹配的字符串在句首才能匹配上。