为了账号安全,请及时绑定邮箱和手机立即绑定
慕课网数字资源数据库体验端
初识Python_学习笔记_慕课网
为了账号安全,请及时绑定邮箱和手机立即绑定

初识Python

廖雪峰 移动开发工程师
难度入门
时长 5小时 0分
  • 索引迭代

    Python中,迭代永远是取出元素本身,而非元素的索引。

    对于有序集合,元素确实是有索引的。有的时候,我们确实想在 for 循环中拿到索引,怎么办?

    方法是使用 enumerate() 函数

    >>> L = ['Adam', 'Lisa', 'Bart', 'Paul'] >>> for index, name in enumerate(L): ...     print index, '-', name ...  0 - Adam 1 - Lisa 2 - Bart 3 - Paul

    使用 enumerate() 函数,我们可以在for循环中同时绑定索引index和元素name。但是,这不是 enumerate() 的特殊语法。

    迭代的每一个元素实际上是一个tuple:

    如果我们知道每个tuple元素都包含两个元素,

    可见,索引迭代也不是真的按索引访问,而是由 enumerate() 函数自动把每个元素变成 (index, element) 这样的tuple,再迭代,就同时获得了索引和元素本身。


    查看全部
    0 采集 收起 来源:索引迭代

    2018-05-02

  • cmp函数在python3中被删除了
    查看全部
  • 什么是迭代

    在Python中,如果给定一个list或tuple,我们可以通过for循环来遍历这个list或tuple,这种遍历我们成为迭代(Iteration)。

    在Python中,迭代是通过 for ... in 来完成的,而很多语言比如C或者Java,迭代list是通过下标完成的,比如Java代码:

    for (i=0; i<list.length; i++) {
        n = list[i];
    }

    可以看出,Python的for循环抽象程度要高于Java的for循环。

    因为 Python 的 for循环不仅可以用在list或tuple上,还可以作用在其他任何可迭代对象上。

    因此,迭代操作就是对于一个集合,无论该集合是有序还是无序,我们用 for 循环总是可以依次取出集合的每一个元素。

    注意: 集合是指包含一组元素的数据结构,我们已经介绍的包括:
    1. 有序集合:list,tuple,str和unicode;
    2. 无序集合:set
    3. 无序集合并且具有 key-value 对:dict

    而迭代是一个动词,它指的是一种操作,在Python中,就是 for 循环。

    迭代与按下标访问数组最大的不同是,后者是一种具体的迭代实现方式,而前者只关心迭代结果,根本不关心迭代内部是如何实现的。

    查看全部
    0 采集 收起 来源:什么是迭代

    2018-05-02

  • 最后,理解变量在计算机内存中的表示也非常重要。当我们写:

    a = 'ABC'

    时,Python解释器干了两件事情:

    1. 在内存中创建了一个

    'ABC'

    的字符串;

    2. 在内存中创建了一个名为

    a

    的变量,并把它指向

    'ABC'


    也可以把一个变量

    a

    赋值给另一个变量

    b

    ,这个操作实际上是把变量

    b

    指向变量

    a

    所指向的数据


    查看全部
  • s = 'Python was started in 1989 by \"Guido\".\nPython is free and easy to learn.'

    \n前面不需要有空格

    \实在'或“前面直接添加,可以全写完后再加

    查看全部
  • 很多人问为什么要加

    # -*- coding:utf-8 -*-

    PY文件当中是不支持中文的,即使你输入的注释是中文也不行,为了解决这个问题,就需要把文件编码类型改为UTF-8的类型,输入这个代码就可以让PY源文件里面有中文了。

    查看全部
    1 采集 收起 来源:Python的注释

    2018-05-02

  • 汉诺塔移动路径可看作是递归函数。

    #-*- coding:utf-8 -*-

    # move(n, a, b, c)表示的是有n个盘子在a柱子上,将要移到c柱子上面去

    def move(n, a, b, c):

    # 如果a柱子上面只有一个盘子,则直接移到c柱子上面去并输出路径,结束递归

        if n == 1:  

            print a, '-->', c

            return

    # 表示的是将n-1的盘子从a柱子上面移到b柱子上面去

        move(n-1, a, c, b)

    # 输出最下面个盘子移从a移到c的路径

        print a, '-->', c

    # 将b柱子上面的n-1个盘子移动到c柱子上面

        move(n-1, b, a, c)


    move(4, 'A', 'B', 'C')


    查看全部
  •   编程初期养成良好的编程习惯,四个空格缩进,区分代码块。

    查看全部
  • 对字符串切片

    字符串 'xxx'和 Unicode字符串 u'xxx'也可以看成是一种list,每个元素就是一个字符。因此,字符串也可以用切片操作,只是操作结果仍是字符串:

    在很多编程语言中,针对字符串提供了很多各种截取函数,其实目的就是对字符串切片。Python没有针对字符串的截取函数,只需要切片一个操作就可以完成,非常简单。


    查看全部
    0 采集 收起 来源:对字符串切片

    2018-05-02

  • 倒序切片

    对于list,既然Python支持L[-1]取倒数第一个元素,那么它同样支持倒数切片,

    >>> L[-2:] >>> L[:-2] >>> L[-3:-1] >>> L[-4:-1:2]

    记住倒数第一个元素的索引是-1。倒序切片包含起始索引,不包含结束索引。


    查看全部
    0 采集 收起 来源:倒序切片

    2018-05-02

  • 对list进行切片

    取一个list的部分元素是非常常见的操作。

    对这种经常取指定索引范围的操作,用循环十分繁琐,因此,Python提供了切片(Slice)操作符,能大大简化这种操作。

    L[0:3]表示,从索引0开始取,直到索引3为止,但不包括索引3。即索引0,1,2,正好是3个元素。

    如果第一个索引是0,还可以省略:

    >>> L[:3]

    也可以从索引1开始,取出2个元素出来:

    >>> L[1:3]

    只用一个 : ,表示从头到尾:

    >>> L[:]

    因此,L[:]实际上复制出了一个新list。

    切片操作还可以指定第三个参数:

    >>> L[::2]

    第三个参数表示每N个取一个,上面的 L[::2] 会每两个元素取出一个来,也就是隔一个取一个。

    把list换成tuple,切片操作完全相同,只是切片的结果也变成了tuple。


    查看全部
    0 采集 收起 来源:对list进行切片

    2018-05-02

  • Python之定义可变参数

    如果想让一个函数能接受任意个参数,我们就可以定义一个可变参数:

    def fn(*args):     print args

    可变参数的名字前面有个 号,我们可以传入0个、1个或多个参数给可变参数:

    可变参数也不是很神秘,Python解释器会把传入的一组参数组装成一个tuple传递给可变参数,因此,在函数内部,直接把变量 args 看成一个 tuple 就好了。

    定义可变参数的目的也是为了简化调用。假设我们要计算任意个数的平均值,就可以定义一个可变参数:

    def average(*args):     ...



    查看全部
  • for...in 和 if...in的用法

    查看全部
    0 采集 收起 来源:Python之 更新set

    2018-05-02

  • Python之定义默认参数

    定义函数的时候,还可以有默认参数。

    例如Python自带的 int() 函数,其实就有两个参数,int()函数的第二个参数是转换进制,如果不传,默认是十进制 (base=10),如果传了,就用传入的参数。

    可见,函数的默认参数的作用是简化调用,你只需要把必须的参数传进去。但是在需要的时候,又可以传入额外的参数来覆盖默认参数值。

    由于函数的参数按从左到右的顺序匹配,所以默认参数只能定义在必需参数的后面.

    def fun(para1, para2, ..., paraN = deafalt_value)


    查看全部
  • Python之递归函数

    在函数内部,可以调用其他函数。如果一个函数在内部调用自身本身,这个函数就是递归函数。

    递归函数的优点是定义简单,逻辑清晰。理论上,所有的递归函数都可以写成循环的方式,但循环的逻辑不如递归清晰。

    使用递归函数需要注意防止栈溢出。在计算机中,函数调用是通过栈(stack)这种数据结构实现的,每当进入一个函数调用,栈就会加一层栈帧,每当函数返回,栈就会减一层栈帧。由于栈的大小不是无限的,所以,递归调用的次数过多,会导致栈溢出。可以试试计算 fact(10000)。


    查看全部

举报

0/150
提交
取消
课程须知
如果您了解程序设计的基本概念,会简单使用命令行,了解中学数学函数的概念,那么对课程学习会有很大的帮助,让您学起来得心应手,快速进入Python世界。
老师告诉你能学到什么?
通过本课程的学习,您将学会搭建基本的Python开发环境,以函数为基础编写完整的Python代码,熟练掌握Python的基本数据类型以及list和dict的操作。
友情提示:

您好,此课程属于迁移课程,您已购买该课程,无需重复购买,感谢您对慕课网的支持!