总结
一、进制的转换
1.常用的进制:十进制、二进制、十六进制、八进制
十进制:
1)基数: 0、1、2、3、4、5、6、7、8、9 (199、287、2039)
2)进位:逢10进1
3)表示方式:直接写
4)转换: print(其他进制的数)
二进制:
1)基数:0、1 (01、001、101、111001)
2)进位:逢2进制1 0+1 - 1 1+1 - 10
3)表示方式:在二进制数前加'0b'或者'0B' 例如:num3 = 0b100
4)转换: bin(其他进制数) 例如:print(bin(100))
八进制:
1)基数:0、1、2、3、4、5、6、7 (67、032)
2)进位:逢8进1
3)表示方式:在八进制数前加'0o'或者'0O' 例如:num5 = 0o67
4)转换: oct(其他进制数据) 例如:print(oct(199)) print(oct(0b11001001))
十六进制:
1)基数: 0、1、2、3、4、5、6、7、8、9、a/A、b/B、c/C、d/D、e/E、f/F (aaa、a0f、4e00、1990)
2)进位:逢16进1
3)表示方式:在16进制数前加0x、0X 例如:num6 = 0xaaf
4)转换: hex(其他进制数) 例如:print(hex(100)) # 0x64
print(100 == 0x64) True
二、认识列表
1.列表python自带的类型,属于容器型数据类型(可以同时保存多个数据)
将[]作为容器的标志,里面多个元素(容器中每个独立的数据)用逗号隔开
2.列表是可变的(可变指的是元素的个数和元素的值可变) -支持增删改操作
列表是有序的 - 支持下标(索引)操作
3.任何类型的数据都可以作为列表的元素
同一个列表可以放不同类型的数据
有序序列顺序影响结果 字符串和列表有序
三、列表的查操作
1.查单个 - 获取列表中的一个数据
1)语法:
列表[下标] - 获取列表中指定下标对应的元素
2)说明:
列表 - 任何结果是列表的表达式(具体的一个列表、保存列表的变量等)
[] - 固定写法
下标 - 又叫索引;下标指的是列表中的元素在列表中的位置信息。
每个元素的下标值有两个:a.从前往后从0开始不断增加的下标值
b.从后往前从-1开始不断减小的下标值
3)注意:下标不能越界
nums = [50, 78, 99, 30]
print(nums[0], nums[-4])
print(nums[2], nums[-2])
2.切片 - 获取列表中的部分数据
列表[开始下标:结束下标:步长]
a.怎么确定一个切片结果:
第一步:看切片的结果是否为[] -> 看从开始下标位置到结束下标对应的位置的方向和步长对应的方向是否一致
步长为正:表示从前往后取
步长为负:表示从后往前取
第二步:确定有效范围 -> 开始下标对应的元素能取到,结束下标对应的元素取不到
第三步:通过步长在有效范围内获取元素:
步长为正在有效范围内从前往后取;步长为负,在有效范围内从后往前取;
绝对值为1就一个一个的取;绝对值为2,就取1个跳过1个再取1个再跳过1个;绝对值为3,就取1个跳过2个再取 1个再跳过2个;....
b.根本目标数据写切片的代码:
第一步:确定开始下标 - 想要获取的所有元素中第一个元素的下标
第二步:确定结束下标 - 想要获取的所有元素中第最后一个元素前面(从后往前取)或者后面(从前往后取)那个元素的下标
第三步:通过获取元素的方向确定正负;通过获取方式确定绝对值
举例说明,通过代码获取数据
names = ['西施', '孙尚香', '刘备', '马可波罗', '赵云', '孙膑', '后羿', '鲁班7号', '百里守约']
print(names[1:5:2]) # ['孙尚香', '马可波罗']
print(names[-1:5:1]) # []
print(names[2:7:-2]) # []
print(names[-2:-7:-2]) # ['鲁班7号', '孙膑', '马可波罗']
print(names[-1:0:-3]) # ['百里守约', '孙膑', '刘备']
------------------------------------------华丽的分割线------------------------------
print(names[-1:3:1]) # []
print(names[4:-2:2]) # ['赵云', '后羿']
print(names[-3:0:3]) # []
print(names[-2:0:-2]) # ['鲁班7号', '孙膑', '马可波罗', '孙尚香']
通过数据看怎么写代码
names = ['西施', '孙尚香', '刘备', '马可波罗', '赵云', '孙膑', '后羿', '鲁班7号', '百里守约']
# '孙尚香', '刘备', '马可波罗'
print(names[1:4:1])
# '刘备', '赵云'
print(names[2:5:2])
# '鲁班7号','赵云', '孙尚香'
print(names[-2:0:-3])
2.切片省略语法
# 列表[开始下标:结束下标:步长]
a.省略步长 - 相当于步长是1
列表[开始下标:结束下标]
b.省略开始下标 - 从头开始(如果步长为正从第一个元素开始;如果步长为负,从最后一个元素开始)
列表[:结束下标:步长]
c.省略结束下标 - 如果步长为正,从开始下标开始一直取到最后一个元素;如果步长为负,从开始下标开始一直取到第一个元素
列表[开始下标::步长]
列表[开始下标:]
tvs = ['一人之下', '海贼王', '名侦探柯蓝', '甄嬛传', '越狱', '行尸走肉', '绝命毒师', '穹顶之下']
print(tvs[1:-1])
print(tvs[-2:1])
print(tvs[:-3:2]) # ['一人之下', '名侦探柯蓝', '越狱']
print(tvs[:3:-1]) # ['穹顶之下', '绝命毒师', '行尸走肉', '越狱']
print(tvs[:5]) # ['一人之下', '海贼王', '名侦探柯蓝', '甄嬛传', '越狱']
print('.................分割线.....................')
print(tvs[4::2]) #['越狱', '绝命毒师']
print(tvs[-3::-1]) #['行尸走肉', '越狱', '甄嬛传', '名侦探柯蓝', '海贼王', '一人之下']
print(tvs[5:]) #['行尸走肉', '绝命毒师', '穹顶之下']
print(tvs[::-2]) #['穹顶之下', '行尸走肉', '甄嬛传', '海贼王']