- 博客(71)
- 收藏
- 关注
原创 Excel的第一天学习
在视图里面点击显示网格线 就会显示出网格线页面切换区 在右下角 分为普通视图 页面布局 分页预览enter向下,tab向左tab+shift向右 或者直接使用键盘上下左右移动双击栏位边线自动适配文字长度跨栏置中按钮使得标题跨栏居中1.跨栏置中:按钮选择合并后居中框选多格,调整任意格长度后所有格长度变得一致1.将所有栏宽设为一致:选中所有栏,设置其中一栏的宽度,其余自动变更日期标准格式为/分开格式,如2021/7/3 这种格式的日期可以右键-储存格格式更改日期格式或..
2021-07-03 11:41:52 453
原创 FCM算法分割图像代码
FCM算法分割图像 1clcclearclose all%% create samples:img = imread(‘1.jpg’); %img为uint8类型的subplot(1,2,1),imshow(img,[])data = double(img(????); %将img转换成double类型的,用data表示,data是一个列数组,只有一列%cluster_n = 4;%分类总数iter = 6;%迭代次数m = 2;%m属于(1到无穷大)本文选m=2num_data =
2020-07-23 22:24:40 1280
原创 matlab FCM算法实现
代码实现:clcclearclose alldata = rand(100,2);[center,U,obj_fcn] = fcm(data,2);subplot(1,2,1);plot(data(:,1), data(:,2),‘o’);hold on;maxU = max(U);% Find the data points with highest grade of membership in cluster 1index1 = find(U(1,:) == maxU);% Fi
2020-07-22 10:59:45 633
原创 json模块
一,将字典写入文件hello中dic=’{‘name’:‘alex’}’ #加引号成为字符串f=open(‘hello’,‘w’)f.write(dic)读取该文件内容f_read=open(‘hello’,‘r’)data=f_read.read()print(type(data)) #此时拿到的数据类型是字符串,不可以进行字典的操作data=eval(data)print(data[‘name’]) #此时拿到的是alex二,使用json模块来实现上述功能dic={’‘name
2020-06-16 11:47:52 176
原创 sys模块的介绍
进度条制作的原理:import timefor i in range(50):sys.stdout.write(’#’)time.sleep(0.1)sys.stdout.flush()间隔0.1秒打印#,共50个,每打印一次屏幕会显示一个。
2020-06-16 10:05:22 337
原创 OS模块的介绍
1,os.getcwd()ccs.getcwd() 获取当前工作目录,即当前python脚本工作的目录路径2,os.chdir(‘dirname’) 改变当前脚本工作目录 os.chdir(’…’)两个点是返回到上一层目录,一个点是返回当前目录。3,os.makedirs(‘dirname1/dirname2’) 可生成多层递归目录。4,os.removedirs(‘dirname1/dirname2’) 删除dirname2,若目录为空则删除,并递归到上一级目录,若上一级也是空的则一并删除,以此类推
2020-06-10 11:32:03 476
原创 random模块
一,例子:import randomprint(random.random())print(random.randint(1,3))print(random.randrange(1,3))print(random.choice([11,22,33,‘we’]))print(random.sample([11,22,33,44,55],2))print(random.uniform(2,9))shuffle.>>打乱顺序a=[1,2,3,4,5]random.shuffle
2020-06-03 16:09:33 160
原创 time时间模块
一,时间戳 #计算时间import timeprint(time.time())二,结构化时间,计算当下的时间import timeprint(time.localtime())结构化时间UTCprint(time.gmtime())将结构化时间转化为时间戳print(time.mktime(time.localtime()))将结构化时间转化为字符串时间print(time.strftime(’%Y-%m-%d %X’,time.localtime()))将字符串时间转化为结构
2020-06-03 11:44:52 143
原创 模块的执行以及--name--
一,两种方式执行函数采用第一种灰色字体的方式,要写成 print(cal.add(2,6))二,在执行文件中打印print(name)输出结果是 main如果在执行文件中运行函数前加入if name==‘main’目的是不想让这个文件成为被调用文件。如果在调用文件中打印print(name),输出结果是路径 。...
2020-06-02 21:44:59 108
原创 module模块和包的介绍
一,模块 import 1.执行对应文件2.引入变量名在一个文件中写入功能函数,另一个文件中进行调用caal文件中写入下面的函数在text文件中写入如下代码:import caalprint(caal.add(3,5))print(caal.sub(3,5))或者1:from caal import addfrom caal import subprint(add(3,5))print(sub(3,5))或者2:(星号代表引入文件的全部内容)不推荐from caal impor
2020-06-02 16:08:45 326
原创 程序的解耦
目的是将修改功能和查询功能中的文件操作放到一个新的函数中,用到的时候直接调用即可。这样可以节省空间。结果在return ret执行change操作时:函数调用写法如下(不全):
2020-05-30 13:12:15 152
原创 函数闭包补充:解压序列
一,将l=[1,2,3,4,5]中第一个和最后一个取出来在终端输入:a,*_,b=l即a=1,b=5二,交换f1,f2的值在终端输入f1,f2=f2,f1三,函数闭包为函数加上认证功能利用闭包加参数编写函数。strip() 去除首尾空格...
2020-05-25 16:52:55 146
原创 函数闭包加上返回值
一,执行print(res)返回值是None,执行text相当于执行timmer,相当于执行里面的wrapper函数,由于没有返回值,故返回None。当wrapper有了返回值后,才能打印text中的返回值
2020-05-24 18:23:47 276
原创 装饰器基本理论和使用
一,装饰器:本质就是函数,功能是为其他函数添加附加功能原则:不修改被修改函数的源代码不修改被修改函数的调用方式装饰器=高阶函数+函数嵌套+闭包导入个时间函数,来计算运行的时间。二,高阶函数定义:1,函数接收的参数是一个函数名2,函数的返回值是一个函数名3,满足上述条件的任意一个都可以称之为高阶函数...
2020-05-24 15:24:49 88
原创 生成器内容回顾
一,生成器只能遍历一次(sum,list,next,map,filter…都可遍历),故输出结果为0,1,2,3,[]二,执行t=test()并不会有任何值的传入,只有执行next之后才会有值。执行t1,t2之后也不会有值传入,并没有进行遍历,执行第一个print后,list是遍历了一遍t,将值全部取出,故执行第二个print不会有任何值的输出,生成器只能遍历一次。...
2020-05-24 10:31:31 154
原创 练习题2
一,转字节的两种方式s=‘老男孩’print(type(s))a=bytes(s,‘utf8’)s.encode(‘utf8’)二,reduce+lambda实现7!from functools import reduceprint(reduce(lambda x,y:x*y,[x for x in range(1,8)]))使用函数的方式实现7!三,利用with实现同时打开两个文件(一读一写,并将读取的内容写入到写入模式的文件中)四,猴子吃桃,每天吃全部桃子的一半加1,第十天剩1个
2020-05-23 18:32:49 95
原创 练习题
一,输出结果为:1 () {‘name’: ‘fuck’}()None二,结果为:[11, 22, 33, 44, 55][11, 22, 33, 44, 55, 55]None三,结果为:1087NoneNone四,
2020-05-22 22:34:29 68
原创 生产者消费者模型
一.yield相当于return,他控制的是函数返回值,x=yield另一个特性是接收send传来的值,然后赋值给x。最后一行的print是生成器的第三种表达形式,在上一行运行到的位置继续往下执行,与上一句的print功能一样,只是多加了个赋值,将send里的值赋给yield,yield再传给first。例:上述两个程序并发运行...
2020-05-22 11:04:24 68
原创 生成器特性阐释
一,生成器优点:1.延迟计算,一次返回一个结果,不会一次生成所有结果。2.生成器可有效提高代码可读性。注意:生成器只能遍历一次。(母鸡一生只能下一定数量的蛋,下多了会over)例子:人口普查文件内容如下:此时输出的是文件第一行内容的人口数,eval是将字符串转化为字典将文件中所有的人口数据取出来并求和计算得到人口的总数求各省所占总人口比例:执行上述的代码并不会输出结果,因为生成器只能遍历一次,我们在执行sum语句时,就遍历了我们的生成器,当两次遍历生成器时就不会有任何的记录。
2020-05-21 18:49:54 379
原创 三元运算,列表解析,生成器表达式
一,生成器就是可迭代对象,可以理解为一种数据类型,这种数据类型自动实现了迭代器协议。1.生成器函数:常规函数定义,但是使用yield语句而不是return语句,yield可以返回多个值。2.第二行的式子称为 三元表达式(没有四元表达式,可以两元)name=‘alex’res=‘hk’ if name==‘song’ else ‘pl’print(res)3.列表解析l=[‘鸡蛋%s’ %i for i in range(5)]print(l)等价于:egg_list=[]for i
2020-05-19 22:31:29 155
原创 迭代器补充
补充上篇文章中的print(iter_text.next())语句等价于:print(next(iter_text))这里的next是python内置的函数。
2020-05-19 15:17:14 71
原创 迭代器协议和for循环工作机制
一,1.迭代器协议:对象必须提供一个next方法,执行该方法要么返回迭代中的下一项,要么就引起一个stoplteration异常,以终止迭代,只能往后走,不能往前退。可迭代对象:实现了迭代器协议的对象例子:l=[1,2,3]iter_text=l.iter() #遵循迭代器协议,生成可迭代对象print(iter_text)print(iter_text.next())print(iter_text.next())print(iter_text.next())输出结果为1,2,3列表,
2020-05-19 15:05:55 181
原创 文件seek方法补充
1.若不指定括号中的1,系统默认为0f=open(‘test’,‘r’,encoding=‘utf-8’)print(f.tell())f.seek(10)print(f.tell())f.seek(3)print(f.tell())输出结果为0,10,32.指定为1,只能使用b模式f=open(‘test’,‘rb’)print(f.tell())f.seek(10,1)print(f.tell())f.seek(3,1)print(f.tell())输出结果为0,10,13
2020-05-19 10:33:54 441
原创 文件操作的其他方法
f.flush() #刷新 f.tell() # 告诉指定位置 f=open('test','r',encoding='utf-8',newline='') #newline=''是读取文件中真正的换行符号 f.seek() #控制光标的移动 #一个中文代表三个字节,若读取的文件中有中文,则f.seek(1) print(f.read()),直接读取文件内容会报错,若是改为f.seek(3)之后再读取就会读取到第一个文字之后的内容。 f.read(4) #读取的是文...
2020-05-16 11:36:02 57
原创 文件处理b模式
一, rb 二进制方式读取f=open(‘test’,‘rb’) #b的方式不能指定编码#‘字符串’ ———encode——字节#字节———decode——‘字符串’print(f.read(),decode(‘utf-8’))f.close()二,进行编码操作bytes(‘玥’,encoding=‘utf-8’)等价于:‘玥’.encode(‘utf-8’)三,wb 二进制方式写入f=open(‘test’,‘wb’) #b的方式不能指定编码f.write(bytes(‘hello
2020-05-14 11:20:10 212
原创 前几节回顾
一,用map函数将列表转为字符串l=[1,2,3,4]print(list(map(str,l)))二,用reduce函数实现列表元素相加l=[1,2,3,4]from functools import reduceprint(reduce(lambda x,y:x+y,l))三,用filter函数将结尾是OK的人名去掉name=[‘alex_ok’,‘song’]print(list(filter(lambda x :not x.endswith(‘ok’),name)))四,使用‘r
2020-05-14 10:00:52 68
原创 文件操作的其他模式
一,打开文件‘宋’,并读取内容f=open(‘宋’,encoding=‘utf8’)data=f.read() #打开文件print(data)f.close() #关闭文件二, r 只读 w 只写 af=open(‘宋’,‘r’,encoding=‘utf-8’)print(f.readable()) #输出为trueprint(‘第一行’,f.readline()) #读取文件的第一行(一次读一行)print(‘第二行’,f.readline()) #读取文件的第二行print
2020-05-13 11:18:26 102
原创 其他内置函数
一,含义相反,数字与ASCII相互转化print(chr(97))print(ord(‘a’))二,立方,立方后取余print(pow(3,3)) #3的3次print(pow(3,3,2)) #3的3次,后对2取余三,反转l=[1,2,3,4]print(list(reversed(l)))四,四舍五入print(round(3.5))五,变成集合print(set(‘hello’))六,切片s=[1,2,3,4,5,6]s1=slice(3,5)s2=slice(1,4,
2020-05-12 22:31:02 71
原创 max和min的高级使用
一,比较年龄的最大值并输出 同时输出keys和valuesage_dic={‘agesong’:18,‘ageliu’:7,‘agezhang’:45}print(list(max(zip(age_dic.values(),age_dic.keys()))))二,不同类型间不能进行比较l1=[‘a19’,‘b19’,‘c2’]print(list(max(l1)))按照第一位进行比较,分出大小后就不会继续进行比较,第一位相同就比较第二位。三,直接比较字典最大值,默认比较keyage_dic=
2020-05-12 10:06:25 822
原创 内置函数
一,1.print(abs(-1))2.print(all([‘120’,0])) 输出为False,列表元素布尔值全为True,输出结果为True,含有0,’ ‘,None,输出结果为False若可迭代对象是空 print(all(’ ')),则返回True3.print(any([‘120’,0])) 输出结果为True,只要有一个结果为True,返回值为True4.print(bin(3)) 将十进制转化为二进制5.print(bool(0)) 判断布尔值6.print(bytes(‘宋
2020-05-10 11:27:37 188
原创 map reduce filter总结
#map()处理序列中的每个元素,得到的结果是一个‘列表’,该‘列表’元素个数和位置与原来一样。#filter()遍历序列中的每个元素,判断每个元素得到的结果是布尔值,若结果是True则保留下来。#reduce()处理一个序列,然后把列表进行合并操作。...
2020-05-09 21:18:53 117
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人