Python基础复习笔记

变量

注释

单行注释 #
多行注释 三个单引号 or 三个双引号

变量类型

数字型

int 整型 float 浮点型 bool 布尔型True和False 复数型

非数字型

str 字符型

定义:单引号和双引号引用起来的就是字符串
可以使用for遍历
切片:字符串[开始索引:结束所有:步长] [::-1] 反转字符串

列表 list
操作
增加

insert 在指定位置插入元素
append 在末尾追加元素
extend 将另一个列表的数据追加到列表

修改

列表[索引] = 数据

删除

del 列表[索引] 删除指定索引的数据
pop 删除最后一个元素
pop(索引) 删除指定索引的数据
clear 清空列表

统计

if 数据 in 列表 判断列表中是否有某个元素
count 数据在列表中出现的次数

排序

sort 升序排序、从小到大
sort(reverse=True) 降序排序,从大到小

元组

元组的元素不能修改
()定义 逗号分开

字典
定义 {}
和列表的区别

列表是有序的对象的集合
字典是无序的对象的集合
字典使用的键值对形式存储数据{key:value}
值可以取任何数据类型,但键只能使用字符串、数字、元组

遍历

遍历所有的key: for key in 字典.keys()
遍历所有的value:for value in 字典.values()
遍历所有的键值: for item in 字典.items()

删除

del.字典[key]
字典.pop(key)
popitem() 随机删除一个
clear() 清空字典

修改

字典[key] key存在—-修改 key不存在—–新建

查看变量的类型 使用type()
变量的格式化输出

%s 字符串
%d 数字
%f 浮点数 %.2f 表示保留两位小数
%% 输出%

变量命名规则

字母、数字、下划线、不能以数字开头
不能和Python中的关键字重名

运算符

算术运算符
比较(关系运算符)
赋值运算符

逻辑运算符

and 并 都为真才会返回True
or 或 有一个为真就会返回True
not 非 取相反

循环和判断

判断

if 条件:条件成立要执行的代码 else:条件不成立要执行的代码
if条件1:条件1成立 elif条件2: 条件2成立 else:条件都不成立

循环

while 条件(判断变量是否满足添加):
条件满足时,做的事情1
条件满足时,做的事情2

break 跳出整个循环
continue 跳出本次循环,执行下一次的循环
随机数使用 import random random.randint()
循环嵌套

九九乘法表

# 定义起始行

# 最大打印9行
while i <= 9:
    #定义起始列
    j = 1

    # 最大打印i列
    while j <= i:
        # end="",表示输出结束后,不换行
        # "\t"可以在控制台输出一个制表符,协助在输出文本时对齐
        print("%d * %d = %d" % (i, j, i * j),end="\t")
        i += 1
        print("")   # 换行
        j += 1

函数

定义 def 函数名()
调用 函数名()

#函数的返回值 return 之后的代码是不会执行的
四种类型

无参数、无返回值
无参数、有返回值
有参数、无返回值
有参数、有返回值

形参和实参
形参

定义函数时,小括号中的参数,是用来代替真实数据用的,在函数内部作为变量使用

实参

调用函数时,小括号中的参数,是传递到函数内部的真实数据

函数的嵌套

一个函数中又调用了另一个函数

缺省参数

形参设置默认值
调用函数时,如果没有传入缺省参数对应的实参,则实参使用默认值
带有默认值的形参一定要位于参数列表的最后面

命名参数

调用函数时,实参可以指定对应的形参,称为命名参数

全局变量和局部变量
全局变量

在函数外边定义的变量叫做全局变量
全局变量能够在所有的函数中进行访问
如果在函数中修改全局变量,那么久需要使用global进行声明,否则出错

局部变量

函数内部定义的变量
局部变量的作用域只在函数内部

不定长参数

args 将传递的参数包装成了元组
kwargs 不存在的命名参数包装成字典

递归函数

个函数在内部调用其本身,这个函数就是递归函数

引用

python中可以使用id函数查看引用的是否为同一个内存空间,如果返回值相同,说明引用相同
在python中,值是靠引用来传递的

可变类型和不可变类型
可变类型

列表
字典

不可变类型

数值类型 int long bool float
字符串 str
元组 tuple

面向对象

面向对象-01

面向对象和面向过程

面向对象编程OOP,将具有相互关系的数据/操作封装成对象,以对象的角度去处理问题,让对象来完成相应处理
按照业务逻辑从上到下设计程序的方式,叫做面向过程编程POP

类和对象
类:描述共同行为的集合,称为类(class)
对象

属性 方法

类是总结事物特征的抽象概念,而对象是具体存在的某个实物
关系

在编程中,类就是创建对象的模板,用来定义对象公共的行为
类总结了对象的共同的特征,有利于复用代码创建拥有相同特征的对象
每个对象必须有一个对应的类

定义类和方法
定义类

格式 class 类名:
方法列表
类名的命名规则按照大驼峰

定义方法

类是定义对象的共同行为的,也就是说在类中定义对象的方法
class 类名:
def 方法名(self):
第一个形参是self的,就是对象方法
对象方法定义时第一个形参必须是self,但在调用时,不要去传递self对应的实参

定义属性

对象.属性名 = 数据

创建对象

格式:引用对象的变量名 = 类名()
调用方法:引用对象的变量名 = 类名()
定义属性:引用对象的变量名.属性名 = 数据

self关键字

self表示当前调用方法的对象
可以使用方法更加灵活

init

init()方法叫做对象的初始化方法,在创建一个对象后默认会被调用,不需要手动调用
开发者可以实现这个方法,并在该方法中定义属性并设置初始值

str

如果直接print打印对象,会看到创建出来的对象在内存中的地址
str方法必需有返回值,且必须返回一个字符串类型的值

面向对象-02

私有属性

如果在属性名前面加了两个下划线 __ 则表示该属性是私有属性,否则为共有属性

为了数据安全,处理方式

添加一个方法,在方法内部先判断数据的有效性,再赋值属性
将属性定义为私有属性,避免对象在外部直接操作属性
私有属性只能在类的内部访问

私有方法

私有方法和私有属性类似,在方法名之前加了两个下划线 __ 则表明该方法是私有方法
私有方法只能在类的内部使用

del()方法

在创建对象后,Python解释器会默认的调用init()方法
在删除一个对象的时候,Python解释器也会默认的调用一个方法,这个方法是del()方法
当使用del删除变量时,只有当变量指向的对象的所有引用都被删除之后,也就是应用计数为0时,才会真的删除该对象,这时才会触发del()方法

继承

面向对象的三大特征
封装
继承
多态

继承就是某个类直接具备另一个类的能力(属性和方法)
格式 class 子类名(父类名):
给子类添加新方法就是可以在子类中直接添加方法就可以

重写父类的方法

当子类实现一个和父类同名的方法时,叫做重写父类方法
子类重写了父类的方法,子类再调用该方法将不会执行父类的处理

子类重写了父类的方法,依然想使用父类中的方法,则可以在类中使用super()来调用方法

父类名.方法名(self)
super(子类名.self).方法名()
super().方法名
父类的私有方法,属性是不会被子类继承的
可以通过调用继承的父类的共有放入方法,简接的访问父类的私有方法、属性

多继承

所谓的多继承,就是子类有多个父类
父类中的方法和属性会被子类所继承

鸭子类型

鸭子类型语言中,函数/方法可以接受一个任意类型的对象作为参数/返回值,只要该对象实现了代码后续用的属性和方法就不会报错

面向对象03

类属性和静态方法
类方法

@classmethod
参数 cls
方法不使用对象属性、方法,但是使用类属性/类方法

静态方法

@staticmethod
静态方法默认情况下,即不传递类,也不传递对象

new()方法

用于单例模式

异常处理

try:
可能出现异常的代码
except:
出现异常之后要执行的操作

try:
可能出现异常的代码
except:
出现异常之后要执行的操作
else:
如果没有出现异常,就会执行else中的代码’
ffinally:
无论有没有异常,都会执行这里的代码

Python爬虫笔记python基础知识,以TXT文件呈现 一、概述 Python是著名的“龟叔”Guido van Rossum在1989年圣诞节期间,为了打发无聊的圣诞节而编写的一个编程语言。 Python为我们提供了非常完善的基础代码库,覆盖了网络、文件、GUI、数据库、文本等大量内容,被形象地称作“内置电池(batteries included)”。用Python开发,许多功能不必从零编写,直接使用现成的即可。 龟叔给Python的定位是“优雅”、“明确”、“简单”,所以Python程序看上去总是简单易懂,初学者学Python,不但入门容易,而且将来深入下去,可以编写那些非常非常复杂的程序。 那Python适合开发哪些类型的应用呢? 首选是网络应用,包括网站、后台服务等等; - PythonWeb 其次是许多日常需要的小工具,包括系统管理员需要的脚本任务等等; - Python 另外就是把其他语言开发的程序再包装起来,方便使用。 - 胶水语言 在 爬虫 科学计算 等领域有独特优势 AI Python的优点 简单易学 完善的语言特性 天然开源 丰富的社区支持 Python的缺点。 第一个缺点就是运行速度慢,和C程序相比非常慢,因为Python是解释型语言,你的代码在执行时会一行一行地翻译成CPU能理解的机器码,这个翻译过程非常耗时,所以很慢。而C程序是运行前直接编译成CPU能执行的机器码,所以非常快。 但是大量的应用程序不需要这么快的运行速度,因为用户根本感觉不出来。例如开发一个下载MP3的网络应用程序,C程序的运行时间需要0.001秒,而Python程序的运行时间需要0.1秒,慢了100倍,但由于网络更慢,需要等待1秒,你想,用户能感觉到1.001秒和1.1秒的区别吗?这就好比F1赛车和普通的出租车在北京三环路上行驶的道理一样,虽然F1赛车理论时速高达400公里,但由于三环路堵车的时速只有20公里,因此,作为乘客,你感觉的时速永远是20公里。 第二个缺点就是代码不能加密。如果要发布你的Python程序,实际上就是发布源代码,这一点跟C语言不同,C语言不用发布源代码,只需要把编译后的机器码(也就是你在Windows上常见的xxx.exe文件)发布出去。要从机器码反推出C代码是不可能的,所以,凡是编译型的语言,都没有这个问题,而解释型的语言,则必须把源码发布出去。 二、安装配置 安装包下载地址: http://www.python.org/download/ Python目前分为两大版本,互不兼容: 2.x.x 3.x.x 下载的时候要注意区分 根据需要的版本进行下载 目前两者都有所使用 双击安装 设置环境变量: 将python安装位置配置到PATH环境变量下。 三、运行方式 shell方式: 在cmd窗口中输入python进入命令行模式 在其中以交互式方式执行 shell方式调用py文件: 在文件中编写Python脚本 文件后缀为.py 进入该文件所在目录 直接执行./xxx.py IDE模式: pycharm pyDev for Eclipse **Python编码 Python默认读取py文件时采用的编码格式是 ASCII 格式,如果文件不是该格式很可能出现乱码问题造成异常。 解决方法为只要在文件开头加入 # -*- coding: UTF-8 -*- 或者 #coding=utf-8 来通知Python解释器在读取文件时采用的编码集 四、标识符 在 Python 中,所有标识符可以包括英文、数字以及下划线(_),但不能以数字开头。 Python 中的标识符是区分大小写的。 以下划线开头的标识符是有特殊意义的。 以单下划线开头 _foo 的代表不能直接访问的类属性,需通过类提供的接口进行访问,不能用 from xxx import * 而导入; 以双下划线开头的 __foo 代表类的私有成员;以双下划线开头和结尾的 __foo__ 代表 Python 里特殊方法专用的标识,如 __init__() 代表类的构造函数。 五、语言细节 1.语句 Python通常一行为一条语句 不需要分号标识 Python 可以同一行显示多条语句,方法是用分号 ; 案例: print 'hello';print 'runoob'; 也可以使用反斜杠将一行语句分为多行解释: 案例: total = item_one + \.....................................................
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值