1.字符串编码集
GBK 汉字占两个字节,简体中文
UTF-8 统一编码,汉字占三个字节
# 使用内置函数 chr 和 ord 查看数字和字符对应关系
print(ord('a')) # 97
print(chr(97)) # a
2.格式化打印字符串
# 可以使用 % 占位符来格式化字符串
name = 'zhangsan'
age = 18
# 大家好,我的名字是 zhangsan , 18 岁了
print('大家好,我的名字是',name,',',age,'岁了')
# 我的名字是zhangsan,今年18岁了
print('我的名字是%s,今年%d岁了'%(name,age))
# %s --> 字符
# %d --> 整数
# %nd --> 显示 n 位,不够用空格补全
# %-nd --> 显示 n 位,不够在右边用空格补全
# %0nd --> 显示 n 位,不够用 0 补全
# %f --> 浮点数
# %.nf --> 保留小数点后n位
# %x --> 用十六进制输出
# %% --> 输出一个 %
# 字符串的format方法
name = 'tom'
age = 20
print('我是{},今年{}岁了'.format(name,age))
# 我是tom,今年20岁了
3.列表
-
列表添加元素
# 1.列表添加元素 append insert extend name1 = ['tom','jack','aov'] name1.append('jerry') print(name1) # ['tom', 'jack', 'aov', 'jerry'] name1.insert(1,'lisi') print(name1) # ['tom', 'lisi', 'jack', 'aov', 'jerry'] name2 = ['aaa','bbb','ccc'] name1.extend(name2) print(name1) # ['tom', 'lisi', 'jack', 'aov', 'jerry', 'aaa', 'bbb', 'ccc']
-
删除元素
# 2.列表删除元素 clear remove pop # pop 返回的是被删除的数据,可以按照索引指定 master = ['aaa','bbb','ccc','ddd','eee'] master.pop() print(master) # ['aaa', 'bbb', 'ccc', 'ddd'] master.remove('bbb') print(master) # ['aaa', 'ccc', 'ddd'] # del 也可以删除 del master[2] print(master) # ['aaa', 'ccc'] # 清空列表 master.clear() print(master) # []
-
查询元素
# 3.列表查询元素 tanks = ['亚瑟','廉颇','项羽','吕布','狂铁'] print(tanks.index('项羽')) # 2 print(tanks.count('廉颇')) # 1
-
修改元素
# 4,修改元素 # 使用下标修改 tanks = ['亚瑟','廉颇','项羽','吕布','狂铁'] tanks[4] = '程咬金' print(tanks) # ['亚瑟', '廉颇', '项羽', '吕布', '程咬金']
-
列表的循环遍历
# # 列表的循环遍历 while for...in killers = ['李白','阿珂','兰陵王','韩信','花木兰'] # for...in 通过调用 next() 方法,查找下一个数据 for k in killers: print(k) i = 0 while i < len(killers): print(killers[i]) i += 1
-
交换两个变量的值
a = 10 b = 20 # 使用三个变量实现 c = a a = b b = c print(a) # 20 print(b) # 10 # 使用运算符实现,只能是数字 a = a+b b = a-b a = a-b print(a) # 10 print(b) # 20 # 使用异或运算符 a = a^b b = a^b a = a^b print(a) # 20 print(b) # 10 # python 特有 a,b = b,a print(a) # 10 print(b) # 20
-
冒泡排序
nums = [8,3,4,13,1,6,45,22] i = 0 while i < len(nums)-1: n = 0 while n < len(nums)-1: if nums[n] > nums[n+1]: nums[n],nums[n+1] = nums[n+1],nums[n] n += 1 i += 1 print(nums)
-
列表的排序和反转
nums = [6,5,3,1,8,7,2,4] # 调用 sort()方法,直接对原有数据进行排序 nums.sort(reverse=True) print(nums) # 内置函数,生成新列表 x = sorted(nums) print(x) names = ['aaa','bbb','ccc'] names.reverse() print(names) # ['ccc', 'bbb', 'aaa']
-
可变数据类型和不可变数据类型
# 不可变数据类型:字符串,数字,元组 # 可变数据类型:列表,字典,集合 # 不可变数据类型,如果改值,内存地址会发生变化 # 可变数据类型:如果修改值,内存地址不会发生变化 # 列表的复制 a = 12 b = a a = 10 print(b) # 12 nums1 = [1,2,3,4,5] nums2 = nums1 nums1[1] = 10 print(nums2) # [1, 10, 3, 4, 5]
-
列表的浅复制
nums1 = [1,2,3,4,5] nums2 = nums1 # 指向了同一块内存空间,会相互影响 nums1[0] = 100 print(nums2) # [100, 2, 3, 4, 5] # 调用 copy()方法,会复制一个新列表,指向不同的内存空间 nums3 = nums1.copy() nums1.append(300) print(nums3) # [100, 2, 3, 4, 5] # 还可以使用copy模块,等价于 nums1.copy(),都是浅拷贝 import copy nums4 = copy.copy(nums1) nums1[2] = 500 print(nums4) # [100, 2, 3, 4, 5, 300] # 切片也是浅拷贝 x = [1,2,3,4,5,6] y = x[::] print(y) # [1, 2, 3, 4, 5, 6] x.clear() print(y) # [1, 2, 3, 4, 5, 6]
-
移除空字符串
words = ['aaa','','bbb','ccc','','','ddd',''] # 在使用 for...in 循环遍历时,不要对列表进行增删操作 # for i in words: # if i == '': # words.remove(i) # print(words) # ['aaa', 'bbb', 'ccc', 'ddd', ''] i = 0 while i < len(words): if words[i] == "": words.remove(words[i]) i -= 1 i += 1 print(words) # ['aaa', 'bbb', 'ccc', 'ddd']
-
列表推导式
# # 使用简单的语法创建列表 nums = [i for i in range(10)] print(nums) # [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] point = [(x,y) for x in range(1,6) for y in range(10,12)] print(point) # # [(1, 10), (1, 11), (2, 10), (2, 11), (3, 10), (3, 11), (4, 10), (4, 11), (5, 10), (5, 11)]
-
深拷贝和浅拷贝
nums1 = [0,1,2,3,4,5] # 浅拷贝,只拷贝了一层 nums2 = nums1.copy() print(nums2) # [0, 1, 2, 3, 4, 5] # 深拷贝,只能使用copy模块实现 import copy words = ['hello','good',[100,200,300],'yes','jack','ok'] words1 = words.copy() words2 = copy.deepcopy(words) words[2][0] = 1 print(words) # ['hello', 'good', [1, 200, 300], 'yes', 'jack', 'ok'] print(words1) # ['hello', 'good', [1, 200, 300], 'yes', 'jack', 'ok'] print(words2) # ['hello', 'good', [100, 200, 300], 'yes', 'jack', 'ok']