python中print,return和yield的区别
def func1():
for i in range(1, 5):
print i def func2():
for i in range(1, 5):
return i def func3():
for i in range(1, 5):
yield i func1()
print func2()
print func3()
1.print并不会阻断程序的执行,就不用多说了。
2.func2()方法中的循环执行第一次就被return结束掉了。(后面的2、3、4就不会有返回的机会了)
3.yield你可以通俗的叫它"轮转容器",可用现实的一种实物来理解:水车,先yield来装入数据、产出generator object、使用next()来释放;好比水车转动后,车轮上的水槽装入水,随着轮子转动,被转到下面的水槽就能将水送入水道中流入田里。
def func3():
for i in range(1,5):
yield i#装入 gob = func3()#generator 类型
print next(gob)#1 释放的第一个装入的数据,(先入先出)
print next(gob)#
print next(gob)#
print next(gob)# print next(gob)#报错
个人理解,yield在python内部是当作list处理的:
def func3():
for i in range(1,5):
yield i yi = []
yi = func3()
for y in yi:
print y 1
2
3
4
python中print,return和yield的区别的更多相关文章
- Python中str()与repr()函数的区别——repr() 的输出追求明确性,除了对象内容,还需要展示出对象的数据类型信息,适合开发和调试阶段使用
Python中str()与repr()函数的区别 from:https://www.jianshu.com/p/2a41315ca47e 在 Python 中要将某一类型的变量或者常量转换为字符串对象 ...
- python中import和from...import...的区别
python中import和from...import...的区别: 只用import时,如import xx,引入的xx是模块名,而不是模块内具体的类.函数.变量等成员,使用该模块的成员时需写成xx ...
- 转发 python中file和open有什么区别
python中file和open有什么区别?2008-04-15 11:30地痞小流氓 | 分类:python | 浏览3426次python中file和open有什么区别?都是打开文件,说的越详细越 ...
- python中print后面加逗号
python中print输出一行,如果想多次输出的内容不换行,可以在print后面加逗号 例如 每个输出一行 phrase = "abcdefg" # Add your for l ...
- python中print()函数的“,”与java中System.out.print()函数中的“+”
python中的print()函数和java中的System.out.print()函数都有着打印字符串的功能. python中: print("hello,world!") 输出 ...
- Python中print字体颜色的设置
Python中print字体颜色的设置 实现过程: 终端的字符颜色是用转义序列控制的,是文本模式下的系统显示功能,和具体的语言无关. 转义序列是以ESC开头,即用\033来完成 ...
- 【313】python 中 print 函数用法总结
参考:python 中 print 函数用法总结 参考:Python print() 函数(菜鸟教程) 参考:Python 3 print 函数用法总结 目录: 字符串和数值类型 变量 格式化输出 p ...
- Python中print()函数不换行的方法
一.让print()函数不换行 在Python中,print()函数默认是换行的.但是,在很多情况下,我们需要不换行的输出(比如在算法竞赛中).那么,在Python中如何做到这一点呢? 其实很简单.只 ...
- Python中print用法里面% ,"%s 和 % d" 代表的意思
Python 编程 里面% . "%s 和 % d" 代表的意思 %s,表示格化式一个对象为字符 %d,整数 "Hello, %s"%"zhang3& ...
- Python中print和return的区别
有趣的事,Python永远不会缺席! 如需转发,请注明出处:小婷儿的python https://www.cnblogs.com/xxtalhr/p/10742671.html 一.解释 1.ret ...
随机推荐
- 极限挑战—C#100万条数据导入SQL SERVER数据库仅用4秒 (附源码)
原文:极限挑战-C#100万条数据导入SQL SERVER数据库仅用4秒 (附源码) 实际工作中有时候需要把大量数据导入数据库,然后用于各种程序计算,本实验将使用5中方法完成这个过程,并详细记录各种方 ...
- EF连接MySQL数据Web.Config配置
EF连接MySQL数据Web.Config配置 <?xml version="1.0" encoding="utf-8"?> <configu ...
- android文件下载大小和网络不一致(偏大)
今天在写一个文件下载的程序,在网上搜索了一个抄,用来下载MP3文件. 但是发现下载的MP3文件比原来的文件要大,而且MP3中会有杂音. 在Log中加入日志后发现: 从 网络流中获取的流长度为3000 ...
- nodejs之防jade
你们学习nodejs的时候,千万别用jade,我掉到它的坑里,2天没有爬出来后来用vue
- Qt Quick鼠标事件处理、键盘、计时器
在<Qt Quick 事件处理之信号与槽>中介绍了 QML 中怎样使用内建类型的信号以及怎样自己定义信号,这次我们来看看怎样处理鼠标.键盘.定时器等事件.这些时间在处理时,一般是通过信号来 ...
- HDU 1030 Delta-wave 数学题解
给出一个数字塔,然后求沿着数字之间的边走,给出两个数字,问其路径最短的长度是多少. 看似一条搜索题目,只是有一定做题经验的人都知道,这个不是搜索题,直接搜索肯定超时. 这个是依据规律计算的数学题目. ...
- 快速排序原理、复杂度分析及C语言实现
本文作者华科小涛:@http://www.cnblogs.com/hust-ghtao/,参考<算法导论>,代码借用<剑指offer> 快速排序是一种最坏情况时间复杂度为的排序 ...
- ASP.NET - cookie
下面是写cookie HttpCookie cookie = new HttpCookie("Info");//定义cookie对象以及名为Info的项 DateTime dt ...
- 百度贴吧客户端(Android)网络通信行为分析
百度贴吧安卓客户端网络通信行为分析 本文由CSDN-蚍蜉撼青松[主页:http://blog.csdn.net/howeverpf]原创,转载请注明出处! 一.实验环境与结果概述 1.1 实验环境 ...
- 数据字典的QUAN DEC类型与ABAP P型转换
转至:http://sap.iteye.com/blog/121584 今天突然想到的,肯定很多人知道,但是也肯定有一大堆人不知道. 转换公式 (n+1)/2 比如DEC定义为13位,其中3位小数 ...