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

news/2025/1/15 14:56:02/

第 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 异常 

try:Normal execution block
except A:Exception A handle
except B:Exception B handle
except:Other exception handle
else:  #可无,若有,则必有except x或except 块存在,仅在try后无异常时执行if no exception,get here
finally:#此语句务必放在最后,并且也是必须执行的语句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)无参数传递

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

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

(2)固定参数传递

def func(x):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会生成一个值并暂停函数的执行,下次迭代时会从上次暂停的地方继续执行。这样就可以逐个打印函数中的数字。

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

1.5 数据结构 

1.5.1 列表(list)[]

1. 列表的定义

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

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

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

s = [1,2,3,4,5,6]
s[0] #1
s[1:3] #[2,3]
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中的元素一旦确定就不可更改

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

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

#在Python中两个变量的互换
x,y=1,2
print(x)#1
print(y)#2
x,y=y,x
print(x)#2
print(y)#1

 运行结果:

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

元组常用函数:

tuple.count(x)    #计算x在tuple中出现的次数
tuple.index(x)    #计算第一个x元素的位置

 1.5.3 集合(set){}

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

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

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

 

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

s1 = set("abcdefg")
s2 = set("defghijkl")
print(s1)
print(s2)
print(s1-s2)#取出s1中不包含s2的部分
print(s2-s1)
print(s1|s2)#取出s1与s2的并集
print(s1&s2)#取出s1与s2的交集
print(s1^s2)#取出s1与s2的交集但不包括交集部分
print('a'in s1)#判断'a'是否在s1中

1.5.4 字典(dict){}

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

d = dict([['a',12],[5,'a4'],['hel','rt']])
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既包含数据,又包含操作数据的方法。

class Student(object):def __init__(self,name,tell):self.name = nameself.tell = tell

1.7.2 类与实例

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

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

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

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

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

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

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

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

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

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

1.7.3 数据封装

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

1.7.4 私有变量和私有方法

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


http://www.ppmy.cn/news/1115967.html

相关文章

【考研数学】线性代数第五章 —— 特征值和特征向量(2,特征值与特征向量的性质)

文章目录 引言二、特征值与特征向量的性质2.1 一般性质2.2 实对称矩阵特征值与特征向量的性质 写在最后 引言 承接前文&#xff0c;了解了一些基本概念后&#xff0c;我们来继续学习有关特征值和特征向量的内容。 二、特征值与特征向量的性质 2.1 一般性质 定理 1 —— 设 …

Linux下运行Jmeter压测

一、在Linux服务器先安装SDK 1、先从官网下载jdk1.8.0_131.tar.gz&#xff0c;再从本地上传到Linux服务器 2、解压&#xff1a;tar -xzf jdk1.8.0_131.tar.gz&#xff0c;生成文件夹 jdk1.8.0_131 3、在/usr/目录下创建java文件夹&#xff0c;再将 jdk1.8.0_131目录移动到/u…

[运维|数据库] mysql中的READS SQL DATA修饰符说明

READS SQL DATA 是 MySQL 存储过程和函数中的一种权限修饰符&#xff0c;用于标识该存储过程或函数只读取数据库的数据而不修改它。这个修饰符通常用于声明存储过程或函数的权限&#xff0c;以告知数据库管理系统该过程或函数不会对数据库进行写操作&#xff0c;从而允许在某些…

SAP HR HR_INFOTYPE_OPERATION 新增/修改/删除

CALL FUNCTION ‘HR_INITIALIZE_BUFFER’ EXPORTING TCLAS A pernr ls_p2005-pernr.CALL FUNCTION ‘BAPI_EMPLOYEE_ENQUEUE’ EXPORTING number ls_p2005-pernr IMPORTING return ls_return. IF ls_return-type ‘E’. cs_msg-zstatus ‘E’. cs_msg-zmsg ls_return-me…

【23种设计模式】组合模式(八)

前言 组合模式&#xff0c;英文名称是&#xff1a;Composite Pattern。当我们谈到这个模式的时候&#xff0c;有一个物件和这个模式很像&#xff0c;也符合这个模式要表达的意思&#xff0c;那就是“俄罗斯套娃”。“俄罗斯套娃”就是大的瓷器娃娃里面装着一个小的瓷器娃娃&…

OpenCV(三十九):积分图像

1.积分图像介绍 积分图像中的每个像素表示了原始图像中对应位置及其左上方矩形区域内像素值的总和。如图&#xff0c;p0表示原始图像蓝色区域内像素值的总和。 倾斜求和&#xff08;Skewed Sum&#xff09;是积分图像的一种扩展形式&#xff0c;用于计算图像区域内的像素和&…

Python 类的继承

视频版教程 Python3零基础7天入门实战视频教程 继承是面向对象的三大特征之一&#xff0c;也是实现软件复用的重要手段。Python 的继承是多继承机制&#xff0c;即一个子类可以同时有多个直接父类。 语法&#xff1a; class 子类(父类1,父类2,…): 子类继承父类的属性和方法…

系统架构常用的工具

HBase HBase是一个分布式的、面向列的开源数据库&#xff0c;该技术来源于 Fay Chang 所撰写的Google论文“Bigtable&#xff1a;一个结构化数据的分布式存储系统”。就像Bigtable利用了Google文件系统&#xff08;File System&#xff09;所提供的分布式数据存储一样&#xff…