字符编码:
ASCII : 只编码了英文和常用符
汉字 : gbk gb2313
unicode : 将全球所有文字编写到了一张表中,unicdoe一般存在于内存中,不会存在硬盘中
数据在硬盘或网络上进行存储或传输时,必须以字节码的形式存在。将编码编码成字节码:
utf-8
gbk
常用命令
- ord() : 根据某一个字符查看unicode编码值 ord('中')
- chr() : 根据unicode编码值查看某一个字符 chr(20015)
- encode() : 将unicode编码成字节码 '中国'.encode() '中国'.encode('gbk')
- decode() : 将字节解码成unicode b'\xe4\xb8\xad'.decode('utf-8')
ASCII
0 : 48
A : 65
a : 97
\b \r \n \f \t \v
列表 list
列表是一个有序的可变容器。
形式:
L = []
L = [1,3.14,'abc',[1,2]]
L = list(可迭代对象) L = list('abc123')
例: L = [1,3.14,'abc',[1,2]]
增
L.append(item) 在最后增加一个元素 L.apppend(6)
L.insert(索引,item) 在指定索引处插入一元素 L.insert(2,'666')
L.extend(列表) 将两个列表合并成一个 L.extend([1,2,3])
删
L.pop(索引) 根据索引弹出元素,默认索引值为-1, L.pop() L.pop(0)
L.remove(元素值) 根据元素的值进行删除元素,从左至右仅删除一次
L.clear() 清空整个列表
del(对象) python通用方法,可以删除整个列表或某个元素 del(L) del(L[2])
改
L[索引] = 新值 根据索引进行修改 L[3] = 'test'
查
因为列表是序列的一种,所以所有序列的方法全部适用
索引、切片、加法、乘法、in 、not in 、 len() 、max()、min()
L.count(值) 查寻某一个值在列表中出现的次数
L.index(值) 查寻某一个值在列表中对应的索引
其它方法:
L.reverse() 将列表取反,会直接修改元素本身,类似于 L = L[::-1]
L.sort() 排序,前提时列表中的元素类型一致
L1 = [10,2,100,5]
L1.sort()
L.copy() 深拷贝
深拷贝和浅拷贝
浅拷贝指向同一内存空间,所以一个对象修改了,全部修改了。
L1 = L
深拷贝是在内存中新开辟了一个空间,这个空间初始值相同,所有的操作都是独立的。
L1 = L.copy()
L2 = L[:]
元组 tuple
元组是一种有序的不可变容器,可以认为元组就是一个只读的列表
形式:
var = ()
var = (1,) var = 1,2,3 元组的小括号可以省略,如里元组中只有一个元素,那么这个元素后面必须 要有一个逗号
var = (1,3.14,'abc',[1,2],('test1',),True)
var = tuple(迭代对象) 可以将一个迭代对象变成元组 var = tuple('abc') var = tuple([1,2,3])
元组的操作方法:
例:var = (1,3.14,'abc',True)
因为元组是序列的一种,所以所有序列的方法全部适用
索引、切片、加法、乘法、in 、not in 、 len() 、max()、min()
var.count(值) 查寻某一个值在元组中出现的次数
var.index(值) 查寻某一个值在元组中对应的索引
练习
server1 = r'9000,20GB,3xx:1000,4xx:500,5xx:100'
server2 = r'32000,120GB,3xx:1500,4xx:1000,5xx:600'
求出两个服务器的总流量,及总访问次数
参考:
server1 = r'9000,20GB,3xx:1000,4xx:500,5xx:100'
server2 = r'32000,120GB,3xx:1500,4xx:1000,5xx:600'
count1 = int(server1.split(',')[0])
count2 = int(server2.split(',')[0])
print(count1 + count2)
size1 = server1.split(',')[1]
size1 = int(size1[:-2])
size2 = server2.split(',')[1]
size2 = int(size2[:-2])
print('{}GB'.format(size1 +size2))
斐波那契数列(后一位永远是前两位数的和)
fib = [1,1] 要求使用列表输出前6数
fib = [1,1,2,3,5,8,13,21,......]
参考:
#!/usr/local/python3/bin/
#conding:utf-8
#author:liu shuai jie
''' 斐波那契数列(后一位永远是前两位数的和)
fib = [1,1] 要求使用列表输出前6数
fib = [1,1,2,3,5,8,13,21,......]'''
number = int(1)
fib = [1,1]
while number <= 4:
tmp = fib[-1] + fib[-2]
fib.append(tmp)
number += 1
print(fib)
input 采集学生信息(姓名,电话,成绩),至少三个,使用列表,输出如下形式
[ [‘stu1’,18801116666,80],[‘stu2’,1040926265@qq.com,70],[‘stu1’,18801116856,78s] ]
参考:
#!/usr/local/python3/bin/
#conding:utf-8
#author:liu shuai jie
number = int(1)
stus = []
while number <= 3:
name = input('please input your name: \n').strip()
phone = input('{} please input your phone number:\n'.format(name))
age = input('{} please input your age:\n'.format(name))
tmp = [name,phone.strip(),age.strip()]
stus.extend(tmp)
number += 1
print(stus)