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

初识Python

廖雪峰 移动开发工程师
难度入门
时长 5小时 0分
  • tuple的每个元素,指向不变,但是指向的list本身是可变的

    查看全部
  • isinstance(x, str) 可以判断变量 x 是否是字符串。

    字符串的 upper() 方法可以返回大写的字母。


    查看全部
    0 采集 收起 来源:条件过滤

    2019-12-03

  • tuple可以使用索引方式访问元素 t[ ];不能赋值成别的元素,也不能添加和删除元素。

    查看全部
  • 用for从range()中生成列表。

    range(1,100,2)可以生成[1,3,5,7,…]

    查看全部
    0 采集 收起 来源:生成列表

    2019-12-03

  • 替换List元素的方法:

    对list中的某一个索引赋值,就可以直接用新的元素替换掉原有的元素,list包含的元素个数不变。

    查看全部
  • items() 方法把dict对象转换成了包含tuple的list,对这个list进行迭代,可以同时获得key和value.

    iteritems() 不把dict转换成list,而是在迭代过程中不断给出 tuple,所以, iteritems() 不占用额外的内存。

    查看全部
  • values() 方法实际上把一个 dict 转换成了包含 value 的list。

    itervalues() 方法不会转换,它会在迭代过程中依次从 dict 中取出 value,所以 itervalues() 方法比 values() 方法节省了生成 list 所需的内存。

    查看全部
    0 采集 收起 来源:迭代dict的value

    2019-12-03

  • for index, name in enumerate(L):
        print index, '-', name

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

    zip()函数可以把两个 list 变成一个 list:

    >>> zip([10, 20, 30], ['A', 'B', 'C'])
    [(10, 'A'), (20, 'B'), (30, 'C')]


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

    2019-12-03

  •  return s[0].upper()+s[1:]

    首字母大写

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

    2019-12-03

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

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

    任务

    汉诺塔 (http://baike.baidu.com/view/191666.htm) 的移动也可以看做是递归函数。

    我们对柱子编号为a, b, c,将所有圆盘从a移到c可以描述为:

    如果a只有一个圆盘,可以直接移动到c;

    如果a有N个圆盘,可以看成a有1个圆盘(底盘) + (N-1)个圆盘,首先需要把 (N-1) 个圆盘移动到 b,然后,将 a的最后一个圆盘移动到c,再将b的(N-1)个圆盘移动到c。

    请编写一个函数,给定输入 n, a, b, c,打印出移动的步骤:

    move(n, a, b, c)

    例如,输入 move(2, 'A', 'B', 'C'),打印出:

    A --> B
    A --> C
    B --> C

    • ?不会了怎么办

    • 函数 move(n, a, b, c) 的定义是将 n 个圆盘从 a 借助 b 移动到 c。

      参考代码:

      def move(n, a, b, c):
          if n ==1:
              print a, '-->', c
              return
          move(n-1, a, c, b)
          print a, '-->', c
          move(n-1, b, a, c)
      move(4, 'A', 'B', 'C')


    查看全部
  • 不大于50的5的倍数。

    L = range(1, 101)

    print L[4:50:5]

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

    2019-12-03

  • def fn(*args):
        print args

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

    查看全部
  • 布尔类型

    在Python中,布尔类型还可以与其他数据类型做 and、or和not运算,请看下面的代码:

    a = True
    print a and 'a=T' or 'a=F'

    计算结果不是布尔类型,而是字符串 'a=T',这是为什么呢?

    因为Python把0空字符串''None看成 False,其他数值和非空字符串都看成 True,所以:

    True and 'a=T' 计算结果是 'a=T'
    继续计算 'a=T' or 'a=F' 计算结果还是 'a=T'

    要解释上述结果,又涉及到 and 和 or 运算的一条重要法则:短路计算。

    1. 在计算 a and b 时,如果 a 是 False,则根据与运算法则,整个结果必定为 False,因此返回 a;如果 a 是 True,则整个计算结果必定取决与 b,因此返回 b。

    2. 在计算 a or b 时,如果 a 是 True,则根据或运算法则,整个计算结果必定为 True,因此返回 a;如果 a 是 False,则整个计算结果必定取决于 b,因此返回 b。

    所以Python解释器在做布尔运算时,只要能提前确定计算结果,它就不会往后算了,直接返回结果。


    查看全部
  • for a in d:

        print a+":"+str(d[a])


    查看全部
  • 当执行了一条pop语句后,元素的位置就会发生改变,这个时候要重新找要删除的内容的索引号。

    查看全部

举报

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

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