工具 Anacoda Jupyter
快捷键
执行当前cell,并自动跳到下一个cell:`Shift Enter`
执行当前cell,执行后不自动调转到下一个cell:`Ctrl-Enter`
使当前的cell进入编辑模式:`Enter`
帮助:`Shift Tab`
数据类型
type()
运算符号
-
+ - * /
% 返回除法的余数
** 幂
// 取整除
变量
a,b=1,2 多变量赋值
a=a+1 变量重新赋值 等价于a+=1
数据结构
1.列表 list
num = [1,2,3]
(1) 查询
num[0]=1
num[0:1]=[1]
num[0:3]=[1,2,3]
num[0:len(num)]=[1,2,3]
num[0:] =[1,2,3]
num[:2] =[1,2]
num[-2:] = [2,3]
(2) 计算
num[0] + num[1] = 3
(3) 插入
num.insert(1,4) 在第2个位置添加4
num.append(6) 在结尾添加6(只能添加单个值)
num = num +[3,6] 在结尾添加3,6
(4) 删除
num.pop() 删除最后一个值
num.pop(1) 删除第2个位置的值
(5) 更改
num[2] =10 将第3个位置的值改为10
(6) 多维列表
一维
a = [1,2,3]
二维
b = [[1,2],[3,4]]
应用 :学生信息表
name = ['qinlu','lulu','qinqin']
sex=['male','female','female']
age=[18,15,17]
info=[name,sex,age]
info_2 = [
['qinlu','male',18],
['qinlu','male',18],
['qinlu','male',18]
]
快速创建多维列表
row = [0]*3
row = [0,0,0]
[row] *4 一般运用numpy来做
2.元组 turple
a = (1,2) 元组不能修改
查询
a[0] = 1
3.字典 dictionary
a = {'qinlu':18,'lulu':15,'qinqin':17} 键key 值value 对
或者
a = {'id':1,'name':'qinlu','age':15,'sex':male}字典没有顺序
(1) 查询
a['id'] = 1
(2) 修改
a['id'] = 2
a = {'id':2,'name':'qinlu','age':15,'sex':male}
(3) 增加key
a['score'] = 60
a = {'id':2,'name':'qinlu','age':15,'score':60,'sex':male}
集合
a = [1,2,3,3,4]
b = [1,2,9,10]
set(a) = {1,2,3,4} 去重,不支持索引
list(set(a)) = [1,2,3,4] 去重,支持索引
set(a)&set(b) = {1,2} 交集
set(a)|set(b) = {1,2,3,4,9,10} 并集
set(a)-set(b) = {3,4} 差集:在a不在b
set(b)-set(a) = {9,10} 差集:在b不在a
[1,2]<a
True 子集
快速索引字典(字典也可以应用集合)
a = {'id':2,'name':'qinlu','age':15,'sex':male}
list(a.keys())= {'id','name','age','sex'}
list(a.values())= {2,'qinlu',15,male}
list(a.items())=[('id':2,'),('name':'qinlu'),('age':15),('sex':male)]
a.get('name',None) = qinlu
a.get('na',None) = None
a.setdefault('sex','female')查找到则返回,未查找到则更新
控制流
IF语句
a = 10
if a>10:
print('more than 10')
elif a == 10:
print('equal to 10')
else:
print('less than 10')
IF嵌套(尽量避免嵌套太多的逻辑)
if a>10:
print('more than 10')
if a%2 == 0:
print('偶数')
else:
print('奇数')
else:
print('less than 10')
控制流循环
While语句
count = 0
while count < 10:
print('The number is ',count)
count = count + 1(没有这一条会一直循环下去)
输出是0-9
count = 0
while count < 10:
count = count + 1
print('The number is ',count)
输出是1-10
break终止语句
count = 0
while count < 10:
count = count + 1
print('The number is ',count)
if count == 5:
break 当计数器到5时终止语句
continue跳过本次循环
count = 0
while count < 10:
count = count + 1
print('The number is ',count)
if count == 5:
continue 当计数器到5时跳过本次循环
例:输出10以下的奇数
count = 0
while count < 10:
count = count + 1
if count%2 == 0:
continue
print('The number is ',count)
For语句
输出0-9
for i in range(10):
print(i)
输出5-9
for i in range(5,10):
print(i)
输出5,7,9
for i in range(5,10,2):
print(i)
字典循环1
dict = {
'a'=1,
'b'=3,
'c'='abc'
}
for k in dict.keys()
print(k)
输出
a
b
c
字典循环2
dict = {
'a'=1,
'b'=3,
'c'='abc'
}
for k in dict.values()
print(k)
输出
1
3
abc
字典循环3
dict = {
'a'=1,
'b'=3,
'c'='abc'
}
for k in dict.items()
print(k)
输出
('a',1)
('b',3)
('c','abc')
字典循环4
dict = {
'a'=1,
'b'=3,
'c'='abc'
}
for k,v in dict.items()
print(k,v)
输出
a 1
b 3
c abc
循环进阶
技巧1:一行生成所需列表
list=[]
for i in range(1:10):
if (i%2 == 0) & (i%3 == 0):
list.append('str'+str(i**2))
等价于
list=['str'+str(i**2) for i in range(1,10) if (i%2 == 0)& (i%3 == 0)]
技巧2:一行生成所需字典
dict = {
'a'=1,
'b'=3,
'c'=4
}
list=[v**2 for v in dict.values() if v%2 ==0]