为了账号安全,请及时绑定邮箱和手机立即绑定

初识Python

廖雪峰 移动开发工程师
难度入门
时长 5小时 0分
学习人数
综合评分9.43
3762人评价 查看评价
9.7 内容实用
9.4 简洁易懂
9.2 逻辑清晰
  • 迭代永远是取出元素本身,而非元素的索引。想在 for 循环中拿到索引,怎么办?

    索引迭代使用 enumerate() 函数,我们可以在for循环中同时绑定索引index和元素name,自动把每个元素变成 (index, element) 这样的tuple,再迭代

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

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

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

    在迭代 ['Adam', 'Lisa', 'Bart', 'Paul'] 时,如果我们想打印出名次 - 名字(名次从1开始)

    L = ['Adam', 'Lisa', 'Bart', 'Paul']
    for index, name in zip(range(1, len(L)+1), L):
        print index, '-', name


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

    2020-02-26

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

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

    range(1, 101)可以创建数组

    用for循环迭代数列 1-100 并打印出7的倍数

    for i in range(1, 101):
        if i % 7 == 0:
            print i


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

    2020-02-26

  • 字符串也可以用切片操作,只是操作结果仍是字符串

    >>> 'ABCDEFG'[:3]
    'ABC'
    >>> 'ABCDEFG'[-3:]
    'EFG'
    >>> 'ABCDEFG'[::2]
    'ACEG'
    >>> 'abc'.upper()
    'ABC'

    返回一个仅首字母变成大写的字符串

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


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

    2020-02-26

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

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

    2020-02-26

  • 对list进行切片

    L[0:3]表示,从索引0开始取,直到索引3为止,但不包括索引3。L[:]只用一个 : ,表示从头到尾。L[::2]第三个参数表示每N个取一个,以上会每两个元素取出一个来。

    把list换成tuple,切片操作完全相同。

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

    2020-02-26

  • 可变参数的名字前面有个 号,我们可以传入0个、1个或多个参数给可变参数,Python解释器会把传入的一组参数组装成一个tuple传递给可变参数.比如:

    def fn(*args):
        print args


    查看全部
  • >>> int('123', 8)
    83

    int()函数的第二个参数是转换进制,如果不传,默认是十进制 (base=10),如果传了,就用传入的参数.

    函数的默认参数的作用是简化调用,函数的参数按从左到右的顺序匹配,所以默认参数只能定义在必需参数的后面

    def power(x, n=2):
        s = 1
        while n > 0:
            n = n - 1
            s = s * x
        return s
    >>> power(5)
    25


    查看全部
  • 如果一个函数在内部调用自身本身,这个函数就是递归函数.计算阶乘 n! = 1 * 2 * 3 * ... * n:

    fact(n)可以表示为 n * fact(n-1),只有n=1时需要特殊处理。

    def fact(n):
        if n==1:
            return 1
        return n * fact(n - 1)

    所有的递归函数都可以写成循环的方式,但循环的逻辑不如递归清晰.

    汉诺塔的移动也可以看做是递归函数。

    对柱子编号为a, b, c,a有N个圆盘,将所有圆盘从a移到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)


    查看全部
  • # math包提供了sin()和 cos()函数,我们先用import引用它:

    import math
    def move(x, y, step, angle):
        nx = x + step * math.cos(angle)
        ny = y - step * math.sin(angle)
        return nx, ny
    >>> x, y = move(100, 100, 60, math.pi / 6)
    >>> print x, y
    151.961524227 70.0

    Python函数返回的仍然是单一值,原来返回值是一个tuple.

    math包提供了sqrt()函数用于计算平方根

    查看全部
  • 定义一个函数要使用 def 语句,依次写出函数名、括号、括号中的参数和冒号:,然后,在缩进块中编写函数体,函数的返回值用 return 语句返回.

    以自定义一个求绝对值的 my_abs 函数为例:

    def my_abs(x):
        if x >= 0:
            return x
        else:
            return -x

    函数体内部的语句在执行时,一旦执行到return时,函数就执行完毕,并将结果返回。因此,函数内部通过条件判断和循环可以实现非常复杂的逻辑.



    查看全部
  • 需要知道函数名称参数

    abs (x) # 绝对值

    cmp(x, y) # 如果 x<y,返回 -1,如果 x==y,返回 0,如果 x>y,返回 1

    int() # 把其他数据类型转换为整数

    str() # 把其他类型转换成 str

    计算 1*1 + 2*2 + 3*3 + ... + 100*100

    L = []
    x = 1
    while x <= 100:
        L.append(x * x)
        x = x + 1
    print sum(L)



    查看全部
  • 函数调用直接在更高的层次上思考问题。


    查看全部
  • set存储的是一组不重复的无序元素

    更新set:

    >>> s = set([1, 2, 3])
    >>> s.add(4)
    >>> print s
    set([1, 2, 3, 4])
    >>> s = set([1, 2, 3, 4])
    >>> s.remove(4)
    >>> print s
    set([1, 2, 3])

    用add()可以直接添加,而remove()前需要判断


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

    2020-02-26

  • >>> s = set(['Adam', 'Lisa', 'Bart'])
    >>> for name in s:
    ...     print name
    ... 
    Lisa
    Adam
    Bart
    s = set([('Adam', 95), ('Lisa', 85), ('Bart', 59)])
    for x in s:
        print x[0],':',x[1]


    查看全部
    0 采集 收起 来源:Python之 遍历set

    2020-02-26

  • set的这些特点,可以应用在哪些地方呢?

    如何判断用户的输入是否是一个有效的星期呢?

    weekdays = set(['MON', 'TUE', 'WED', 'THU', 'FRI', 'SAT', 'SUN'])
    x = '???' # 用户输入的字符串
    if x in weekdays:
        print 'input ok'
    else:
        print 'input error'


    查看全部

举报

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

微信扫码,参与3人拼团

意见反馈 帮助中心 APP下载
官方微信
友情提示:

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