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

初识Python

廖雪峰 移动开发工程师
难度入门
时长 5小时 0分
  • 因为计算机只能处理数字,如果要处理文本,就必须先把文本转换为数字才能处理。最早的计算机在设计时采用8个比特(bit)作为一个字节(byte),所以,一个字节能表示的最大的整数就是255(二进制11111111=十进制255),0 - 255被用来表示大小写英文字母、数字和一些符号,这个编码表被称为ASCII编码,比如大写字母 A 的编码是65,小写字母 z 的编码是122。

    如果要表示中文,显然一个字节是不够的,至少需要两个字节,而且还不能和ASCII编码冲突,所以,中国制定了GB2312编码,用来把中文编进去。

    日文和韩文等其他语言也有这个问题。为了统一所有文字的编码,Unicode应运而生。Unicode把所有语言都统一到一套编码里,这样就不会再有乱码问题了。

    Unicode通常用两个字节表示一个字符,原有的英文编码从单字节变成双字节,只需要把高字节全部填为0就可以。

    因为Python的诞生比Unicode标准发布的时间还要早,所以最早的Python只支持ASCII编码,普通的字符串'ABC'在Python内部都是ASCII编码的。

    Python在后来添加了对Unicode的支持,以Unicode表示的字符串用u'...'表示,比如:

    print u'中文'
    中文
    注意: 不加 u ,中文就不能正常显示。Unicode字符串除了多了一个 u 之外,与普通字符串没啥区别,转义字符和多行表示法仍然有效:
    转义:u'中文\n日文\n韩文'
    多行:u'''第一行第二行'''raw+多行:ur'''Python的Unicode字符串支持"中文","日文","韩文"等多种语言'''如果中文字符串在Python环境下遇到 UnicodeDecodeError,这是因为.py文件保存的格式有问题。可以在第一行添加注释# -*- coding: utf-8 -*-目的是告诉Python解释器,用UTF-8编码读取源代码。然后用Notepad++ 另存为... 并选择UTF-8格式保存。
    查看全部
  • >>> L[0:3]
    ['Adam', 'Lisa', 'Bart']

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

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

    >>> L[:3]
    ['Adam', 'Lisa', 'Bart']

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

    >>> L[1:3]
    ['Lisa', 'Bart']

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

    >>> L[:]
    ['Adam', 'Lisa', 'Bart', 'Paul']

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

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

    >>> L[::2]
    ['Adam', 'Bart']

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

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


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

    2019-04-25

  • 因为后面要通过sum 来计算平均数average,如果sum是整型的话,做除法运算时只保留整数结果,后面余数会被扔掉,乘以0.1变为浮点数则可以获得精确的除法运算结果。

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

    # OK:def fn1(a, b=1, c=2):
        pass# Error:def fn2(a=1, b):
        pass


    查看全部
  • 多层表达式:

    (1)for循环可以嵌套,因此,在列表生成式中,也可以用多层 for 循环来生成列表。

    eg. [m + n for m in 'ABC' for n in '123']

    效果等同于:

    L = []
    for m in 'ABC':
        for n in '123':
            L.append(m + n)

    查看全部
    0 采集 收起 来源:多层表达式

    2019-04-25

  • 条件过滤:

    (1)列表生成式的 for 循环后面还可以加上 if 判断

    eg. [x * x for x in range(1, 11) if x % 2 == 0]

    注:有了 if 条件,只有 if 判断为 True 的时候,才把循环的当前元素添加到列表中。

    补充:isinstance(x, str) 可以判断变量 x 是否是字符串;

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


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

    2019-04-25

  • 复杂表达式:

    (1)使用for循环的迭代不仅可以迭代普通的list,还可以迭代dict。

    (2)字符串可以通过 % 进行格式化,用指定的参数替代 %s。字符串的join()方法可以把一个 list 拼接成一个字符串。

    查看全部
    0 采集 收起 来源:复杂表达式

    2019-04-25

  • 生成列表:

    (1)可以使用range(start, end,step);

    (2)列表生成式则可以用一行语句代替循环生成list;

    eg.[x * x for x in range(1, 11)]

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

    2019-04-25

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

    查看全部
  • Python的函数返回多值其实就是返回一个tuple,但写起来更方便。

    查看全部
  • 所有数每3个取一个 [::3]

    最大值50的每5个取一个[4:50:5] 

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

    2019-04-24

  • 在 python 中,类型属于对象,变量是没有类型

    查看全部
  • 调用函数:函数名(参数)

    查看全部
    1. 取得list或tuple的长度:len()

    2. 函数的返回值,是函数里面return之后的值!如果语句里没有return,那返回的值就是None

    查看全部
  • key+':',d[key]

    查看全部

举报

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

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