当前位置:   article > 正文

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

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 私有变量和私有方法

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

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小蓝xlanll/article/detail/686219
推荐阅读
相关标签
  

闽ICP备14008679号