大数据分析(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 异常 
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 = 0
    while i < n:
        yield i
        i += 1

for i in func(10):
    print(i)
def func(n):
    i = 0
    while i < n:
        print(i)
        i += 1

for i in func(10):
    print(i)
#报错
"""
TypeError                                 Traceback (most recent call last)
Cell In[5], line 7
      4         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 = name
        self.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 私有变量和私有方法

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

北辰星Charih

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值