学习视频: https://www.bilibili.com/video/BV1wD4y1o7AS?p=25&spm_id_from=pageDriver
name = '玛利亚'
变量三元素:标识/地址(id),类型(type),值
id(name), type(name)
boolean类型 是True 和False, 可以转换为整形
不需要像java一样 前面定义int或者string类型
精确计算采用,decimal, Decimal('1.1')
字符串还可以三引号? 多行表示 nb ''' 33
33''' """ 33
33"""""
输出的时候,int age 不能像java自动转成str,需要str(age)转
input 用来接收输入,input('请输入你想要输入的内容'),返回值为str类型,可以转换成int 之类的
11/2 = 5.5
11//2 = 5
2**3 表示2的3次方
a,b,c=1,2,3
a,b = b,a 可以直接交换两者的赋值
== 是value的比较
is, is not是对象id的比较
not 是取反,相当于java的!
in 是相当于 set.contains
python一切皆对象,所有对象都有布尔值
空元组: (()) (tuple())
空列表 ([]) (list())
空字典({}) (dict())
空集合 (set())
以上布尔值都是False,也即bool(dict()) = False
python 还可以这样写: 5<=A<=10
for、while还能和else一起用,不过用的时候都要加:号
print默认换行,如果想要不换行,那么就print('STRING', end = ‘\t’)
列表list相当于其他语言的数组,而且可以最末尾索引为-1
list.index 相当于java的String.indexOf()
range (start, stop, step) 返回start开始, [start,stop) 之间,步长为step的列表[xxx]
list[start: stop: step] list切片,是拷贝不是原对象,和range方法类似
如果step是正数, start默认为0, stop默认是最后一个元素,如果step为负数则刚好相反
List:
append 和extend 末尾添加,一个或者多个元素
insert(1, 90)在第位置1添加90,之前位置1的元素后移
remove() 删除指定元素,多个相同的元素,只删除第一个
pop(1) 删除第索引为1的值, 如果不指定参数pop(),将删除列表中最后一个元素
切片是否都产生新的列表对象?
clear()清除列表
Dict:
类似于java的map,一个key只能有一个value, 可以用json格式创建 score = { 'A':123, age:456}
也可用 score = dict('A'=123, age=456)
字典获取值的两种方法:
一个是用score['A'] 找不到报错
一个是用score.get('A') 找不到返回None
score.get('A', 99) 99是默认值
del 删除指定键值对
clear() 清空字典
score['b'] = '789' 新增操作
也有keys(),values()方法
score.keys(),可以转成list(score.keys())
遍历字典 按key遍历
for item in score
print item
输出就是 'A' age 'b'
不可变对象:整数,字符串
可变对象: list, dict
dict的key只能为不可变对象
zip的使用:
keys = ['a','b','c']
values = [1,2,3]
print(list(zip(keys,values)))
dir = {key:value for key,value in zip(keys,values)}
print(dir)
元组 y =(1,2,3)
集合 s = {1,2,3}
set([1,2,3])
set(range(6))
set({1,2,3})
set((1,2,3))
都行,值一样
set('123')的结果是{'1',''2,'3'}
空集合只能s = set()
因为s = {}是一个空字典
集合的添加 s.add(4) 或者 s.update({4,5,6}) s.update([4,5,6]) s.update((4,5,6))
集合的删除: remove 不存在抛异常, discard 不存在不抛异常
s = {i*i for i in range(3)}, 结果为 {0, 1, 4}