python笔记(速通Python)

Python

  • Python的历史

Guido von Rossum,一位毕业于阿姆斯特丹大学的荷兰人,1990年,凭一己之力开发出了第一个版本的python的解释器,并一直主导着python的开发。

目前有python2和python3两个分支。

  • Python的性质和优缺点
  1. 计算机语言可以分为机器语言,汇编语言和高级语言,python,java,      c语言,c++都属于高级语言。
  2. 高级语言程序可以通过解释和编译进行。
  3. 相比与编译型语言c语言,python是一门解释型语言,每次程序 运行时随时翻译运行。
  4. Python的优点:简介优美,易学习,可扩展性,可嵌入性,可移 植性,开发效率高。

  Python缺点:速度慢,代码不能加密。

  • Python的基础知识

1.print(hello world)

即打印hello world,下载完python后可以通过命令提示符,IDLE或者pycharm来运行。

2.注释

为了方便阅读代码,我们通常会在某些代码后面加上注释,被注释的代码在运行时不会被运行,加注释有两种方法,第一种就是在代码前加#,则这一行代码都被注释,第二种方法就是在一段代码的首尾处加上 ””” 代码”””或者’’’代码’’’

比如#print(“hello world”)

‘’’print(“hello world”)’’’

“””print(“hello world”)”””

3.\n换行

  print(“hello\n world”)

  运行结果为

  Hello

  World

4.变量

  变量的值随时变动,根据最后的值来定义

  A=1

  A=2

  Print(A)的结果则为2

5.用type可以查看变量的类型值

type(1)的运行结果就为int

6.使用id()函数可以查看变量的地址

  id(2)的运行结果可能为10031531456之类的地址

7.变量命名

1)变量名只能包含字母,数字,下画线,且不能以数字开头。

2)变量名不能包含空格

3)不能将Python关键字和函数名做变量名

4)命名时应该注意简短且具有描述性

8.help()函数

  当遇到不了解的内置函数时,可以使用help()函数来查看它的使用以及所需要的参数。如:help(print)

9.input()函数

  输入函数,无论输入什么,都会被定义为字符串类型,一般用法:变量名 = input()

  1. 强制转换

当我们需要进行操作时,可能会遇到类型错误的问题,比如一个字符串+一个整数则会报错,这时候则可以使用强制转换。如int(a)+10

  1. 导入模块
  1. import 模块名  (直接导入模块,使用其中的函数则需要模块名.函数名()  )
  2. from 模块名 import 函数 (从模块中导入函数,但只能使用模块中的这个函数)
  3. import 模块名 as 别名 (这时候使用函数则可以变为别名.函数名(),方便了使用)
  4. from 模块名 import as * (从模块中导入所有函数,一般不建议使用,会耗费许多内存)
  1. import this

   Python 之禅

  1. 变量类型

  整形int  bin()转换成二进制,hex()转换成十六进制,oct()八进制

  浮点数 float

  布尔型 bool  只有True和False两种类型

  复数 complex  complex(a,b) a为实部,b为虚部 一般用法: a=complex(10,20) a.real 为实部  a.imag 为虚部

  字符串 str

  1. 转义字符

  使用反斜杠\

  使用r

  1. 字符串索引

   A = hello   则A[2]=l

  1. \a(响铃)

Print(‘\a’)运行结果就是电脑响铃

  1. \b(退格)

Print(‘hello\b world’)运行结果是hellworld

  1. 字符串拼接

Print(hello + world)运行结果为helloworld

  1. 字符串的复制

Print(‘hello’*2)运行结果为hellohello

20.列表

1)列表的赋值

X = [1, 3.3, ‘hello’, [1,2]]

2)列表的删除以及列表元素的删除

del(x)   del(x[1])

3)列表的索引

X[0] = 1

4)列表的添加

X += [添加的元素]

X.append()   在列表的最后面添加元素

X.extend()的作用与X +=效果一样

X.insert()在列表中插入值,如X.insert(1,10)的值为[1, 10,3.3, ‘hello’, [1,2]]

5)列表元素的删除

del(x[1])   

A = x.pop() 删除并取出

Remove(值) 删除不取出

  1. 列表的切片

Print(x[2:4]) = [3.3, ‘hello’]

Print(x[:4]) = [1, 10,3.3, ‘hello’]

完整的切片:

[第一个截取的地址:第二个截取的地址:步长]

如x[1:5:2]就是从第二个截取,截取到第四个,其中步长为2

运行结果为[10,’hello’]

  1. 列表的翻转

X[ : :1]就可以把列表反转

  1. 切片赋值

X[ :3]=[10,20,30] 运行结果为[10,20,30, ‘hello’, [1,2]]

23.Index()索引函数

X=[2,5,2,4,7,5,9,7,2,5]   index(2# 寻找的元素,1# 从第几个元素开始,4#,从第几个元素结束)=2

24.翻转函数

1)Reverse函数 例:x= [1,2,3]   x.reverse()   print(x)   得到[3,2,1]

若直接用y=reversed(x) 无法得到结果  需加上print(list(y))

2)sort函数 默认sort(key 判断标准,reverse 排列顺序 默认reverse=false从小到大排,若为字母,按照字母序列排)

len函数可将字符串化为字符数,将列表换为列表中的元素数  

max函数求最大值;

min函数求最小;

3)Sorted函数 

基础语法格式为list=sorted(iterable,key=None,reverse=False)

iterable 表示指定的序列,key 参数可以自定义排序规则;reverse 参数指定以升序(False,默认)还是降序(True)进行排序。sorted() 函数会返回一个排好序的列表。

4)eval函数 计算字符串---可以将字符串型转化为去引号的相应类型

例:eval(‘1+2’)得到3

5)Exec函数  执行字符串,无返回值

例: exec(“print(3)”)  得到3

6)求和函数sum函数 

例:x=[1,2,3]  print(sum(x,10#初始值))=16

7)Zip函数  

例:x=[1,2,3,4,5,6]  y=[a,b,c]  z=zip(x,y)  print(list(z))得到 (1,a) (2,b) (3,c)

8)enumerate函数--枚举对象

例:x=[‘a’,‘b’,‘c’,‘d’]  y=enumerate(x)  for i in y  print(i) 得到     (1,b)  (2,c)  (3,d)

9)Range函数

序列解包

x,y,*z=1,2,3,4   print(z)=[3,4]

25.字典

1)生成字典

  1. 直接生成

2.dict函数  print(dict(n=7,m=6))得到{n:7,m:6}

3.fromkeys函数 

dict.fromkeys(‘hello’) 得{‘h’=None,’e’=None,’l’=None,’o’=None}

  1. 访问值
  1. d[key],条件是键在字典中
  2. get函数   print(d.get(key)) 若该key在字典中,输出值;不在输出None
  3. item函数可以访问所有键值对
  4. keys函数访问所有键
  5. values函数访问所有值

3)修改键值

  1. 直接换  

对于已有键d[‘x’]=1945029241改变键值,对于未有键d[‘y’]=666新增键值

  1. Setdefault  d.setdefault(‘666’)即添加名为666的键若不赋值则值为None
  2. Update   已存在的键值用update后括号中的字典替换,不存在的键添加在原列表中python笔记(速通Python)_第1张图片

4)删除键值

  1. Del 函数直接删除键及其值
  2. pop函数(有返回值!) 与对列表时不同,不可省略参数key.
  3. popitem 删去键值对整体并返回键值对整体
  1. 打印键值

1.For i in person:

Print(i,person[i])

2. For i,j in person.items():

Print(i,j)

3.for i in person.keys():

print(i,person[i]);

  1. 集合
  1. 集合的特点:元素的数据类型不可变(数据类型也不能是字典,列表或集合);元素无序且唯一
  2. 利用集合元素的唯一性去重和关系运算
  3. 集合的创建与删除

1)接赋值创建b = {1,3,4}

2)Set函数创建 例:b = set(‘world’) print(b)得到{‘w’,’o’,’r’,’l’,’d’}

3)Add函数用以添加元素

4)  Pop函数用以随机删除一个元素,remove函数用以指定删除函数(若无指定函数,报错),discard函数用以删除函数但若无指定函数不会报错

5)集合的关系运算

并集:使用union函数创造两函数的并集,update函数更新函数

交集:intersection函数创造

差集:difference函数--利用了并集,或直接a-b

python笔记(速通Python)_第2张图片

27.随机函数random

1)导入random模块

2)Random.choice表示输出列表x中的一个随机数

3)Random.randint生成括号中两元素之间的随机整数

28.格式化运算符

1)替换浮点数  %f在百分号(“ ”内的%)后加整数表示打印的宽度,加小数如:%.2表示保留2位小数

2)字符%s

3.)整数%d

4){}替换任意类型,后接.format()

例:name=’xyj’,age=19,score=150

Print(“我叫{},我{}岁,我高考{}分”.format(name,age,score)))

(1)若在{}中填整数表示位置索引

例:Print(“我叫{2},我{0}岁,我高考{1}分”.format(age,score,name))

(2)若在{}中填变量名同样可表示索引(需要给字段和参数命名,一一对应)

例:Print(“我叫{n},我{a}岁,我高考{s}分”.format(a=age,n=name,s=score))

(3)空{}和{变量名}可以混用,但是注意顺序!

(4)*的使用,调用字典、列表

例: 调用列表d:Print(“我叫{n},我{a}岁,我高考{s}分”.format(*d)))

调用字典info:Print(“我叫{n},我{a}岁,我高考{s}分”.format(**info)))

(5)使用f字符串

例:Print(f“我叫{name},我{age}岁,我高考{score}分”)

  1. 修改字符串大小写

1)capitalize使一句话中第一个字母大写,其他字母小写

2)title使一句话中每个单词首字母大写

3)upper和lower全大或全小写

4)swapcase大写变小写,小写变大写

30.对齐和空格的处理方法

1)ljust左对齐,后接三个元素,分别是self,宽度,填充物

例:

2)rjust右对齐

  1. center居中
  2. lstrip,rstrip左右删除,括号中填充指定要删除的字符
  3. 两边删除

31.字符的分割

  1. split(self,sep# 分隔符默认空格,maxsplit#最大分隔次数)

lsplit左分割,rsplit右分割

  1. splitlines按照(\n,\r) 等分割

例:print(‘1+2\n+3+4’.splitlines()) 得到[‘1+2’,’+3+4’]

  1. partition得到分隔符前部分,分隔符本身,分隔符后的部分

例:str = ’hello, welcome to Beijing’

Print(str.partition(‘w’))得到(‘hello,’,’w’,‘elcome to Beijing’)

32.字符串拼接

Join函数

33.字符串查找与替换

判断:Startwith ;isalpha;endwith

判断是否全为字母isdigit

是否全为数字isalnum

是否全为字母或字符isspace

查找:find(从左往右找),

rfind(从右往左找)找到报位置,找不到报-1;

index,rindex找到报位置,找不到报错

替换:replace只替换一种,不需要替换前后长度相等

maketrans先产生映射再替换

例:table = str.maketrans(‘as’,’be’)--------利用密码表

Print(table)得到{97:98,115:101}

配合translate  如:print(d.translate(table))即利用映射进行替换

34.函数

  1. 定义:def后接函数名(函数名尽量不和内置函数名重复)
  2. 文档字符串和注释

使用”””三引号为函数添加文档字符串,使用help函数可以查看定义函数的文档字符串 或者用d.__doc__查看文档字符串

  1. 调用函数时回到之前的定义
  2. Callable函数可以查看函数是否可调用,不要加查看函数的括号,函数加括号表示要调用该函数,仅查看不用加括号
  3. 添加函数的参数

例:Def person(name,height=”150”,weight=”75”)#即默认身高150体重75,但是名字必须赋值

Print(name,height,weight)

person(李四)得到:李四,150,75

1)定义时默认形参数必须在所有非默认形参数后面

2)若对象为可变对象,则每次调用函数时,若对默认形参引用的对象进行修改,则修改的都将是同一对象(为防止此现象发生,可在定义时将该对象定义为none,然后每次判断;或者直接取消该参数,将其移至函数操作内部)

3)函数内的局部变量无法在全局使用,但是在使用函数时,优先使用局部变量,若无该局部变量再使用全局变量

4)不能在函数内部直接修改全局变量的值,但是可以使用global后接全局变量以声明在函数内部使用的是全局变量(但是不推荐在函数内部修改全局变量)

6.函数返回值

Return

定义函数若无返回值,打印函数本身并默认返回None,无结果。

Test()函数带入值测试函数

7.可变长度参数

Def add_many(a,b,*iter,c) #iter可以任意命名

注:加一个*收回后续所有给出的值,加两个**仅收回关键参数

  1. 递归

函数的使用:在函数内部调动自己

  1. lambda表达式子

定义名 例:x = lambda a,b=6:a+b*3

即将x函数定义为将a与二倍b相加,且参数b默认为6

  1. 类和对象
  1. 定义类

class 类名(object):  #定义类名需要大写首字母

  1. 构造

例:  

def __init__(self,name,age,weight)

#若添加__slot__则规定只能有后面几个参数

Self.name=name

Self.age=age

Self.weight=weight

Print(‘666!’)#每次创建对象都会执行

Def sleep(self)

Print(‘%s睡觉’%.self)

  1. 添加修改属性

Gender函数可以用于添加属性,s1.name=’李四’实现修改name参数

  1. 判断

Isinstance函数可以用于检查一个对象是否属于该类的参数

函数用于检查一个类是否为另一个类的子类

5.当使用print语句时,会自动调用__str__方法来将对象转化为 字符串输出。

def __str__(self):

return '姓名:{},年龄:{}'.format(self.name, self.age)

__repr__方法也用于将对象转化为字符串,但优先级低于 __str__方法。

__add__方法使得两个对象可以相加。

6.实例对象和属性

调用对象的属性必须通过实例对象 例:应用p1.type而非person.type

修改对象属性即实例属性无法修改类属性,若使用类名person调用,必须手动给self传参

7.私有属性和方法的使用

私有属性(创建类时属性名前加__表示这是一个私有属性);不能从外部直接通过对象名访问到,可以访问_类名+属性名;

Def get__bike(self):

Return self.__bike即通过内部访问调用

  1. 静态方法和类方法
  1. 静态方法:在定义函数def前加一行@开头的装饰器表示该方法与实例对象无关,是一个静态方法。
  2. 类方法:在Python中,类方法是一种特殊的方法,它是与类相关联的方法。类方法可以访问类变量和类属性,并且只能通过类本身来调用,而不能通过实例来调用。类方法使用@classmethod装饰器来定义,其第一个参数是cls,代表类本身。类方法可以用于创建类变量、工厂函数等

python笔记(速通Python)_第3张图片

39.继承

Python中的继承是一种机制,它允许一个类从另一个类中继承属性和方法。被继承的类被称为父类或基类,继承的类被称为子类或派生类。子类可以继承父类的所有属性和方法,并且还可以添加自己的属性和方法。

Python中的继承通过在子类中使用父类的名称来实现。例如,下面的代码定义了一个父类Animal和一个子类Dog:

python笔记(速通Python)_第4张图片

在这个例子中,Animal是父类,Dog是子类。Dog继承了Animal的属性和方法。子类可以重写父类的方法,这就是为什么在Dog类中定义了一个新的speak()方法。

可以使用super()函数来调用父类的方法。例如,下面的代码重写了Dog类的__init__()方法,并使用super()函数调用。

40.文件

1)打开文件方式,默认r表示只读

2)打开文件时的编码方式,unicode是全球统一编码,在内存中运行; utf-8优化

3)Open()会有一个返回值,即打开文件对象

4)文件路径可以是绝对路径或相对路径。绝对路径包括文件存储在电脑的哪个盘符,复制时最好使用原始字符串,并在前面加上mode=r以只读方式打开文件(如果是rb,则以二进制形式读取字节)。相对路径是指当前文件所在的文件夹位置。

你可能感兴趣的:(机器学习笔记分享,python,笔记,开发语言)