六. Python基础(6)--语法
1 ● Python3中, Unicode转字节的方法
print(bytes("李泉", encoding = 'utf-8')) print("李泉".encode("utf-8")) |
b'\xe6\x9d\x8e\xe6\xb3\x89' |
print(bytes("李泉", encoding = 'gbk')) print("李泉".encode("gbk")) |
b'\xc0\xee\xc8\xaa' |
2 ● Python的一种优化
python中由字母/数字/下划线组成的字符串在内存中会被优化处理, 也就是相同的由字母/数字/下划线组成的字符串, 它们在内存中的地址是相同的, 例如: |
3. ● 可变/不可变元素与内存地址
由于字符串是不可变的类型, 所以必须开辟新的内存地址给另一个值不同字符串; 列表示可变元素, 改变一个列表的元素以后, 不用开辟新的区间. |
4 ● 字典格式化字符串
s = 'name : %(name)s; age : %(age)d'%{'age':20,'name':'wupeiqi'} # 这里是一个匿名字典 print(s) |
name : wupeiqi; age : 20 |
5 ● 字符串切片的补充
s = 'asd4fs5adf4r5345qwrwr' s1 = s[0::1] # 等价于s1 = s[::], 这里实际上是一个浅拷贝 |
s1 = s[1::2] # 基数的索引 s1 = s[0::2] # 偶数的索引 |
6 ● 字典的fromkeys()函数
fromkeys()用于批量生产词典, 对于可变数据类型的value, 修改一个会影响到其它所有的value, 但是对于不可变数据类型的value, 修改一个不会影响到其它value. |
dic=dict.fromkeys(['k1',True,(11,22)],[]) dic['k1'].append(6) dic['k1'].append(7) print(dic) # {'k1': [6, 7], True: [6, 7], (11, 22): [6, 7]}
dic=dict.fromkeys(['k1',True,(11,22)],'male') print(dic) # {'k1': 'male', True: 'male', (11, 22): 'male'} dic['k1']='female' print(dic) # {'k1': 'female', True: 'male', (11, 22): 'male'} |
7 ● 一种加快用户登录验证的方法
f = open('user.txt', encoding = 'utf-8') user = input("username:") pwd = input("password:") for line in f: l = line.strip().split('|') if user == l[0] and pwd == l[1]: print("登录成功!") |