一、位运算(二进制)
计算机中最小的单位:位;1byte(字节)=8bit(位)
符号位:在最前面,正数为0,负数为1
1、①原码:数值的标准的二进制位(8位)
②反码:原码的基础上符号位不变其他位取反
③补码:反码+1
注:反码前面多的移到下面继续加;补码加法前面多的直接丢弃
正数没有原码、反码、补码;计算机底层基于补码进行运算
2、&(与):两真才为真,一假则为假(有0出0,全1为1)【5(0000 0101)&6(0000 0110)=0000 0100】
|(或):一真则真,两假才假(有1出1,全0为0)【5(0000 0101)|6(0000 0110)=0000 0111】
^(异或):相反为真,相同为假(相同为0,不同为1)【10(0000 1010)^11(0000 1011)=0000 0001】num^0:num
~:包含符号位按位取反【~2(0000 0010)=1111 1101】
>>:右移除2^n(右移的位数)【8(0000 1000)>>2=0000 0010】(后面溢出来的全部砍掉、前面缺的补零)
<<:左移乘2^n(左移的位数)【8(0000 1000)<<2=0010 0000】(前面溢出来的全部砍掉、后面缺的补零)
二、程序结构
(一)、顺序结构
(二)、选择结构
1、关键字:if
2、简单的if语句:if 表达式(要正确):
代码块
if-else表达式:
3、if-elif-else表达式:
4、if语句嵌套:
5、三元运算符:条件成立时执行的代码 if 表达式 else 条件不成立时执行的代码
(三)、循环结构
三、列表
1、定义:[元素1,元素2,元素3……]
2、特点:元素的数据类型可以是不同的;有序储存,允许元素重复,列表可以嵌套,列表可以修改
3、列表下标:print(list[列表下标]),索引正负都可以
取列表里面的内容:print(list[-1][1])
4、更新列表里面的数据:list[1]=元素【重新赋值即可更改】
5、列表的加法:叠加;列表乘法:打印几次
6、列表的切片:和字符串切片一样
四、list的方法
1、向列表最末尾添加元素:list.append(元素)
2、创建一个对象的副本不会影响原来的内容:list.copy()
3、统计元素在列表里面出现的次数:list.count(元素)
4、将list2添加到list里面:list.extend(list2)
5、查看元素在列表第一次出现的位置:list.index(元素)【有返回索引下标,没有直接报错】
6、给特定位置插入:list.insert(插入位置的索引下标,"插入的元素")
7、给尾部删除:list.pop()【返回删除元素:a = list.pop();删除指定位置的元素,i为索引下标list.pop(i)】
8、删除某个元素:list.remove(元素)【如果删除元素不在该列表报错】
9、按照升序的顺序进行排序(只能排整数):list.sort()
10、按照降序的顺序进行排序:list.sort(reverse=True)
11、反转列表里面的元素:list.reverse()
五、元组(tuple)
1、定义:(元素1,元素2,元素3……)【元组里面可以包含列表】
2、特点:元组里面的元素不能更改但是元组里面的列表的元素可以更改、元组里面的类型可以不同
3、取出某个元素:t[元素下标]
4、元组的拼接:t1 + t2
5、元组乘法:乘几次打印几次
6、元组的切片:和字符串切片一样,t.[::]
7、查看元素在列表第一次出现的位置:index
8、统计元素在元组里出现的次数:t.count
9、元组的注意事项:元组中只有一个元素时这个元素后面必须带","否则不是元组
六、元组、列表、字符串的公共方法
1、查看长度:len()
2、查看最大值:max()
3、查看最小值:min()
七、集合(set)
1、集合是无序的,集合中的元素是唯一的(不可以重复)常用来去重
2、集合的创建:①a = set()【传入字符串,得到结果是{‘元素1’,‘元素2’};传入列表会把列表原封不动传成集合;传入元组会把元组原封不动传成集合;传入字典会把所有键放到一个集合里面】
② = {元组,字符串,数字}
3、创建空集合:a = set()
八、集合的方法
1、向集合中添加元素:s.add(元素)【添加元素只能是数字、字符串、元组】
2、将两个集合进行合并:s1.update(s2);print(s1)【集合的排列是随机排列的】
3、删除:s.remove(元素)【有该元素删除反之报错】或s.pop()【随机删除】或s.discard(元素)【有该元素删除,无该元素则重新打印一遍】
4、①交集(&):s1 & s2【连接多个集合,得到集合直接相同的元素】
②并集(|):s1 | s2【连接多个集合,得到集合所有的全部数据】
九、字典(dict)
1、以键值对的方式存在
2、特点:字典里面的键不重复,键可以是任意不可变类型(指数字、字符串、元组,不可以修改)
3、①字典的创建:{"键1":"值1","键2":"值2"}
②a = dict((["键1":"值1"],["键1","值1"]))
4、①创建空字典:a = {}【默认创建的是空字典】
②a = dict()
十、字典的方法
1、给字典添加新的键值对:a["键"] = "值"
2、删除某个键值对:del a["键"]
3、改某个键值对(找到某个键直接重新赋值,键不可改):a["键"] = "值"
4、查找某个键值对:print(a["键"]);在字典中获取指定键的值(可以设置默认值,当查询的键不存在时即返回默认值):b = a.get("键")【设置默认值:b = a.get("键","默认值")】
5、以列表的形式返回字典中的所有的键:c = a.keys()【字典套字典不会返回内层字典的键】
6、以列表的形式返回字典中所有的值:a.values()
7、以列表的形式返回所有的键值对:a.items()
8、清空该字典的内容:a.clear()
9、创建字典副本:a.copy()
10、创建一个新的字典:d2 = d1.fromkeys(("键1","键2"),("值1","值2"))【不会智能到一一对应】
11、删除最后一项(同时会以元组的形式返回删除的键值对):popitem()
12、设置键的默认值(如果有添加不成功、如果没有会添加到字典里面)setdefault()
13、将字典2的值更新到字典1(如果重复会进行修改改成字典2里面的内容):a.update(a1)
十一、去重
1、列表去重:s = set(list)
2、元组去重:t = set(tuple)
3、字典去重(只针对键不针对值):a = set(b)
4、字符串去重:e = set(str)