精华内容
下载资源
问答
  • Python循环对象 ,函数

    千次阅读 2015-01-30 00:43:48
    谢谢!   这一讲的主要目的是为了大家在读...循环对象的并不是随着Python的诞生就存在的,但它的发展迅速,特别是Python 3x的时代,循环对象正在成为循环的标准形式。   什么是循环对象 循环对象是这

    作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明。谢谢!

     

    这一讲的主要目的是为了大家在读Python程序的时候对循环对象有一个基本概念。

    循环对象的并不是随着Python的诞生就存在的,但它的发展迅速,特别是Python 3x的时代,循环对象正在成为循环的标准形式。

     

    什么是循环对象

    循环对象是这样一个对象,它包含有一个next()方法(__next__()方法,在python 3x中), 这个方法的目的是进行到下一个结果,而在结束一系列结果之后,举出StopIteration错误

    当一个循环结构(比如for)调用循环对象时,它就会每次循环的时候调用next()方法,直到StopIteration出现,for循环接收到,就知道循环已经结束,停止调用next()。

    假设我们有一个test.txt的文件:

    1234
    abcd
    efg

    我们运行一下python命令行:

    >>>f = open('test.txt')

    >>>f.next()

    >>>f.next()

    ...


    不断输入f.next(),直到最后出现StopIteration

    open()返回的实际上是一个循环对象,包含有next()方法。而该next()方法每次返回的就是新的一行的内容,到达文件结尾时举出StopIteration。这样,我们相当于手工进行了循环。

    自动进行的话,就是:

    for line in open('test.txt'):
        print line

    在这里,for结构自动调用next()方法,将该方法的返回值赋予给line。循环知道出现StopIteration的时候结束。

     

    相对于序列,用循环对象的好处在于:不用在循环还没有开始的时候,就生成好要使用的元素。所使用的元素可以在循环过程中逐次生成。这样,节省了空间,提高了效率,编程更灵活。

     

    迭代器

    从技术上来说,循环对象和for循环调用之间还有一个中间层,就是要将循环对象转换成迭代器(iterator)。这一转换是通过使用iter()函数实现的。但从逻辑层面上,常常可以忽略这一层,所以循环对象和迭代器常常相互指代对方。

     

    生成器

    生成器(generator)的主要目的是构成一个用户自定义的循环对象。

    生成器的编写方法和函数定义类似,只是在return的地方改为yield。生成器中可以有多个yield。当生成器遇到一个yield时,会暂停运行生成器,返回yield后面的值。当再次调用生成器的时候,会从刚才暂停的地方继续运行,直到下一个yield。生成器自身又构成一个循环器,每次循环使用一个yield返回的值。

     

    下面是一个生成器:

    def gen():
        a = 100
        yield a
        a = a*8
        yield a
        yield 1000

    该生成器共有三个yield, 如果用作循环器时,会进行三次循环。

    for i in gen():
        print i

     

    再考虑如下一个生成器:

    def gen():
        for i in range(4):
            yield i

    它又可以写成生成器表达式(Generator Expression):

    G = (x for x in range(4))

    生成器表达式是生成器的一种简便的编写方式。读者可进一步查阅。

     

    表推导

    表推导(list comprehension)是快速生成表的方法。它的语法简单,很有实用价值。

     

    假设我们生成表L:

    L = []
    for x in range(10):
        L.append(x**2)

    以上产生了表L,但实际上有快捷的写法,也就是表推导的方式:

    L = [x**2 for x in range(10)]

    这与生成器表达式类似,只不过用的是中括号

    (表推导的机制实际上是利用循环对象,有兴趣可以查阅。)

     

    练习 下面的表推导会生成什么?

    xl = [1,3,5]
    yl = [9,12,13]
    L  = [ x**2 for (x,y) in zip(xl,yl) if y > 10]

     

    总结

    循环对象

    生成器

    表推导

    函数的定义

    首先,我们要定义一个函数, 以说明这个函数的功能。

    def square_sum(a,b):
        c = a**2 + b**2
        return c

    这个函数的功能是求两个数的平方和。

    首先,def,这个关键字通知python:我在定义一个函数。square_sum是函数名。

    括号中的a, b是函数的参数,是对函数的输入。参数可以有多个,也可以完全没有(但括号要保留)。

    我们已经在循环和选择中见过冒号缩进来表示的隶属关系。

    c = a**2 + b**2        # 这一句是函数内部进行的运算

    return c               # 返回c的值,也就是输出的功能。Python的函数允许不返回值,也就是不用return。

    return可以返回多个值,以逗号分隔。相当于返回一个tuple(定值表)。

    return a,b,c          # 相当于 return (a,b,c)

     

    在Python中,当程序执行到return的时候,程序将停止执行函数内余下的语句。return并不是必须的,当没有return, 或者return后面没有返回值时,函数将自动返回None。None是Python中的一个特别的数据类型,用来表示什么都没有,相当于C中的NULL。None多用于关键字参数传递的默认值。

     

    函数调用和参数传递

    定义过函数后,就可以在后面程序中使用这一函数

    print square_sum(3,4)

    Python通过位置,知道3对应的是函数定义中的第一个参数a, 4对应第二个参数b,然后把参数传递给函数square_sum。

    (Python有丰富的参数传递方式,还有关键字传递、表传递、字典传递等,基础教程将只涉及位置传递)

    函数经过运算,返回值25, 这个25被print打印出来。

     

    我们再看下面两个例子

    复制代码
    a = 1
    
    def change_integer(a):
        a = a + 1
        return a
    
    print change_integer(a)
    print a
    
    #===(Python中 "#" 后面跟的内容是注释,不执行 )
    
    b = [1,2,3]
    
    def change_list(b):
        b[0] = b[0] + 1
        return b
    
    print change_list(b)
    print b
    复制代码

    第一个例子,我们将一个整数变量传递给函数,函数对它进行操作,但原整数变量a不发生变化

    第二个例子,我们将一个表传递给函数,函数进行操作,原来的表b发生变化

    对于基本数据类型的变量,变量传递给函数后,函数会在内存中复制一个新的变量,从而不影响原来的变量。(我们称此为值传递

    但是对于表来说,表传递给函数的是一个指针,指针指向序列在内存中的位置,在函数中对表的操作将在原有内存中进行,从而影响原有变量。 (我们称此为指针传递

     

    总结

    def function_name(a,b,c):
        statement
        return something  # return不是必须的

    函数的目的: 提高程序的重复可用性。

    return     None

    通过位置,传递参数。

    基本数据类型的参数:值传递

    表作为参数:指针传递

     

    练习:

    写一个判断闰年的函数,参数为年、月、日。若是是闰年,返回True




    展开全文
  • Python进阶06 循环对象

    2015-04-01 10:11:46
    循环对象的并不是随着Python的诞生就存在的,但它的发展迅速,特别是Python 3x的时代,循环对象正在成为循环的标准形式。   什么是循环对象 循环对象是这样一个对象,它包含有一个next()方法(__next

    作者:Vamei 出处:http://www.cnblogs.com/vamei


    这一讲的主要目的是为了大家在读Python程序的时候对循环对象有一个基本概念。

    循环对象的并不是随着Python的诞生就存在的,但它的发展迅速,特别是Python 3x的时代,循环对象正在成为循环的标准形式。

     

    什么是循环对象

    循环对象是这样一个对象,它包含有一个next()方法(__next__()方法,在python 3x中), 这个方法的目的是进行到下一个结果,而在结束一系列结果之后,举出StopIteration错误

    当一个循环结构(比如for)调用循环对象时,它就会每次循环的时候调用next()方法,直到StopIteration出现,for循环接收到,就知道循环已经结束,停止调用next()。

    假设我们有一个test.txt的文件:

    1234
    abcd
    efg

    我们运行一下python命令行:

    >>>f = open('test.txt')

    >>>f.next()

    >>>f.next()

    ...


    不断输入f.next(),直到最后出现StopIteration

    open()返回的实际上是一个循环对象,包含有next()方法。而该next()方法每次返回的就是新的一行的内容,到达文件结尾时举出StopIteration。这样,我们相当于手工进行了循环。

    自动进行的话,就是:

    for line in open('test.txt'):
        print line

    在这里,for结构自动调用next()方法,将该方法的返回值赋予给line。循环知道出现StopIteration的时候结束。

     

    相对于序列,用循环对象的好处在于:不用在循环还没有开始的时候,就生成好要使用的元素。所使用的元素可以在循环过程中逐次生成。这样,节省了空间,提高了效率,编程更灵活。

     

    迭代器

    从技术上来说,循环对象和for循环调用之间还有一个中间层,就是要将循环对象转换成迭代器(iterator)。这一转换是通过使用iter()函数实现的。但从逻辑层面上,常常可以忽略这一层,所以循环对象和迭代器常常相互指代对方。

     

    生成器

    生成器(generator)的主要目的是构成一个用户自定义的循环对象。

    生成器的编写方法和函数定义类似,只是在return的地方改为yield。生成器中可以有多个yield。当生成器遇到一个yield时,会暂停运行生成器,返回yield后面的值。当再次调用生成器的时候,会从刚才暂停的地方继续运行,直到下一个yield。生成器自身又构成一个循环器,每次循环使用一个yield返回的值。

     

    下面是一个生成器:

    def gen():
        a = 100
        yield a
        a = a*8
        yield a
        yield 1000

    该生成器共有三个yield, 如果用作循环器时,会进行三次循环。

    for i in gen():
        print i

     

    再考虑如下一个生成器:

    def gen():
        for i in range(4):
            yield i

    它又可以写成生成器表达式(Generator Expression):

    G = (x for x in range(4))

    生成器表达式是生成器的一种简便的编写方式。读者可进一步查阅。

     

    表推导

    表推导(list comprehension)是快速生成表的方法。它的语法简单,很有实用价值。

     

    假设我们生成表L:

    L = []
    for x in range(10):
        L.append(x**2)

    以上产生了表L,但实际上有快捷的写法,也就是表推导的方式:

    L = [x**2 for x in range(10)]

    这与生成器表达式类似,只不过用的是中括号

    (表推导的机制实际上是利用循环对象,有兴趣可以查阅。)

     

    练习 下面的表推导会生成什么?

    xl = [1,3,5]
    yl = [9,12,13]
    L  = [ x**2 for (x,y) in zip(xl,yl) if y > 10]

    展开全文
  • vue v-for 循环对象

    万次阅读 2017-11-09 19:16:52
    vue也是可以循环对象的。例子如下<!DOCTYPE html> <title>Document (val, key, index) in list">{{key}}--{

    vue也是可以循环对象的。例子如下

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Document</title>
    </head>
    <body>
        <div id="app">
            <p v-for="(val, key, index) in list">{{key}}--{{val}}</p>
        </div>
    
        <script src='vue.js'></script>
        <script>
            var obj=
            new Vue({
                el: '#app',
                data:{
                    list:{
                        'id':1,
                        'user':'superadmin',
                        'firstTime':'2017-07-11'
                    }
                }
            })
        </script>
    </body>
    </html>

    渲染到页面的样子

    id--1
    
    user--superadmin
    
    firstTime--2017-07-11
    展开全文
  • 谢谢!...循环对象的并不是随着Python的诞生就存在的,但它的发展迅速,特别是Python 3x的时代,循环对象正在成为循环的标准形式。 什么是循环对象 循环对象是这样一个对象,它包含有一个next()...

    作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明。谢谢!

    这一讲的主要目的是为了大家在读Python程序的时候对循环对象有一个基本概念。

    循环对象的并不是随着Python的诞生就存在的,但它的发展迅速,特别是Python 3x的时代,循环对象正在成为循环的标准形式。

    什么是循环对象

    循环对象是这样一个对象,它包含有一个next()方法(next()方法,在python 3x中), 这个方法的目的是进行到下一个结果,而在结束一系列结果之后,举出StopIteration错误

    当一个循环结构(比如for)调用循环对象时,它就会每次循环的时候调用next()方法,直到StopIteration出现,for循环接收到,就知道循环已经结束,停止调用next()。

    假设我们有一个test.txt的文件:

    1234
    abcd
    efg

    我们运行一下python命令行:

    >>>f = open('test.txt')
    
    >>>f.next()
    
    >>>f.next()

    不断输入f.next(),直到最后出现StopIteration

    open()返回的实际上是一个循环对象,包含有next()方法。而该next()方法每次返回的就是新的一行的内容,到达文件结尾时举出StopIteration。这样,我们相当于手工进行了循环。

    自动进行的话,就是:

    for line in open('test.txt'):
        print line

    在这里,for结构自动调用next()方法,将该方法的返回值赋予给line。循环知道出现StopIteration的时候结束。

    相对于序列,用循环对象的好处在于:不用在循环还没有开始的时候,就生成好要使用的元素。所使用的元素可以在循环过程中逐次生成。这样,节省了空间,提高了效率,编程更灵活。

    迭代器

    从技术上来说,循环对象和for循环调用之间还有一个中间层,就是要将循环对象转换成迭代器(iterator)。这一转换是通过使用iter()函数实现的。但从逻辑层面上,常常可以忽略这一层,所以循环对象和迭代器常常相互指代对方。

    生成器

    生成器(generator)的主要目的是构成一个用户自定义的循环对象。

    生成器的编写方法和函数定义类似,只是在return的地方改为yield。生成器中可以有多个yield。当生成器遇到一个yield时,会暂停运行生成器,返回yield后面的值。当再次调用生成器的时候,会从刚才暂停的地方继续运行,直到下一个yield。生成器自身又构成一个循环器,每次循环使用一个yield返回的值。

    下面是一个生成器:

    def gen():
        a = 100
        yield a
        a = a*8
        yield a
        yield 1000

    该生成器共有三个yield, 如果用作循环器时,会进行三次循环。

    for i in gen():
        print i

    再考虑如下一个生成器:

    def gen():
        for i in range(4):
            yield i

    它又可以写成生成器表达式(Generator Expression):

    G = (x for x in range(4))
    生成器表达式是生成器的一种简便的编写方式。读者可进一步查阅。

    表推导

    表推导(list comprehension)是快速生成表的方法。它的语法简单,很有实用价值。

    假设我们生成表L:

    L = []
    for x in range(10):
        L.append(x**2)

    以上产生了表L,但实际上有快捷的写法,也就是表推导的方式:

    L = [x**2 for x in range(10)]

    这与生成器表达式类似,只不过用的是中括号

    (表推导的机制实际上是利用循环对象,有兴趣可以查阅。)

    练习 下面的表推导会生成什么?

    xl = [1,3,5]
    yl = [9,12,13]
    L  = [ x**2 for (x,y) in zip(xl,yl) if y > 10]

    总结

    循环对象

    生成器

    表推导

     
    整理不易,如果觉得有所帮助,希望可以留下您的精彩言论再走。赶快为你们最喜欢的框架打Call吧。

    大家如果想要学习Python可以加我的Qun:834179111,小编整理了,从Python入门零基础到项目实战的视频资料。欢迎还没有找到方向的小伙伴来学习。
     
    本文转自网络 如有侵权 请联系小编删除

    展开全文
  • Python成长之路(四)——循环设计、循环对象、函数对象、错误处理、动态类型
  • Python学习笔记6:循环对象

    千次阅读 2014-10-10 09:26:51
    循环对象的并不是随着Python的诞生就存在的,但它的发展迅速,特别是Python 3x的时代,循环对象正在成为循环的标准形式。 循环对象是这样一个对象,它包含有一个next()方法(__next__()方法,在python 3x中), 这个...
  • 1、循环对象 循环对象是一个含有next( )方法的对象,next( )方法的目的是进行到下一个结果,而结束一系列结果之后,出现一个StopIteration错误。 当一个循环结构(比如for)调用循环对象时,它就会每次循环的时候...
  • js 循环 对象

    千次阅读 2018-11-16 18:46:33
    let obj = {  'a':'aa',  'b':'bb',  'c':'cc',  'd':'dd'  }; for(let i in obj){ console.log(i); //a b c d console.log(obj[i]); // aa bb cc dd }  
  • PUG_关于if 判断和循环对象数组的使用 #content if followList.length > 0 each val in followList .followingGroup section img.avatarUr...
  • Python菜鸟学习手册12----循环对象

    千次阅读 2015-01-04 23:19:49
    什么是循环对象 循环对象是这样一个对象,它包含有一个next()方法(__next__()方法,在python 3x中), 这个方法的目的是进行到下一个结果,而在结束一系列结果之后,举出StopIteration错误。 当一个循环结构(比如for...
  • 1. 循环对象的引入 在python中,循环对象就是包含一个_next_()方法的对象,这个方法的作用就是进行到下一个结果,结束结果之后会报出StopIteration错误。举例如下: for i in range(5): print i 说明:上例是比较...
  • ``` Circlelist[] tempArr = new Circlelist[radix]; // for (Circlelist tempList : tempArr) { ...**为什么第一个增强for循环不能对tempArr数组的每个成员进行初始化,而第二个普通的for循环却可以**
  • Object.keys()方法会返回一个由一个给定对象的自身可枚举属性组成的数组,数组中属性名的排列顺序和使用for...in循环遍历该对象时返回的顺序一致 。 判断一个对象是否为空,可是通过Object.keys()这个方法通过判断...
  • 最近公司让我面试了一个前端时,我问了“遍历对象的... for..in语句是一种迭代语句,可以用来枚举对象的属性,也可以用来循环数组。但这里是有个坑的,会把原型上的方法名也遍历出来 Object.prototype.method=f...
  • python中的for循环对象和循环退出

    千次阅读 2018-09-30 11:40:56
    xrange输出的数值则是一个引用的对象,它不是把遍历结果输出并保存到内存,而是在需要使用该数值时才会去遍历这个范围段的数值,和range不同的是,xrange不会输出信息。xrange是一个object,只有在读取xrange的数据...
  • 考虑使用一个对象数组并在对象属性上使用 v-model。 原因:v-model 不可以直接修改 v-for 循环迭代时别名上的数据,但是,可以通过 index 下标来引用所需的数据,可以达到相同目的。 // 错误代码 <div v-for=...
  • 小程序for循环对象

    千次阅读 2017-08-23 22:36:24
    {{index + 1}}. {{log}} var util = require('../../utils/util.js') Page({ data: { logs: [ ] }, onLoad: function () { var test = wx.getStorageSync('logs'); var tset1 = tes
  • // 判断对象是否为空 if(Object.keys(apple).length > 0){ Object.keys(apple).forEach(function(key){ console.log(key+"---->"+apple[key]); // id----->1 // name----->apple // price----->4 }); }else{ ...
  • v-for循环子组件【可以循环对象

    千次阅读 2019-07-01 20:11:28
    1.子组件 <template> <div> index:{{index}}, props:{{str1}}, item:{{items.c}} </div> </template> <script> export default { props:['st...
  • thymeleaf 之 th:each迭代循环对象集合

    万次阅读 2018-02-24 14:32:31
    th:each属性用于迭代循环,语法:th:each="obj,iterStat:${objList}" 迭代对象可以是java.util.List,java.util.Map,数组等; iterStat称作状态变量,属性有:  index:当前迭代对象的index(从0开始计算)  ...
  • v-for 循环对象数组

    千次阅读 2019-04-08 10:53:23
    &amp;lt;!DOCTYPE html&amp;gt; &amp;lt;html lang=&quot;en&quot;&amp;gt; &amp;lt;head&amp;gt; &amp;lt;meta charset=&quot;UTF-8&... content=
  • JavaScript循环对象拿到键和值

    千次阅读 2018-05-29 14:31:33
    js 循环json 对象拿到键和值 for(item in jsondata) { // 键 console.log(item);  //值 console.log(jsondata[item]); }
  • js循环对象,(多层数组)

    千次阅读 2018-08-06 15:13:00
    javaScript遍历对象、数组总结 在日常工作过程中,我们对于javaScript遍历对象、数组的操作是十分的频繁的,今天抽空把经常用到的方法小结一下,方便今后参考使用! javaScript遍历对象总结 1、使用...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 43,523
精华内容 17,409
关键字:

循环对象