两周预科班所学内容总结

一、python入门

1、概况

语言:

计算机语言:人和计算机之间沟通的编程语言

计算机语言的分类:

(1)机器语言

(2)汇编语言

(3)高级语言

执行方式:

(1)编译执行

(2)解释执行,有自己的解释器

        优点:移植性好   缺点:速度慢

 

1.python的发展史

龟叔 1989年

2.python版本

Python2x-------2.7(已停止更新)

Python3x-------

 

4.python的特点

(1)语法简洁

(2)面向过程和面向对象

(3)可扩展

(4)解释执行的语言可以跨平台

(5)强大的支持库

 

5.python的应用领域

Web开发

网络爬虫

数据分析和人工智能

游戏编程

 

6.开发环境

Python的安装:勾选addpath  ,要自定义安装选择路径

Pycharm安装:自定义选择路径

 

 

7.第一个python程序执行

执行方式:

(1)交互式执行: python 等待输入命令,一行一行的执行python代码

(2)脚本执行: 1.将python的所有代码都写在py文件中。

                            2.在控制台中进输入python命令+文件名.扩展名

 

 

 

2、 变量(常量正课时讲)

1. 变量定义:使用指定的名称来绑定特定的值

2. 变量赋值:  变量名= 变量值   =是赋值,不是数学意义上的=

3. 内存结构(内存图一定要会画)

4.多个变量指向同一个内存地址

在python中,基础数据类型(数值、布尔、字符串、字节)属于基于内存的管理。

5. 定义变量和修改变量绑定

定义变量:初次赋值

修改变量的绑定:对已有变量进行重新赋值,先跟之前的值进行解绑,再绑定新的值。

>>>当变量名绑定变量时,计算机p解释器做了什么事情?

(1)在内存中创建一片内存存变量值

(2) 在内存中创建一片内存变量名

(3)将变量名绑定到变量值

6. 变量名

(1)字母、数字、下滑线,注意不要用数字开头

  (2) 变量在使用之前必须赋值

(3)变量可以指向不同的对象,因为python是鸭子类型

7. 平行赋值

x=1

y=2

x,y=y,x

8. 输入输出

1. print(内容)

  Print(多个内容使用,分隔)

  End:指定print的结束符号,默认是\n

  Print(“aa”,end=”修改后的结束符号”)

 

2.input(“提示信息”)

 输入的值是字符串

 Input是阻塞

3. 注释

单行注释  #:从#开始,直至当前行结束

注释的内容是不被解释器解析。

 

 

 

3、数据类型

1. 数值

(1)整数 int

整数的四个进制:二进制(0b)、八进制(0o)、十进制、十六进制(0x)

进制之间转换:

其他进制转换成十进制:乘幂法

十进制转成其他进制:下除法,取余从下到上

 

在python中使用函数进行转换

bin 二进制

int 十进制(整数)

oct 八进制

hex 十六进制

 

(2)浮点

小数,在python中只有十进制的浮点类型

科学计数e

浮点类型在计算机中计算存在不精确性

 

(3)复数

实部和虚部都是浮点类型

实部+虚部j

实部real、虚部imag

 

2. 布尔类型 bool

布尔类型是整型的子类型

True---1

False---0

 

3. 转换

 

int():将其他类型转成整型,默认是0,向0取整, 不能将复数类型转换成整型

float(): 将其他类型转成浮点类型,默认的0.0 , 不能将复数类型转成浮点类型

complex():将其他类型转换成复数类型, 默认是0j

bool():将其他类型转换成布尔类型,   只要不是0  0.0   0j 都转换成Ture

 

4. 运算级别

复数>  浮点  >整型

运算中,结果取级别高的类型。

 

 

 

4、运算符

运算符定义:具有特殊计算规则的符号

操作数

运算符+操作数=表达式

N元运算符:N个操作数

1. 算数运算符

+ - * / 

**  m**n

//  向下取整

%   取模:余数=被除数-除数*商    商:向下取整

2. 比较运算符

返回布尔类型

>  <  >=  <=

==  !=

==: 内容一致

(Python2不等于<>)

3. 身份运算符

Is  、is not

Is: 判断对象是否是同一个

Id():返回一个对象的地址id

作为基础数据(数值、布尔类型、字符串、字节),基于内存的管理,==跟is返回值一致

 

4. 逻辑运算符

返回值:布尔类型,计算值

And:同时为True,才为True,否则False

Or:同时为False,才为False,否则为True

Not

 

短路现象:

And:第一个表达式如果为假,则结果为假,第二个表达式不执行

Or: 第一个表达式如果为真,则结果为真,第二个表达式不执行

 

5. 位运算符

原码反码补码

正数:原码反码补码是一样

负数:原码,负数的二进制码(对应正数的二进制码,最高位取1)

      反码:符号位不变其余取反

      补码:反码+1

计算机中以补码形式存储数据,所有的计算都是按补码进行的计算

补码变回原码:反码+1

 

& 按位与: 同时为1,则为1,否则为0

|  按位或: 同时为0,则为0,否则为1

^ 按位异或:相同则为0,不同则为1

~ 按位取反:包括符号位都取反

 

6. 赋值运算符

= 赋值 变量赋值

+=  -=……

 

7. 成员运算符

In: 判断元素是否存在对象中

Not in

优先级

算数运算符> 比较运算符>逻辑运算符> 赋值运算符

 

 

5、字符串

1.定义:由字符组成序列,单个字符也是字符串

2.创建:

双引号

单引号:使用同双引号

 (交替使用双引号和单引号可以达到输出对方的目的)

  如果定义的内容比较长,需要使用续行符\

 

注意:三引号:定义字符串时可以包含换行

             三引号:不是注释

 

创建空字符串,空字符串不是None

 

3.转义

\: 单引号 双引号  \

\n: 换行

\r: 回车

前缀r:将字符按原样输出

4.字符串的操作

1. 运算符

+ * in  not in   is  is not  ==  < >  !=

字符串的操作大部分都是新创建字符串

 

2. 索引

字符串[index]

Index: 第一个从0开始   

       正数:从左到右

       负数:从右到左

如果索引越界会报异常

索引的范围:[-len(s),  len(s)-1]

字符串的元素是不可变“abdjkldj”

 

3.切片:

字符串[start:end]

获取字符串多个元素,包含start,不包含end,截止到end-1

Start:  正数、负数、0

End:   正数,负数、0

默认方向从左到右,注意start<end

 

#字符串的切片除整切片以外都是新创建字符串对象

# 字符串的整切片不是新创建字符串对象,直接指向自己原来的对象

 

4.字符串的相关方法

(1)count统计(可越界不报错)

(2)Index  find 查找(查找不到,前报错,后不报错)返回查找内容在原中的位置

(3)join 拼接字符串(新建字符串)

(4)replace 替换

(5)strip 剪切(从两端开始去除)

(6)split 切割(切割完字符串就没有了)不写参数,默认按照空格切,将所有的空格都切割掉

(7)upper lower 大小写

(8)isnumeric  isalpha  判断是否是数值类型、字符类型

(9)center (width,char)占位字符  

如果width<len(s),不会对原串进行截取

若原字符串长度奇数,当从右侧开始填充

若字符串长度为偶数,从左侧开始填充

 

 

 

 

 

 

6、字节

1. 定义:多个单字节构成的序列是字节 

单字节:支持8个数据位

 

定义时跟字符串类似,加前缀b

B=b”dfldsj”

 

2. 操作和方法

同字符串

索引跟字符串不同,得到的是ascii码

 

 

 

 

 

7、格式化

1.%

%s====str()

从左到右的顺序,一个变量对应一个%s 

格式:  字符串%s  %  (变量,)

例如:print(“%s的成绩是%s”%(name,score))

 

2.format

{}====str()

可以使用从左到右的顺序,一个变量对应一个{}

也可以使用索引指定(索引从0开始)

格式: 字符串{}.format(变量,)

 例如:print(“{}的成绩是{}”.format(name,score))

 

 

3.f字符串常量

3.6版本之后才可以使用

格式f”{变量}字符串”

例如:print(f“{ name }的成绩是{ score }”)

 

 

 

 

 

8、流程控制

顺序

选择

循环

 

1.选择

if 布尔条件:

   If成立的执行代码块,如果有多行需要保持相同缩进

else:

   if条件不成立的时候执行的代码块

注意:

(1)if后面是条件判断,可以单独存在

(2)else后面没有条件,不能够单独存在

(3)编程过程中发生概率大的放在前面判断

(4)如果有多个if并行存在,代码会每个if执行一次

 

2.循环

for   每个元素的变量名 in  可迭代对象:

   循环体

 

for I in 外循环对象:

   for j in 内循环对象:

      循环体

嵌套for循环:先理清楚内循环,再去理外循环。

 

Range(start,end,step):

Start默认值是

Step默认值1

包含start,不包含end

产生一个列表

 

 

 

9、列表

1.定义: 能够存储多个元素的数据类型

特点:有序、元素可以是多种数据类型,列表是可变数据类型,元素可以修改。

2.创建

列表名=[元素,]

空列表=[]

 

应用,布尔条件判断 空列表---False

 

3.相关操作

1.运算符

+ *  in  is  not  >  < ==

注意:

+* 是元素的重复,新创建列表

 

In 元素是否在列表中。

 

Is ==

当定义相同列表时,其实创建的是不同的对象。特别是里面的元素是可变类型,也是新创建的对象

 

> 按照元素逐个比较

 

 

2.索引:

列表[index]

Index :正数、负数、0

使用索引可以修改列表中的元素。

注意:使用索引进行赋值,是对某一个元素进行的修改。

A=[1,2,3]

A[0]=[“a”,”b”]

结果[[“a”,””b],2,3]

 

 

3.切片

Start : end

注意:使用切片进行赋值,改变的是整个列表的元素,

     建议使用切片进行赋值,仍然赋值给列表。

A=[1,2,3]

A[1:3]=[“a”,”b”]

结果:[1,”a”,”b”]

 

4.相关方法

(1)添加

append:向列表的尾部添加一个元素

insert:向指定的位置添加一个元素

(2)删除

①pop:删除指定位置的元素,如果index不写,默认删除最后一个元素。一次只删除一个元素

     返回值是被删除的元素

②remove:删除指定内容的元素

 

(3)统计、反向、检索

count

reverse:原地反向

index:查找元素的位置

 

(4)排序:原地排序

如果列表中元素不可比较(类型不同),不能进行 排序

reverse=False默认升序

降序需要将reverse=Ture

sort(reverse= Ture)

sorted()新建内存去存储

(5)复制

赋值:指向的是原来的对象。

copy:浅拷贝:只拷贝当前的列表对象。

要求会画内存图

结论:对于不可变类型的元素,如果原来对象发生改变,复制的对象不发生改变。

        对于可变类型的元素,如果原来对象的元素发生改变,复制的对象也跟着一起改变。

 

 

 

 

 

10、元组

1.定义:

为了防止列表对象被修改,所以使用元组保证数据的安全性。

元组:戴了枷锁了列表

 

元组中的元素,本身不能被改变。如果元组的元素是可变对象,当前元素的元素是可以 被改变的,

 

2.创建

A=(1,2,3)

B=1,2,3不建议这么创建

 

 

3.相关操作

操作符

同列表

 

(1)索引:

使用方式都跟列表一样,但是不能对索引进行复制。

(2)切片:

使用方式都跟列表一样,但是不能对切片进行复制。

 

字符串的整切片---指向原来的字符串

列表的整切片----

元组的整切片----

  

4.相关方法

count()

index()

 

 

 

 

 

11、字典

1. 原理:

字典是根据key应用hash函数生成唯一的数值,数值跟value内存相关联,可以直接通过访问key,访问到value,加快了数据的访问速度。

2. 创建

{键:值,}

 

字典特性:

(1)字典的元素无序

(2)key不可重复

(3)key必须是不可变类型

 

3. 相关操作

可以支持is  in  ==

字典的访问:字典[key]  :key必须存在

字典元素追加:字典[key]=值: 如果key存在,则覆盖value,如果key不存在,则追加

 

4. 方法

fromkeys : 创建同值不同键的字典

pop:删除指定键的键值对,返回删除的键值对的值

get(key,default): 字典[key]如果key不存在会报错,但是get不会报错,会返回default。

 

keys()    获得所有的键

values()  获得所有的值

items()  获得所有的键值对,以元组的形式存在

k,v  s.items()

 

 

 

 

 

12、集合

1. 原理:集合的底层是字典实现,字典中key的集合

2. 创建:{元素,}

集合特点:不可重复  元素类型不可变  无序

3. 相关操作

操作符跟字典一样

 

注意:不能使用任何索引的方式获得集合的单个元素

 

对于字典和集合来说都操作的是key

 

4. 方法

add 添加

remove 删除remove元素不存在会报错()

遍历

 

 

 

 

总结:

1数值类型:整数、浮点、复数

2布尔:是数值类型的子类型

转换

int()

float()

complex()

bool()

3字符串

4字节

5列表

6元组

序列:有序,可重复(字符串、字节、列表、元组)

序列特点:len

索引

切片

都是可迭代对象

有公共的操作符

 

序列的相关方法:list能够将序列转换成列表

tuple(序列)能够将序列转换成元组

str(数值) 只能将数值类型的数据变成字符串,

将列表拼成字符串用join方法,使用元素必须是字符串

bytes(数值):将序列变成字节

list()

tuple()

bytes()

str()

max()

min()

sum()

sorted() 新创建字符串

reversed() 新创建对象进行逆序

len()

 

 

7字典

8集合

无序,不可重复:

dict()将键值对转成字典

set(序列):将序列变成集合

去重:

 

 

 

 

 

 

13、函数

1. 函数的作用

函数是实现单一或者多个功能的代码段,函数是以“功能”来划分。

函数的用处:

(1)减少代码的重复

(2)易于扩展和维护

2. 函数的分类

内建函数

自定义函数

3. 自定义函数

1. 定义

def 函数名([参数……]):

   函数体

   [return 返回值]

函数名: 一般以函数的功能起名,不要跟内建函数或者其他模块重名。

(1)字母数字下划线,不能以数字开头

(2)不能是关键字

 

2. 参数

1. 位置参数

函数调用时的参数顺序、数量跟定义时一致。

注意:按照顺序调用,如果定义了位置参数就一定要传递(除有默认值以外)

 

2. 默认参数

在函数定义时,给参数赋予默认值。

当函数调用时,如果有参数值,那么使用传入的参数值给参数赋值

如果没有参数值,则使用默认参数给参数赋值。

 

注意:

(1)位置参数、命名关键字参数都可以是使用默认参数

(2)传递参数时:如果传入参数,则使用传入的值,如果没传递参数则使用默认值

(3)如果有位置参数,默认参数在位置参数之后

(4)默认值需要使用不可变类型,不能使用可变类型

 

3. 命名关键字参数

定义的时候,参数前面加* ,

调用的时候,必须使用:参数名=参数值

 

注意:

(1)如果定义了命名关键字参数,除非有默认值,否则一定要传入参数

(2)参数名=参数值

 

作用:

(1)增加程序的可读性

(2)可以忽略参数的顺序

(3)可以有默认值。

 

4. 可变参数

参数的数量不定

将位置参数都打包成元组传递给函数。

 

打包: 定义函数时,使用* 参数,会将所有的位置参数打包成元组

拆包:调用函数时,使用* 参数 ,对参数进行拆包。

 

5. 关键字参数

收集素有的命名关键字参数

参数是以字典形式传递给函数。

 

打包:定义函数时,使用 ** 参数 ,会将参数打包成字典

拆包:调用函数时,使用**参数,进行拆包

 

顺序:  位置>  默认参数  > 可变参数/命名关键字参数> 关键字参数

可变参数和命名关键字参数不能同时使用。

 

 

 

3. 返回值

格式:使用return

 

返回空值None:

(1)return None

(2)没有return

(3)只写return

 

返回值可以返回表达式,也可以返回变量,无论返回什么,返回都是对象。

 

多个返回值:

使用元组可以返回多个返回值,也可以直接使用多个变量接受多个返回值,必须一一对应。

 

注意:当程序执行了return之后,会跳出函数,return之后的语句不再执行。

 

4. 函数的说明文档

函数定义下一行,可以使用”””完成对函数功能的注释。

调用

函数名._ _doc_ _

help(函数名)

 

5. 函数的注释(有些有,有些没有)

直接在函数定义时加->类型,可以指定返回值的类型

函数名._ _annotation_ _

 

 

 

 

 

 

 

14、类和对象

一、基本概念

1.对象:

万物皆对象。

对象是具有属性和行为。

属性:名词

行为:动词

 

# 对象是具体的实现,对象本身是具体的内容。

 

2. 类

类是抽象的

 

将对象按照需求分类——类

 

3. 类和对象之间的关系

类是对象的抽象,对象是类的具体实现。

类:蓝图,模板。

对象:类产生的具体实例。

 

 

二、创建类

1. 定义

Class 类名:

   类体

 

创建对象:

类名(参数):参数取决于init方法

 

2.在类中定义实例属性

def _ _init_ _(self):

   属性初始化

   self.属性名=值

 

建议将所有的属性都写在init中进行初始化。

 

3.在类中定义实例方法

class 类:

   def 方法名(self,其他参数):  # self是第一个参数

      pass

 

实例方法和实例属性调用:必须先有实例(对象),通过  对象.属性名/方法名

调用的时候,不需要传入self

 

posted @ 2018-08-29 21:33  尨挚  阅读(212)  评论(0编辑  收藏  举报