python for循环

初识Python

懵懂的女人 提交于 2019-12-27 11:31:03
Python与C 、Java、C#等比较 C——>机器码——>处理器执行 Python、Java、C#——>字节码——>虚拟机上执行——>机器码——>处理器执行 简而言之,Python这门语言是由C开发而来 Python 和 C比较 对于使用:Python的类库齐全并且使用简洁,如果要实现同样的功能,Python 10行代码可以解决,C可能就需要100行甚至更多.   对于速度:Python的运行速度相较与C,慢 Python 和 Java、C#等比较 对于使用:Linux原装Python,其他语言没有;以上几门语言都有非常丰富的类库支持   对于速度:Python在速度上 可能 稍显逊色 Python的种类 Cpython Python的官方版本,使用C语言实现,使用最为广泛,CPython实现会将源文件(py文件)转换成字节码文件(pyc文件),然后运行在Python虚拟机上。 Jyhton Python的Java实现,Jython会将Python代码动态编译成Java字节码,然后在JVM上运行。 IronPython Python的C#实现,IronPython将Python代码编译成C#字节码,然后在CLR上运行。(与Jython类似) PyPy(特殊) Python实现的Python,将Python的字节码字节码再编译成机器码。 注:PyPy

python第一周语言基础

拥有回忆 提交于 2019-12-27 09:26:31
控制语句 if语句,当条件成立时运行语句块。经常与else, elif(相当于else if) 配合使用。 for语句,遍历列表、字符串、字典、集合等 迭代器 ,依次处理迭代器中的每个元素。 while语句,当条件为真时,循环运行语句块。 try语句,与except,finally配合使用处理在程序运行中出现的异常情况。 class语句,用于定义类型。 def语句,用于定义函数和类型的方法。 pass语句,表示此行为空,不运行任何操作。 assert语句,用于程序调试阶段时测试运行条件是否满足。 with语句,Python2.6以后定义的语法,在一个场景中运行语句块。比如,运行语句块前加密,然后在语句块运行退出后解密。 yield语句,在迭代器函数内使用,用于返回一个元素。自从Python 2.5版本以后。这个语句变成一个运算符。 raise语句,制造一个错误。 import语句,导入一个模块或包。 from import语句,从包导入模块或从模块导入某个对象。 import as语句,将导入的对象赋值给一个变量。 in语句,判断一个对象是否在一个字符串/列表/元组里。 表达式 Python的表达式写法与C/C++类似。只是在某些写法有所差别。 主要的 算术运算符 与C/C++类似。+, -, *, /, //, **, ~, %分别表示加法或者取正、减法或者取负、乘法、除法、整除

Python:asyncio模块学习

匆匆过客 提交于 2019-12-27 08:32:48
python asyncio 网络模型有很多中,为了实现高并发也有很多方案,多线程,多进程。无论多线程和多进程,IO的调度更多取决于系统,而协程的方式,调度来自用户,用户可以在函数中yield一个状态。使用协程可以实现高效的并发任务。Python的在3.4中引入了协程的概念,可是这个还是以生成器对象为基础,3.5则确定了协程的语法。下面将简单介绍asyncio的使用。实现协程的不仅仅是asyncio,tornado和gevent都实现了类似的功能。 event_loop 事件循环:程序开启一个无限的循环,程序员会把一些函数注册到事件循环上。当满足事件发生的时候,调用相应的协程函数。 coroutine 协程:协程对象,指一个使用async关键字定义的函数,它的调用不会立即执行函数,而是会返回一个协程对象。协程对象需要注册到事件循环,由事件循环调用。 task 任务:一个协程对象就是一个原生可以挂起的函数,任务则是对协程进一步封装,其中包含任务的各种状态。 future: 代表将来执行或没有执行的任务的结果。它和task上没有本质的区别 async/await 关键字:python3.5 用于定义协程的关键字,async定义一个协程,await用于挂起阻塞的异步调用接口。 上述的概念单独拎出来都不好懂,比较他们之间是相互联系,一起工作。下面看例子,再回溯上述概念,更利于理解。

python之迭代器和生成器

天大地大妈咪最大 提交于 2019-12-27 07:30:34
一、迭代器协议 1、什么是迭代器协议 (1)、迭代器协议指对象必须提供一个next方法,执行该方法要么返回迭代中的下一项, 要么就引起一个StopIteration异常,以终止迭代(只能往后奏不能往前走) (2)、可迭代对象:实现了迭代器协议的对象(如何实现:对象内部定义了一个__iter__()方法) (3)、协议是一种约定,可迭代对象实现了迭代器协议,python的内部工具(for循环、sum、min、max函数) 使用迭代器协议访问对象 二、for循环机制 for循环的本质:循环所有对象,全都是使用迭代器协议 备注:for循环的本质就是遵循迭代器协议去访问对象,那么for循环的对象可定都是迭代器了啊,么错, 既然这样,for循环可以遍历(字符串、列表、元组、字典、集合、文件对象),那这些类型的数据肯定都是可迭代对象啊?但是,为什么我定义了一个列表l=[1,2,3,4,4]没有next()方法? ——字符串、列表、元组、字典、集合、文件对象这些都不是可迭代对象,只不过在for循环中,调用了他们 内部的__iter__方法,把他们变成了可迭代对象 ———for循环调用可迭代对象的__next__方法进行取值,而且for循环会捕捉Stopiteration异常,以终止迭代 1、for循环工作机制的模拟 1 l = [1,2,3] #将列表赋值为l 2 # for i in l:

Python-迭代器和生成器

▼魔方 西西 提交于 2019-12-27 07:25:23
一、递归和迭代:   1、递归(问路的案例)     递归算法是自己调用自己的过程   2、迭代(父生子,子生孙)       更新换代 二、迭代器协议:   1、迭代器协议:对象必须提供一个next方法,执行该方法要么返回迭代中的下一项,要么就触发StopTteration异常,已终止迭代(只能往下走,不能往上走)   2、可迭代对象:实现了迭代器协议的对象(如何实现:对象内部定义一个__iter__()方法)   3、协议是一种约定,可迭代对象实现了迭代器协议,Python的内部工具(for循环,sum,max,min函数等)使用迭代器协议访问对象   4、for循环的本质就是遵循迭代器协议取访问对象,那么for循环的对象肯定都是迭代器。   5、不可迭代对象:字符串,列表,元组,字典,集合,文件对象。只不过for循环时,调用了他们的内部__iter__()方法,把他们变成了可迭代对象     -注-       1、生成器是可迭代对象       2、实现了延迟计算,看内存(按需执行)         3、生成器本质和其他类型一样,都是实现了迭代器协议,只不过生成器是一边计算一边生成,从而节省内存空间,其余的可迭代对象没有这个功能 三、迭代器:     1、遵循迭代器协议的访问方式: 1 x='hello' # 非可迭代对象 2 # print(dir(x)) 3 iter

Python的迭代器与生成器

喜你入骨 提交于 2019-12-27 07:12:10
Python中的生成器和迭代器方便好用,但是平时对生成器和迭代器的特性掌握的不是很到位,今天将这方面的知识整理一下。 迭代器 为了更好的理解迭代器和生成,我们需要简单的回顾一下迭代器协议的概念。 迭代器协议 1.迭代器协议是指:对象必须提供一个next方法,执行该方法要么返回迭代中的下一项,要么就引起一个StopIteration异常,以终止迭代 (只能往后走不能往前退) 2.可迭代对象:实现了迭代器协议的对象(如何实现:对象内部定义一个__iter__()方法) 3.协议是一种约定,可迭代对象实现了迭代器协议,python的内部工具(如for循环,sum,min,max函数等)使用迭代器协议访问对象。 for循环 for循环的本质:循环所有对象,全都是使用迭代器协议。 for循环就是基于迭代器协议提供了一个统一的可以遍历所有对象的方法,即在遍历之前,先调用对象的__iter__方法将其转换成一个迭代器,然后使用迭代器协议去实现循环访问,这样所有的对象就都可以通过for循环来遍历了, 列表,字符串,元组,字典,集合,文件对象等本质上来说都不是可迭代对象,在使用for循环的时候内部是先调用他们内部的_iter_方法,使他们变成了可迭代对象,然后在使用可迭代对象的_next_方法依次循环元素,当元素循环完时,会触发StopIteration异常,for循环会捕捉到这种异常,终止迭代。

Python3学习(1)-基础篇

醉酒当歌 提交于 2019-12-27 05:30:59
Python3学习(1)-基础篇 Python3学习(2)-中级篇 Python3学习(3)-高级篇 安装(MAC) 直接运行: brew install python3 输入:python3 --version,查看验证安装是否成功 (一定是 python3 ) Python解释器 CPython 官网下载的安装包中,会自带此解释器。也是使用最多的解释器。使用C编写的解释器 IPython使用 在CPython的基础上增强了交互的解释器,执行Python代码与CPython一致。 PyPy 使用JIT技术,对Python进行动态编译,从而提升Python的执行速度。 Jython 运行在Java平台上的Python解释器,把Python编译成Java的字节码 IronPython 运行与.net平台上的Python解释器,把Python编译成.net的字节码 编写第一个Python程序且运行Python程序 新建一个文件“hello.py”,内容(建议使用工具: Sublime Text 、 Notepad++ ): print('Hello,world!') 控制台中进入此文件目录,输入:python3 hello.py python3 hello.py:支持Cpython解释器来直接执行hello.py中的源代码文件 Python基础 数据类型 整数

python笔记——for和while循环、if条件判断、input输入

血红的双手。 提交于 2019-12-27 05:26:04
循环 要计算1+2+3,我们可以直接写表达式: >>> 1 + 2 + 3 6 要计算1+2+3+...+10,勉强也能写出来。 但是,要计算1+2+3+...+10000,直接写表达式就不可能了。 为了让计算机能计算成千上万次的重复运算,我们就需要循环语句。 Python的循环有两种,一种是for...in循环,依次把list或tuple中的每个元素迭代出来,看例子: names = ['Michael', 'Bob', 'Tracy'] for name in names: print(name) 执行这段代码,会依次打印 names 的每一个元素: Michael Bob Tracy 所以 for x in ... 循环就是把每个元素代入变量 x ,然后执行缩进块的语句。 再比如我们想计算1-10的整数之和,可以用一个 sum 变量做累加: sum = 0 for x in [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]: sum = sum + x print(sum) 如果要计算1-100的整数之和,从1写到100有点困难,幸好Python提供一个 range() 函数,可以生成一个整数序列,再通过 list() 函数可以转换为list。比如 range(5) 生成的序列是从0开始小于5的整数: >>> list(range(5)) [0, 1, 2, 3

Python之 continue继续循环和多重循环

醉酒当歌 提交于 2019-12-27 05:25:48
Python之 continue继续循环 在循环过程中,可以用break退出当前循环,还可以用 continue跳过后续循环代码,继续下一次循环。 假设我们已经写好了利用for循环计算平均分的代码: L = [75, 98, 59, 81, 66, 43, 69, 85] sum = 0.0 n = 0 for x in L: sum = sum + x n = n + 1 print sum / n 现在老师只想统计及格分数的平均分,就要把 x < 60 的分数剔除掉,这时,利用 continue,可以做到当 x < 60的时候,不继续执行循环体的后续代码,直接进入下一次循环: for x in L: if x < 60: continue sum = sum + x Python之 多重循环 在循环内部,还可以嵌套循环,我们来看一个例子: for x in ['A', 'B', 'C']: for y in ['1', '2', '3']: print x + y x 每循环一次, y 就会循环 3 次,这样,我们可以打印出一个全排列: A1 A2 A3 B1 B2 B3 C1 C2 C3 对100以内的两位数,请使用一个两重循环打印出所有十位数数字比个位数数字小的数,例如,23(2 < 3)参考代码:for x in [ 1,2,3,4,5,6,7,8,9 ]: for y

Python语法规则---(条件语句、循环语句)study Python 8day yes

戏子无情 提交于 2019-12-27 03:59:32
Python 条件语句 Python条件语句是通过一条或多条语句的执行结果(True或者False)来决定执行的代码块。 可以通过下图来简单了解条件语句的执行过程: Python程序语言指定任何非0和非空(null)值为true,0 或者 null为false。 Python 编程中 if 语句用于控制程序的执行,基本形式为: if 判断条件: 执行语句…… else: 执行语句…… 其中"判断条件"成立时(非零),则执行后面的语句,而执行内容可以多行,以缩进来区分表示同一范围。 else 为可选语句,当需要在条件不成立时执行内容则可以执行相关语句。 Gif 演示: 具体例子如下: 实例 #!/usr/bin/python # -*- coding: UTF-8 -*- # 例1:if 基本用法 flag = False name = 'luren' if name == 'python': # 判断变量是否为 python flag = True # 条件成立时设置标志为真 print 'welcome boss' # 并输出欢迎信息 else: print name # 条件不成立时输出变量名称 输出结果为: luren # 输出结果 if 语句的判断条件可以用>(大于)、<(小于)、==(等于)、>=(大于等于)、<=(小于等于)来表示其关系。 当判断条件为多个值时