迭代计算

Python常见的高级特性

廉价感情. 提交于 2019-12-05 03:18:45
Python高级特性(迭代器&生成器等) 正负索引就不提及了,都是比较基本的用法。 1234567891011121314151617181920212223242526272829303132333435363738 a = list(range(11))a[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]a[2:8][2, 3, 4, 5, 6, 7]#负数索引切片a[-4:-2][7, 8]#指定步长切片a[::2][0, 2, 4, 6, 8, 10]>>> a[::-2][10, 8, 6, 4, 2, 0]#列表赋值切片>>> b = [1,2,3,4,5]>>> b[2:3] = [0,0]>>> b[1, 2, 0, 0, 4, 5]>>> b[1:1] = [8,9]>>> b[1, 8, 9, 2, 0, 0, 4, 5]>>> b[1:-1] = []>>> b[1, 5]#用slice()函数切片>>> a = list(range(6))>>> a[0, 1, 2, 3, 4, 5]>>> sa = slice(-3,None)>>> saslice(-3, None, None)>>> a[sa][3, 4, 5] 迭代 基本迭代 给定 list 或 tuple 可以通过 for 循环来遍历,这种遍历称为 迭代 (iteration)

总复习知识点day18

和自甴很熟 提交于 2019-12-05 02:09:54
总复习: 1.计算机核心组件: - CPU - 内存 - 硬盘 - 输入设备: 键盘、鼠标 - 输出设备: 显示器、音响.. 2.python解释器: - 将人类编写好的代码转成机器能看得懂的字符。 - 解释器的作用: 帮你执行python代码。 3.pycharm编辑器: - 编辑器的作用: 可以更好的编写python代码,编辑器内部有很多强大的功能。 能够快速编写代码。 4.编程语言分类: - 机器语言(机器能直接看懂): 比如: 01010101 - 汇编语言(让人能看懂一点点): 比如: a ---> 01101001 - 高级语言(让人类能直接看懂): 比如: print('hello') 高级语言是更接近于人类的语言。 - 解释型: 一遍解释(翻译)一遍执行, 类似于同声传译。 优点: 开发效率高 可跨平台,一份代码可以多个平台使用。 缺点: 执行效率相比于编译型低。 - 编译型: 先一次性编译然后再执行,类似于 "有道翻译"。 优点: 执行效率高。 稳定义 缺点: 开发效率相比于解释型语言要低。 不可跨平台。 - 解释型语言的种类: python: 10级别 c# : java: 8 php: 3 - 编译型语言的种类: C c++ go 5.变量: 变量指的是可变化的量。 - 变量名: 可以与变量值绑定关系,通过变量名可以访问变量值。 - 相当于身份证ID号 -

遗传算法(GA)解决TSP问题

给你一囗甜甜゛ 提交于 2019-12-05 00:27:50
              遗传算法解决TSP问题 遗传算法 遗传算法的基本原理是通过作用于染色体上的基因寻找好的染色体来求解问题,它需要对算法所产生的每个染色体进行评价,并基于适应度值来选择染色体,使适应性好的染色体有更多的繁殖机会,在遗传算法中,通过随机方式产生若干个所求解问题的数字编码,即染色体,形成初始种群;通过适应度函数给每个个体一个数值评价,淘汰低适应度的个体,选择高适应度的个体参加遗传操作,经过遗产操作后的个体集合形成下一代新的种群,对这个新的种群进行下一轮的进化。 TSP问题 TSP问题即旅行商问题,经典的TSP可以描述为:一个商品推销员要去若干个城市推销商品,该推销员从一个城市出发,需要经过所有城市后,回到出发地。应如何选择行进路线,以使总的行程最短。从图论的角度来看,该问题实质是在一个带权完全无向图中,找一个权值最小的哈密尔顿回路。 遗传算法解决TSP问题 概念介绍: 种群 ==> 可行解集 个体 ==> 可行解 染色体 ==> 可行解的编码 基因 ==> 可行解编码的分量 基因形式 ==> 遗传编码 适应度 ==> 评价的函数值(适应度函数) 选择 ==> 选择操作 交叉 ==> 编码的交叉操作 变异 ==> 可行解编码的变异 遗传操作:就包括优选适应性强的个体的“选择”;个体间交换基因产生新个体的“交叉”;个体间的基因突变而产生新个体的“变异”

遗传算法与蚁群算法结合

两盒软妹~` 提交于 2019-12-05 00:24:03
遗传算法 1、基本思想 2、算法原理 3、代码实现 4、结果截图 5、总结 1·基本思想 吸取两个算法的优点,优缺互补,克服两个算法的缺点,利用了遗传算法的快速时间效率,优于蚂蚁算法的时间效率。并且求解精度效率优于遗传算法。这样就提高了两个算法结合的算法时间效率和求解精度。 2、算法原理 这个算法的原理是先利用遗传算法的快速性、全局收敛性和随机性求出结果,结果产生有关问题的初始信息素分布,遗传算法执行完在运用蚁群算法,在一定初始信息素分布的情况下,充分利用蚁群算法并行性、正反馈性、求解精度效率高的特点。 3、代码实现 %main clear; clc; %%%%%%%%%%%%%%%输入参数%%%%%%%% N=50; %%城市的个数 M=100; %%种群的个数 ITER=500; %%迭代次数 %C_old=C; m=2; %%适应值归一化淘汰加速指数 Pc=0.8; %%交叉概率 Pmutation=0.05; %%变异概率 %%生成城市的坐标 pos=randn(N,2); %%生成城市之间距离矩阵 D=zeros(N,N); for i=1:N for j=i+1:N dis=(pos(i,1)-pos(j,1)).^2+(pos(i,2)-pos(j,2)).^2; D(i,j)=dis^(0.5); D(j,i)=D(i,j); end end %%生成初始群体

垃圾回收机制

a 夏天 提交于 2019-12-05 00:08:20
[ ] ```python https://www.cnblogs.com/zhangchaocoming/p/11192436.html https://www.cnblogs.com/liangmingshen/p/10970534.html 可迭代对象 内置有__iter__方法的对象,例如字符串,列表,字典,元组等等都是可迭代对象 迭代器对象 既内置有__next__方法的对象,执行迭代器__next__方法可以不依赖索引取值 又内置有__iter__方法的对象,执行迭代器__iter__方法得到的仍然是迭代器本身   所以,如果列表元素可以按照某种算法推算出来,那我们是否可以在循环的过程中不断推算出后续的元素呢?这样就不必创建完整的list,从而节省大量的空间,在Python中,这种一边循环一边计算的机制,称为生成器:generator   生成器是一个特殊的程序,可以被用作控制循环的迭代行为,python中生成器是迭代器的一种,使用yield返回值函数,每次调用yield会暂停,而可以使用next()函数和send()函数恢复生成器。   生成器类似于返回值为数组的一个函数,这个函数可以接受参数,可以被调用,但是,不同于一般的函数会一次性返回包括了所有数值的数组,生成器一次只能产生一个值,这样消耗的内存数量将大大减小,而且允许调用函数可以很快的处理前几个返回值

Python-基础-常用术语对照表

南笙酒味 提交于 2019-12-04 23:53:33
下面内容主要摘抄自 python 官网, https://docs.python.org/3.7/glossary.html#glossary ,部分内容有删减。 2to3 一个将 Python 2.x 代码转换为 Python 3.x 代码的工具,能够处理大部分通过解析源码并遍历解析树可检测到的不兼容问题。 2to3 包含在标准库中,模块名为 lib2to3;并提供一个独立入口点 Tools/scripts/2to3。参见 2to3 - 自动将 Python 2 代码转为 Python 3 代码。 因为官方将在2020年不再支持 Python 2.x, 在遇到没有 Python 2.X 版本 的code 的时候,可以尝试使用这个工具将代码转化成Python 的版本。 abstract base class -- 抽象基类 抽象基类简称 ABC,是对 duck-typing 的补充,它提供了一种定义接口的新方式,相比之下其他技巧例如 hasattr() 显得过于笨拙或有微妙错误(例如使用 魔术方法)。ABC 引入了虚拟子类,这种类并非继承自其他类,但却仍能被 isinstance() 和 issubclass() 所认可;详见 abc 模块文档。 Python 自带许多内置的 ABC 用于实现数据结构(在 collections.abc 模块中)、数字(在 numbers 模块中)

Python基础

家住魔仙堡 提交于 2019-12-04 20:36:21
python简介 Python 是一个高层次的结合了解释性、编译性、互动性和面向对象的脚本语言。 Python 的设计具有很强的可读性,相比其他语言经常使用英文关键字,其他语言的一些标点符号,它具有比其他语言更有特色语法结构。 Python 是一种解释型语言: 这意味着开发过程中没有了编译这个环节。类似于PHP和Perl语言。 Python 是交互式语言: 这意味着,您可以在一个 Python 提示符 >>> 后直接执行代码。 Python 是面向对象语言: 这意味着Python支持面向对象的风格或代码封装在对象的编程技术。 Python 是初学者的语言:Python 对初级程序员而言,是一种伟大的语言,它支持广泛的应用程序开发,从简单的文字处理到 WWW 浏览器再到游戏。 Python 特点 易于学习:Python有相对较少的关键字,结构简单,和一个明确定义的语法,学习起来更加简单。 易于阅读:Python代码定义的更清晰。 易于维护:Python的成功在于它的源代码是相当容易维护的。 一个广泛的标准库:Python的最大的优势之一是丰富的库,跨平台的,在UNIX,Windows和Macintosh兼容很好。 互动模式:互动模式的支持,您可以从终端输入执行代码并获得结果的语言,互动的测试和调试代码片断。 可移植:基于其开放源代码的特性,Python已经被移植(也就是使其工作

迭代器与生成器

末鹿安然 提交于 2019-12-04 20:21:54
[ ] ```python https://www.cnblogs.com/zhangchaocoming/p/11192436.html https://www.cnblogs.com/liangmingshen/p/10970534.html 可迭代对象 内置有__iter__方法的对象,例如字符串,列表,字典,元组等等都是可迭代对象 迭代器对象 既内置有__next__方法的对象,执行迭代器__next__方法可以不依赖索引取值 又内置有__iter__方法的对象,执行迭代器__iter__方法得到的仍然是迭代器本身 通过列表生成式,我们可以直接创建一个列表,但是,受到内存限制,列表容量肯定是有限的,而且创建一个包含100万个元素的列表,不仅占用很大的存储空间,如果我们仅仅需要访问前面几个元素,那后面绝大多数元素占用的空间都白白浪费了。   所以,如果列表元素可以按照某种算法推算出来,那我们是否可以在循环的过程中不断推算出后续的元素呢?这样就不必创建完整的list,从而节省大量的空间,在Python中,这种一边循环一边计算的机制,称为生成器:generator   生成器是一个特殊的程序,可以被用作控制循环的迭代行为,python中生成器是迭代器的一种,使用yield返回值函数,每次调用yield会暂停,而可以使用next()函数和send()函数恢复生成器。  

Python的内置函数

狂风中的少年 提交于 2019-12-04 18:21:09
Python内置函数: 内置函数???什么是内置函数???内置函数就是Python给你提供的函数,能直接使用比如:print,input等等,他就是所谓的Python内置函数,Python版本3.7.3一共有69个每个版本的内置函数的个数都有可能不一样,因为会更新 Python内置函数如下: 详细见: https://www.processon.com/mindmap/5dcd4e34e4b03d5b5a41b042 1.作用域相关(2): locals() 返回当前作用域中的名字 globals() 返回全局作用域中的名字 2.迭代器相关(3): range() 生成数据 next() 迭代器向下执行一次,内部实际使用了__next__()方法返回迭代器的下一个项目 iter() 获取迭代器,内部实际使用的是__iter__()方法来获取迭代器 3.字符串类型代码的执行(3): eval() 执行字符串类型的代码,并返回最终结果 exec() 执行字符串类型的代码 compile() 将字符串类型的代码变异,代码对象能够通过exec语句来执行或者eval()进行求值有返回值的字符串形式的代码用eval(),没有返回值的字符串形式的代码用exec()一般很少用到compile() 4.输入和输出相关(2): input() 获取⽤用户输入的内容 print() 打印输出 5

引用 JAVA标签库JSTL-EL表达式介绍使用配置手册

ⅰ亾dé卋堺 提交于 2019-12-04 17:38:48
引用 【轰隆隆】 的 JAVA标签库JSTL-EL表达式介绍使用配置手册 JSP 标准标记库(JSP Standard Tag Library,JSTL)是一个实现 Web 应用程序中常见的通用功能的定制标记库集,这些功能包括迭代和条件判断、数据管理格式化、XML 操作以及数据库访问。 JSTL是一个不断完善的开放源代码的JSP标签库,是由apache的jakarta小组来维护的。JSTL只能运行在支持JSP1.2和Servlet2.3规范的容器上,如tomcat 4.x。但是在即将推出的JSP 2.0中是作为标准支持的。 JSTL目前的最新版本为1.02,最终发布版为1.0。JSTL包含两个部分:标签库和EL(Expression Language表达式语言)语言。标签库目前支持四种标签: 标签 URI 前缀 示例 Core http://java.sun.com/jstl/core c XML processing http://java.sun.com/jstl/xml x I18N capable formatting http://java.sun.com/jstl/fmt fmt Database access (SQL) http://java.sun.com/jstl/sql sql Core支持JSP中的一些基本的操作; XML