jupyter notebook快捷键
- shift+enter:运行本单元,选中下一单元
- ctrl+enter:运行本单元
- Y:单元转入代码状态
- M:单元转入markdown状态,按1234成为几级标题
- A:在上方插入单元
- B:在下方插入单元
- X:剪切选中的单元
- C:复制选中的单元
- V:粘贴选中的单元
- D+D:连续按两次,删除选中的单元
- Tab:代码补全或缩进
- ctrl+/:注释整行或者撤销注释
基础的python操作
数据类型
type:查询数据类型。
%取余,//整除,str字符串,+字符串相加,字符串内容不可以更改,inf无穷大,nan非数值
数据结构
1、列表list:[]左闭右开,append/extend添加,pop/del删除,count计数,index返回索引,insert在索引位置插入,remove移除第一次出现的值,reverse反向读数,sort按照大小排序,从小到大,+列表横向拼接,使用list实现字符串转列表,每个字母都会转,*列表复制
#添加
a = [1,2,3,4]
a.append([5,6])
a.extend([5,6])
#输出[1, 2, 3, 4, [5, 6], 5, 6]
#删除,可指定索引,不指定的话删除最后一项,
a.pop()
del a[1]
#输出[1, 3, 4, [5, 6]]
#count计数,计算1出现的次数
a.count(1)
#index返回索引号,返回1的索引
a.index(1)
#insert"a"两次
a.insert(0,'a')
a.insert(0,'a')
a.remove('a')
#输出['a', 1, 3, 4, [5, 6]]
2、元组tuple:()括号表示,不可修改,del删除整个元组,+、*、索引用法同list,元组可实现依次赋值
c = (1, 2, 3, 4, 5, 6)
a1,a2,a3,a4,a5,a6 = c
3、集合set: {}表示,内容不可重复,无序性,add增加,remove删除,<查询a是否是b的子集a.issubset(b),-求差a.difference(b),|求并集a.union(b),&交集 a.intersection(b),~求a和b中未同时出现的元素a.symmetric_difference(b)。
4、字典dict:{}表示,其中数值可以不用打‘’,字符串则需要,del/pop删除,in查询键是否在字典中,存在返回true,get返回值,keys返回所有键,values返回所有值,items返回所有键和值
dict_a = {'name':'ming', 'age': 35, 'id': '1001'}
len(dict_a)
dict_a['city'] = 'chengdu'
del dict_a['city']
#或者用pop删除
dict_a.pop('city')
name in dict_a
#get 存在返回值,不存在返回1
dict_a.get('name',1)
控制语句
条件语句
if-else、if-elif-else:
x = 1
print('x小于0') if x < 0 else print('x不是负数')
#使用input获取数值时,需要加上int等,否则为字符串
score = int(input('请输入你的分数:'))
循环语句
for和while
for i in range(1,10,2):
print(i)
a = [x**2 for x in range(10)]
x = 1
total = 0
while(x<=100):
total += x
x += 1
else:
print(total)
其他语句
break;continue;pass
break:终止整个循环语句
continue:跳出当前循环,执行下一次循环
pass:占位符,不做任何操作
列表推导式:
vec = [1,2,3,-4,5,-6]
[x**2 for x in vec if x > 0]
a = [1,2,3,4,5,'boy']
total = 0
for i in a:
try:
total = total + i
except:
pass
函数
简单函数
enumerate:返回数据和数据索引,一般用在for循环中
zip:将对象中对应位置的元素组成元组,如需查看需要加list
math.floor:向下取整
math.ceil:向上取整
np.argmin:最小值对应的索引
a = [1,2,3,4]
b = [5,6,7,8]
zipped = zip(a,b)
list(zipped)
#输出[(1, 5), (2, 6), (3, 7), (4, 8)]
高阶函数
1、def
2、lambda :适合简单的定义函数,会自动输出,不需要print,lambda+变量+‘:’
g = lambda x: x**2
g(2)
f1 = lambda x: 'a' if x == 1 else 'b'
3、map:将一个函数映射到序列的每一个元素上,生成新序列,list可显示所有值
map(function,input)
list1=[1,2,3,4,5]
def f1(x):
y = x**2
return y
list(map(f1,list1))
list(map(lambda x: x**2,list1))
4、 reduce:将一个序列重复同样的映射,先前两个映射,其结果在同第三个值映射,以此类推
from functools import reduce
items = ['a', 'b', 'c', 'd']
reduce(lambda x,y: x+y, items)
5、filter:过滤掉不符合的函数,true保留,false过滤,结果用list转换
list(filter(lambda x: x%2 == 0, range(21)))
#isinstance(x,int)查询x是否为整数,可换成str,list
items = [1,2,3,4,'a','b','c',5,7]
list(filter(lambda x: 1 if isinstance(x,int) else 0, items))
json文件
定义:是JavaScript对象表示法,json格式是一种轻量级的文本数据交换格式,拥有存储空间小,处理速度快等优势。
数据结构:本质上是一种嵌套字典格式,但键对应的值,不仅可以是数字,还可以是字符串,数组和列表等等。
#读数据r,with自带打开关闭文件
with open('文件路径.json',encoding = 'utf-8', mode = 'r') as f:
f_read = f.read()
#将文件读成字符串格式
data = json.loads(f_read)
#写数据w,indent表示缩进,0即没有空格
with open('存放路径.json', 'w') as f:
json.dump(data,f,indent = 0)
字符串
\n:换行符
\t:空格
r:防止转义 r‘路径’
%:占位符,输出变量的值,s表示字符串,d表示整数,%.2f小数点后两位,%.4e科学计数法,保留4位,%%百分号
format:
print('我今年%d岁' % 18)
print('我今年{}岁'.format(18))
print('我今年{:.2f}岁'.format(18.12))
print('我今年{}岁'.format('18'))
data.index:返回字符串的索引,如若找不到则报错
data.find:如若找不到则返回-1
upper:大写
lower:小写
capitalize:首字母大写
“”.join(list):将列表中的元素无空格的拼接
replace(’\n’,’’):替换中间的字符串\n
strip:去掉首位的空格,rstrip去掉右边的空格,lstrip去掉左边的空格
isdigit:查询是否全部为数字
isalnum:查询是否由数字或者字母构成
startswith():查询是否为指定开头
endswith():查询是否为指定结尾