一、数据类型
弱类型
1、数值类型
整数、浮点数以及相互的换算:
1、整数:int
type()输出数据类型
int(1.1)=1
float(1)=1.0
2、浮点数:float
7%2=2 只返回余数;7//2=3 返回整数部分
2、字符串类型 string
加双引号或者单引号"a"、‘a’
注意:
(1)第一种方式
当一段字符有单引号应用时,外面使用双引号,反之同理。
当一段字符既有单引号又有双引号,此时就用超级无敌三引号,也就是三个单引号作为边界(换行也可以正确表示)
(2)第二种方式
将双引号前加 \
print()内容输出函数,双引号定义字符串
3、布尔类型 true false
4、none表示值缺失,‘’表示值为空
二、变量
数据与数据运算,反复用到某个值,引入变量
对应的是常量
变量不仅能读,还能写(也就是重新赋值)
小技巧:
1、多个变量赋值,用逗号分隔;a,b=1,2
2、a=a+1,等号右边先计算,等价于a+=1
3、变量的更高阶用法,和数据结构结合使用
三、数据结构
数据结构:三大,分别为列表(数组)、字典、元组
1、列表(方括号)
1.1 基础列表
list,一串有序的集合,可数字也可字符num=[1,2,3]
sum(num)
(1)查找,访问某个元素,应用索引或者切片实现num[0]:表示列表的第一个元素
num[-1]:表示倒数第一个元素
num[0:2]:取前两个元素
num[0,len(num)]:表示所有元素
注意:num[0:1]只是取第一个元素
num[0:2]取前两个元素
说明方括号取的是左闭右开
(2)增加
num.insert(位置,值)
append()函数,在末尾插入,函数循环用到比较多
shift+Tab查看函数的具体用法num.insert(1,4)
结果:num=[1, 4, 2, 3]
num.append(4)
结果:num=[1, 4, 2, 3, 4]
(3)删除
pop()函数删除的意思,若参数处为空的话,默认删除末尾num.pop(2)表示删除第三个位置,因为从0开始
结果:num= [1, 4, 3, 4]
(4)更改num[1]=5 将第二个4更改成5,直接使用索引更改
结果:num=[1, 5, 3, 4]
1.2进阶列表
一维列表
二维列表b=[[1,2],[1,4]]name=['wang','li','xue']sex=['nan','nv','nan']age=[18,30,20]
info=[name,sex,age]
结果:info=[['wang', 'li', 'xue'], ['nan', 'nv', 'nan'], [18, 30, 20]]info2=[['wang','nan',18],['li','女',30],['xue','nan',20]]
一般习惯第二种,行表示明细,列标识维度
其他:a=[0]*3 将0元素扩展为三分
结果a=[0, 0, 0]
拓展成多维:
[a]*4=[[0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0]]
2、元组(圆括号)
元组与列表的区别:
元组不能修改,列表可以修改a=(1,2)索引:
a[0]
3、字典(大括号),无序
键key值value对a={'id':1,'name':'xueuxe','sex':'famle','age':18}
(1)索引,查找a['id']
列表查找慢,后期效率慢,空间占的少
字典查找速度相等,空间占的多
(2)修改a['id']=2
a={'id': 2, 'name': 'xueuxe', 'sex': 'famle', 'age': 18}
判断id在不在a中'id'in a
(3)删除a.pop('name')
(4)增加a['name']='xuexue'
a={'id': 2, 'sex': 'famle', 'age': 18, 'name': 'xuexue'}
四、列表和字典的应用
字典(大括号),无序
1、列表
set()函数的作用:
1、去重函数
2、去重后不能直接索引,需要再外面加一个list()函数a=[1,2,3]
b=[2,3,4]
交集:set(a)&set(b)
{2, 3}
并集: set(a) | set(b)
{1, 2, 3, 4}
差集:set(a)-set(b)
{1}
逻辑判断: [1,2]
Out[22]:True
2、字典a={"name":"qinlu","age":11}
a.keys()
1、提前字段:list(a.keys())
['name', 'age']
2、提取值:list(a.values())
['qinlu', 11]
3、提取所有:list(a.items())
[('name', 'qinlu'), ('age', 11)] #元组(),特性不可修改
4、a.get("name") 查找
'qinlu'
5、a.setdefault("sex","famle") 查找到返回,查找不到先赋值再出结果
'famle'
6、字典交集,并集等操作见列表
五、控制流
1、if,从上到下执行if a > 10:
print("more than 10")
elif a==10:
print("equel to 10")
else: print("less than 10")
嵌套ifif a>10:
print("more than 10")
if a%2==0:
print("ou")
else :
print("ji")
else: print("less than 10")
2、循环语句
a、whilecount=0
while count<10:
print(count)
count=count+1
break:循环语句终止count=0
while count<10:
print(count)
count=count+1
if count ==5:
break
continue:本句断掉,但是整个不终止count=0
while count<10:
count=count+1
if count ==5:
continue
print(count)
b、for,不容易进入死循环
range()函数:控制循环次数for i in range(10):
print(i)
for i in range(5,10):
print(i)
for i in range(5,10,2):
print(i)
列表逐一输出a=["a","b","c"]
for i in a:
print(i)
字典循环输出dist= {"a":1,"b":2,"c":"abc"}
for k in dist.items():
print(k)
for k in dist.values():
print(k)
两个循环同时dist= {"a":1,"b":2,"c":"abc"}
for k,v in dist.items():
print(k,v)
c、循环进阶,1、生成1到100的列表
list=[]
for i in range(1,101):
list.append(i)
list
等价于
list2=[i for i in range(1,101)]2、生成1到100的偶数列表
list=[]
for i in range(1,101):
if i%2==0:
list.append(i)
list
等价于
list2=[i for i in range(1,101)if i%2==0] ##注意没有冒号
字典的数据取出来再生成列表:dist= {"a":1,"b":2,"c":3}
[k**2 for k in dist.values()]