第一章 语法
基本类型
- 列表
数组合并
数组复制
正常计算方法
没有减法和数组相乘的方法
- 元组
计算方法和调用方法与列表一样
tuple表示元组
因为元组只有一个元素,元组的类型和这个元素类型一样
原因:运算优先符,例如:(1+1)*2和元组的符号相同,type在判断的时候,会优先判断为计算的优先符,先计算,相当于type(1)
,最后判断为int类型。
定义只有一个元素的元组
### 元组
(,) 语法错误
(1,) 定义只有一个元素的元组
() 定义没有元素的元组
### 列表
[1] 还是一个列表,只有一个元素
### 字符串
'hello world'[2] =>l
[1,2,3][2] =>3
序列:列表,组,str
特点:每个字符都有对应的下标,序号,每一个元素都被赋予序号
复制代码
类型整理:int,float,bool,str,list,tuple
字符串序列:切片
字符串[a:b:c]进行切片
a:表示其实位置 b:表示选择的元素位数,从a位置开始数 c:表示在b位数中分为b/c个组,每组有c个数
最后的结果由在(b/c)个组中找到每个组的第一个元素组成。
判断元素是否在列表中
//判断是否在这个列表中
>>> 3 in [1,2,3,4,5,6,7]
>>> true
//判断是否不在这个列表中
>>> 3 not in [1,2,3,4,5,6,7]
>>> false
复制代码
- set数据类型 无序列表
就是集合,特性1:不重复性,无序性
不重复性:
无序性:
- 用法:
长度:
差集:两个数组的差集
{1,2,3,4,5} - {2,4,5}
>>> {1,3}
复制代码
- 交集
- 集合合并去重(合集或者并集)
定义空集合:
错误:
type({})
dict 类型
正确:
set()
set类型
len(set())
>>> 0
复制代码
*dict字典
dict也是集合类型
定义:{key1:value1,key2:value2.......}
访问方式:通过key访问value
- 变量 定义:由数字,字母,下划线组成
错误:数字开头的变量
正确:字母或者下划线开头的变量
复制代码
注意:
- 系统关键字,不能用在变量名中,保留关键字
- 变量区分大小写
- 变量没有类型限制,可以被赋予任何类型
- 值类型和引用类型
int 值类型
a = 1
b = a
a = 3
print(b)
list;引用类型
a = [1, 2, 3, 4]
b = a
a[0] = 23333
print(b)
>>> [23333,2,3,4]
复制代码
- 值类型 (int str tuple)(不可改变)
- list set dict(可变)引用类型
- 字符串不可变
b = 'hello'
id(b) //内存地址 3215217816664 10进制
b = b +'world'
id(b) //内存地址 3215219303280
print(b)
>>> helloworld
复制代码
- tuple和list区别
list:类型可变,可以更改数据,因为更改之后数据内存地址不变
-
tuple:元组(不可变的,定义之后就不能再更改,如果改变则会报错)
-
算数运算符
# 运算符
a = 'hello' + 'world'
b = [1, 2, 34] * 3
c = 3 - 1
d = 3 / 2
# 整除
e = 3 // 2
# 余数
f = 5 % 2
# 平方
ff = 2 ** 2
# 次方
fff = 2 ** 3
复制代码
- 赋值运算符
- 比较(关系)运算符
- 逻辑运算符
- and
- or
- not
- 成员运算符 (一个成员是否在另一组成员序列中,适用于字符串,元组,列表,字典(检查是否有对应的key,而不是vlaue))
- in
- not in
- 身份运算符
- is 如果两个变量取值相等,则返回true 判断都是变量两边的取值的内存地址是否一样,取值相同不一定身份相同,利用内存地址是否一样判断
- not is
- 值类型 对象三大特征 (id,value,type)=> (is,==,isinstance) 3.1 值类型,身份类型,取值类型 (isinstance(a,类型),isinstance(a,(类型元组)))不用type,不能判断子类的类型
python一切都是对象
- 按位运算符(把数字转为二进制数进行运算的)
- 按位与
a=2 b=3 a & b >>> 2 复制代码
- 按位或
a=2 b=3 a | b >>> 3 复制代码
- 按位与或