• 大数据分析(Python)学习笔记1(python基础快速过)


    第 1 部分 基础篇

    第1章 Python语言基础

    1.2 语法基础(快速过一遍)

    1.代码注释方式

    注释代码有以下两种方法:

    (1)在一行中,“#”后的语句不被执行,表示被注释。

    (2)如果要进行大段的注释,可以使用一组3个单引号(''')或3个双引号(""")将注释内容包围。

    单引号和双引号使用上没有本质差别,但使用时要注意区别。

    2.用缩进来表示分层

     Python语句块使用代码缩进4个空格或者一个Tab键表示分层,但在程序中不要同时使用Tab键和空格来缩进,这会使程序在跨平台时不能正常运行。

    一般来说行尾遇到“:”就表示下一行开始缩进。

    3.语句断行

    一般来说,Python一条语句占一行,在每条语句的结尾处不需要使用“;”

    但在Python中也可以使用“;”,表示将两条简单语句写在一行。

    如果一条语句较长要分几行来写,可使用“\”来换行。

    分号还有一个作用,用在一行语句的末尾,表示对本行语句的结果不打印输出。

    4.print()的作用

     print()会在输出窗口中显示一些文本或者结果,便于监控、验证和显示数据。

    5.在一个字符串中嵌入一个单引号

    有以下两种方法:

    (1)字符串在单引号中,可以在单引号前加反斜杠(\)嵌入。如I\'m a boy.

    (2)字符串在双引号中,可以直接加单引号嵌入。即 ' 和 " 在使用上没有本质差别,但同时使用时要注意区别。

    1.3 程序结构

    1.3.2 运算符介绍

    1. 比较运算符

    <小于
    <=小于等于
    >大于
    >=大于等于
    ==等于
    !=不等于
    is地址(id)等于
    is not地址(id)不等于

    2. 数值运算符

    =赋值
    +
    -
    *
    /
    //除(整数)
    %除(余数)
    -x负x
    +x正x
    abs(x)x的绝对值
    int(x)x的整数值
    float(x)x的浮点数
    complex(re,im)定义复数
    c.conjugate()复数的共轭复数
    divmod(x,y)相当于(x//y,x%y)
    pow(x,y)x的y次方
    x ** y相当于pow(x,y)
    1.3.3 顺序结构

    直接一行一行地执行代码直到程序结束。

    1.3.4 判断程序

    判断结构增加了程序中的判断机制。

    1.3.5 循环结构
    1. while循环

    while 循环条件为真:

            执行块

    2. for循环 

    for element in A:

            循环块 

    1.3.6 异常 
    1. try:
    2. Normal execution block
    3. except A:
    4. Exception A handle
    5. except B:
    6. Exception B handle
    7. except:
    8. Other exception handle
    9. else: #可无,若有,则必有except x或except 块存在,仅在try后无异常时执行
    10. if no exception,get here
    11. finally:#此语句务必放在最后,并且也是必须执行的语句
    12. print("finally")

    正常执行的程序在try下的Normal execution block中执行;在执行过程中,如果发生了异常,则中断当前Normal execution block中执行,跳转到对应的异常处理块except x(A或B)中开始执行。

    1. try-except结构

     try:

            处理代码

    except Exception as e:

            处理代码发生异常,在这里进行异常处理

    2. try-except-finallly结构

    finally块必须执行。 

    3. try-except-else结构

    程序进入try语句部分,当try语句部分发生异常则进入except语句部分,若不发生异常则进入else语句部分。

    4.try-except-else-finallly结构

    1.4 函数

    1.4.1 基本函数结构

    def 函数名(参数):

            函数体

            return 返回值

    1.4.2 参数结构

    1. 传统参数传递

    (1)无参数传递

    1. def func():
    2. print("这是无参数传递")

    调用func(),将打印输出"这是无参数传递"字符串。

    (2)固定参数传递

    1. def func(x):
    2. print("传递的参数为: %s"%x)

    2. 默认参数传递

    给参数赋值时要注意参数的位置,除非标明是赋给哪个参数的。

    3. 未知参数个数传递

    只需要在参数面前加个*就可以了。

    4. 带键参数传递

    参数通过键值对的方式进行传递。例:x = 1

    带键参数的传递只需要在参数前面加**就可以了。

    1.4.3 回调函数

    将函数作为参数传递到另外的函数中执行。

    1.4.4 函数的递归与嵌套

    1.函数的递归

    函数在函数体中直接或者间接地调用自身的现象。递归要有停止条件。

    2. 函数的嵌套

    在函数中调用另外的函数。

    1.4.5 闭包 

    回调函数:将函数作为系数传递。

    闭包:将函数作为返回值返回。闭包可以延长变量的作用时间与作用域。

    1.4.6 匿名函数lambda

    匿名函数:“一次性”函数,调用一次或几次就不再需要的函数。

    1.4.7 关键字yield

    yield关键字可以将函数执行的中间结果返回但不结束程序。能达到可迭代的效果。

    yield关键字的作用把一个函数变成一个generator(生成器)。

    每次循环迭代时,yield会生成一个值并暂停函数的执行,下次迭代时会从上次暂停的地方继续执行。这样就可以逐个打印函数中的数字。

    1. def func(n):
    2. i = 0
    3. while i < n:
    4. yield i
    5. i += 1
    6. for i in func(10):
    7. print(i)
    1. def func(n):
    2. i = 0
    3. while i < n:
    4. print(i)
    5. i += 1
    6. for i in func(10):
    7. print(i)
    8. #报错
    9. """
    10. TypeError Traceback (most recent call last)
    11. Cell In[5], line 7
    12. 4 print(i)
    13. 5 i += 1
    14. ----> 7 for i in func(10):
    15. 8 print(i)
    16. TypeError: 'NoneType' object is not iterable
    17. """
    18. """
    19. 错误原因:错误是因为函数func没有返回任何值。在Python中,如果一个函数没有明确指定返回值,默认返回None。所以当尝试使用for循环迭代函数func(10)时,会出现TypeError,因为NoneType对象(即None)不可迭代。
    20. """

    1.5 数据结构 

    1.5.1 列表(list)[]

    1. 列表的定义

    在中括号[]中添加列表的相(元素),以半角逗号隔开每个元素,即可定义列表

    s = [1,2,3,4,5,6]

    要获取列表中的元素,可采用list[index]的方式。

    1. s = [1,2,3,4,5,6]
    2. s[0] #1
    3. s[1:3] #[2,3]
    4. s[-2] #5

    2.list的常用函数

    list常用函数及其作用
    函数名

    作用

    list.append(x)将元素x追加到列表尾部
    list.extend(L)将列表L中的所有元素追加到列表尾部形成新列表
    list.insert(i,x)在列表中index为 i 的位置插入x元素
    list.remove(x)将列表中第一个为x的元素移除,若不存在x元素将引发一个异常
    list.pop(i)删除index为 i 的元素,并将删除的元素显示。若不指定 i ,则默认弹出最后一个元素
    list.clear()清空列表
    list.index(x)返回第一个x元素的位置,若不存在x,则报错
    list.count(x)统计列表中x元素的个数
    list.reverse()将列表反向排列
    list.sort()将列表从小到大排序,若需要从大到小排序,则哟昂list.sort(reverse=True)表示
    list.copy()返回列表的副本
    1.5.2元组(tuple)()

    用小括号()的形式,注意:tuple中的元素一旦确定就不可更改

    1. #定义一个tuple的两种不同方法
    2. t = (1,2,3)
    3. t #(1,2,3)
    4. y = 1,2,3
    5. y #(1,2,3)

    在Python中,如果多个变量用半角逗号隔开,则默认将多个变量按tuple的形式组织起来。

    1. #在Python中两个变量的互换
    2. x,y=1,2
    3. print(x)#1
    4. print(y)#2
    5. x,y=y,x
    6. print(x)#2
    7. print(y)#1

     运行结果:

    元组与列表的取值方式相同

    元组常用函数:

    1. tuple.count(x) #计算x在tuple中出现的次数
    2. tuple.index(x) #计算第一个x元素的位置
     1.5.3 集合(set){}

    大多数程序语言都会提供的数据结构。注意:它不能保存重复的数据,即具有过滤重复数据的功能

    对一个数组或者元组来说,可以使用set函数取出重复的数据。

    1. L = [1,1,2,2,3,3]
    2. SL = set(L)
    3. print(SL)#这里由列表变为集合

     

    注意:set中的元素位置是无序的,因此不能用set[i]这样的方式获取其元素。

    1. s1 = set("abcdefg")
    2. s2 = set("defghijkl")
    3. print(s1)
    4. print(s2)
    5. print(s1-s2)#取出s1中不包含s2的部分
    6. print(s2-s1)
    7. print(s1|s2)#取出s1与s2的并集
    8. print(s1&s2)#取出s1与s2的交集
    9. print(s1^s2)#取出s1与s2的交集但不包括交集部分
    10. print('a'in s1)#判断'a'是否在s1中

    1.5.4 字典(dict){}

     又称键值对。可以将二元列表作为元素的列表转换为字典。

    1. d = dict([['a',12],[5,'a4'],['hel','rt']])
    2. print(d)

     

    字典中每一项以半角的逗号隔开,每一项包含key与value,key与value之间用半角的冒号隔开。字典中的每一个元素(键值对)也是无序的。使用index取值。

    dict常用函数及其作用
    函数名作用
    dict.copy()字典的复制
    dict.clear()字典的清除
    dict.items()获取字典的项列表
    dict.keys()获取字典的key列表
    dict.values()获取字典的value列表
    dict.pop(x)弹出key = x的项
    1.5.5 集合(set)的操作
    集合的操作符、函数及其意义
    操作符或函数意义
    x in S如果S中包含x元素,则返回True,否则返回False
    x not in S如果S中不包含x元素,则返回True,否则返回False
    S+T连接S与T,返回连接后的新集合类
    S*n或n*S将S延长自身n次
    len(S)返回S的长度

    set或者dict不能直接同类型使用“+”相连,也不能使用“*”连接。

    对于list、tuple、set三种数据结构来说,len():求长度;min():求最小值;max():求最大值;sum():求和以上的操作函数都可以使用。

    tuple、set、dict都可以使用迭代器迭代iter()、next()

    1.6 3个函数(map、filter、reduce)

    map和filter函数属于内置函数,reduce函数从pyhton3开始转移到了functools模块猴子那个,使用是需要从functools模块导入。

    1.6.1 遍历函数(map)

    用于遍历序列。对系列中每个元素进行操作,最终获取新的序列。

    1.6.2 筛选函数(filter)

    用于对序列中的元素进行筛选,最终获取符合条件的序列。

    1.6.3 累计函数(reduce)

    用于对序列中所有元素进行累计操作。

    1.7 面向对象编程基础

     1.7.1 类

    一个Class既包含数据,又包含操作数据的方法。

    1. class Student(object):
    2. def __init__(self,name,tell):
    3. self.name = name
    4. self.tell = tell
    1.7.2 类与实例

    类是抽象的模板。实例是根据类创建出来的一个个具体的“对象”,每个对象都有相同的方法,但各自数据可能不同。

    在Python中,通过class关键字定义类。

    创建实例通过类名和()实现的。

    类可以自由地给一个实例变量绑定竖向。

    1. class Student(object):
    2. pass
    3. #创建实例
    4. big = Student()
    5. #给实例变量绑定属性
    6. big.name = 'Nice'

    注意:特殊方法“__init__”前后分别是双下划线。

    __init__方法的第一个参数永远是self,表示创建的实例本身。

    __init__方法内部,可以把各种属性绑定到self,self可以指向创建的实例本身。

    有了__init__方法,在创建实例是,就不能传入空的参数了,必须,传入与__init__方法匹配的参数,但self不需要传递。

    和普通的函数相比,在类中定义的函数只有一点不同,就是第一个参数永远是实例初始self,而且调用时不用传递该参数。

    1.7.3 数据封装

    要访问的数据,直接在类内部,没必要通过外面的函数去访问,直接在类的内部定义访问数据的函数。这些封装数据的函数是和类本身关联起来的,称为类的方法。

    1.7.4 私有变量和私有方法

    类可以有公有变量和公有方法,也可有私有变量和私有方法。公有部分的对象可以从外部访问,而私有部分的对象只有在类的内部才可以访问。在普通变量名或者方法名(即公有变量名或者方法名)前加两个“_”,即可称为私有变量或者方法。

  • 相关阅读:
    java计算机毕业设计华夏球迷俱乐部网站设计与实现源码+mysql数据库+系统+LW文档+部署
    sql优化
    如何测试响应式网站
    基于微信小程序的在线小说阅读系统,附数据库、教程
    简易的贪吃蛇小游戏(以后或许会更新)C++/C语言
    python写入文件后读取空白,写入文件无法读取解决方案
    在springboot中实现WebSocket协议通信
    linux最佳入门(笔记)
    Unity笔记
    网络基础入门
  • 原文地址:https://blog.csdn.net/m0_62110645/article/details/132839751