六. 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("登录成功!")

 posted on 2018-01-31 17:40  Arroz  阅读(167)  评论(0编辑  收藏  举报