耗时600小时整理《Python教程全套》完全入门版,分享一起学习_高清附...

输出函数
print函数中单双三引号无需理解直接输出内容
print函数当中如果是表达式的话会进行运算
open函数中'a+'含义:a是以读写的方式打开文件,如果文件不存在的话就创建文件,如果存在的话在原有内容上进行追加,open函数会输入到文件上
1.所指定的盘符要存在。2.使用file=fp
注意:如果写a就写不了数据
转义字符与原字符
1.转义字符就是反斜杠+想要实现的转移功能首字母
2.字符串中包含反斜杠,单引号和双引号等有特殊用途的字符是,必须使用反斜杠对这些字符进行转义
3.可以使用转义字符显示,字符串中包含换行,回车,水平制表符或退格等无法直接显示的特殊字符
反斜杠:\\ 单引号:\' 双引号:\“ 换行:\n 回的:\r 水平制表符:\t 退格:\b
注意:\t在使用时,一个\t占据四个字符的位置。重开一个制表位取决于\t之前是否占满制表位,占满就重新开一个,不占满不重新开
print(hello\rworld) #world将hello进行覆盖
print(hello\bworld) #\b就是退一个格,把o退没了
1.使转义字符不起作用的字符就叫原字符
2.不希望字符串中的转义字符起作用,就使用原字符,就是在字符串之前加上r或R
3.原字符串的最后一个字符不能是反斜线,但可以是\\
二进制与字符编码
byte KB MB GB TB(进制为1024,8bit等于1byte)
print(chr(0b100111001011000)) #0b表示二进制=乘
print(ord('乘')) =20056
标识符和保留字
·不允许命名任何对象且具有特定意义的单词叫做保留字
import keyword #查找保留字
print(keyword.kwlist)
·规则:
·字母,数字,下划线
·不能以数字开头
·不能是我的保留字
·我是严格区分大小写的
变量的定义和使用
·变量是内存中一个带标签的盒子
标识:表示对象所存储的内存地址,使用内置函数id(obj)获取
类型:表示对象的数据类型,可使用内置函数tybe(obj)来获取
值:表示对象所储存的具体数据,使用print(obj)进行输出
·当多次赋值之后,变量名会指向心的空间
常见的数据类型
整数类型(int)浮点型(float) 布尔型(bool) 字符串型(str)
整数型的不同进制表示方式
·十进制>>默认的进制
·二进制>>以0b开头
·八进制>>以0o开头
·十六进制>>0x开头
浮点型 浮点数存储不确定性,进行计算时可能会出现小数位数不确定的情况,可导入模块decimal
布尔型 可以转换为整数:True>>1 False>>0
字符串型 单双引号定义的字符串必须在一行,三引号定义的字符串可以分布在连续的多行
字符串
·在python中字符串是基本数据类型,是不可变的字符序列
字符串驻留机制
·仅保存一份相同且不可变字符串的方法,不同的值被存放在字符串的驻留池中,python的驻留机制对相同的字符串只保留一份拷贝,后续创建相同字符串时,不会开辟新空间,而是把该字符串的地址赋给新创建的变量
·驻留机制的几种情况:
1·字符串的长度为0或1时
2·符合标识符的字符串
3·字符串只在编译时进行驻留,而非运行时
4·[-5,256]之间的整数数字
·sys中的intern方法强制2个字符串指向同一个对象
·pycharm对字符串进行了优化处理
·优缺点:
1·当需要值相同的字符串时,可以直接从字符串池里拿来使用,避免频繁的创建和销毁,提高效率和节约内存,因此拼接字符串和修改字符串会比较影响性能的
2·在需要进行字符串拼接时建议使用str类型的join方法,而非+方法是先计算出所有字符中的长度,然后再拷贝,只new一次对象,效率要比‘+’效率高
字符串的常用操作
index()查找子串substr第一次出现的位置,如果查找的子串不存在时,则抛出ValueError
rindex()查找子串substr最后一次出现的位置,如果查找的子串不存在时,则抛出ValueError
find()查找子串substr第一次出现的位置,如果查找的子串不存在时,则返回-1
rfind()查找子串substr最后一次出现的位置,如果查找的子串不存在时,则返回-1
大小写转换
upper()字符都转成大写字母
lower()字符都转成小写字母
swapcase()大写字母都转成小写字母,小写字母都转成大写字母
capitalize()第一个字符转成大写,其余字符转成小写
title() 每个单词的每一个字符转成大写,每个单词的剩余字符转成小写
内容对齐
center() 居中对齐 ljust()左对齐 rjust()右对齐
第一个参数指定宽度,第二个参数指定填充符,第二个参数是可选的,默认是空格,如果设置宽度小于实际宽度则返回原字符串。
zfill()右对齐,左边用0填充,该方法只接受一个参数,用于指定字符串的宽度,如果指定的宽度小等于字符串的长度,返回字符串本身
劈分
split()从左劈分 rsplit()从右劈分
·默认的劈分字符是空格字符串,返回的值都是一个列表
·参数sep指定劈分字符串的是劈分符
·参数maxsplit指定劈分字符串的最大劈分次数,经过最大次劈分之后,剩余的子串会单独做为一部分
判断
isidentifier()是否为合法标识符
isspace()是否全部由空白字符组成(回车,换行,水平制表符)
isalpha()是否全部由字母组成
isdecimal()是否全部由十进制的数字组成
isnumric()是否全部由数字组成
isalnum()是否全部由字母和数字组成
替换和合并
replace() 第一个参数指定被替换的子串,第二个参数指定字符串,替换前后不发生变化。第三个参数指定最大替换次数
join()将列表或元组中的字符串合并成一个字符串
切片
字符串是不可变类型,不具有增,删,改等操作,切片操作将产生新对象
格式化
%,{}做占位符。 %s为字符串,%i或%d为整数,%f为浮点数
编码与转换
编码:将字符串转换为二进制数据
解码:将bytes类型的数据转换为字符串类型
函数
创建和调用
函数就是执行特定任务和以完成特定功能的一段代码
优点:复用代码,隐藏实现细节,提高可维护性,提高可读性便于调试。
创建 def 函数名 ([输入参数]):
函数体
[return xxx]
参数传递
位置实参:根据形参对应的位置进行实参传递
关键字实参:根据形参名称进行实参传递
返回值
1.如果函数没有返回值【函数执行完毕之后,不需要给调用提供数据】
2.函数的返回值,如果是一个,直接返回原值。如果是多个,返回值为元组
默认值
函数定义时,给形参设置默认值,只有与默认值不符的时候才需要传递
参数定义
·个数可变的位置参数
定义函数时,可能无法事先确定传递的位置实参的个数时,使用可变的位置参数
使用*定义个数可变的位置形参
结果为一个元组
·个数可变的关键字形参
定义函数时,无法事先确定传递的关键字实参的个数时,使用可变的关键字形参
使用**定义个数可变的关键字形参
结果为一个字典
变量
变量的作用域
·程序代码能访问该变量的区域
·局部变量,在函数内定义并使用的变量,只在函数内部有效。局部变量使用global声明可以成为全局变量
·全局变量,函数体外定义的变量,可用于函数内外
递归函数
·如果在一个函数的函数体内调用该函数本身,这个函数就被称为递归函数
递归的组成部分·递归调用与递归终止条件
递归的调用过程·每递归调用一次函数,都在栈内存分配一个栈帧·每执行完一次函数,都会释放相应的空间
优缺点·优点:思路和代码简单·缺点:占用内存多,效率低下

Bug
常见类型
·粗心导致的自查宝典
1·漏了末尾的冒号,如if语句,循环语句,else语句等
2·缩进错误,该缩进的没缩进,不该缩进的瞎缩进
3·把英文符号写成中文符号,比如引号,冒号,括号
4·字符串拼接的时候,把字符串和数字拼接在一起
5·没有定义变量,比如while的循环条件的变量
6·“==”比较运算符和“=”赋值运算符的混用
·知识不熟练导致的错误
1·索引越界问题IndexError
2·append()方法的使用掌握不熟练
·被动掉坑
1·解决方案:python提供了异常处理进制,可以在异常出现是即时捕获,然后内部消化,让程序继续运行
2·多个except结构:捕获异常的顺序按照先子类后父类的顺序,为了避免遗漏可能出现的异常,可以在最后增加BaseException
3·try...except...else结构:如果try块中没有抛出异常,则执行else块,如果try块中抛出异常,则执行except块


对象的创建又称为类的实例化
语法:实例名=类名()
意义:有了实例,就可以调用类中的内容
类属性:类中方法外的变量称为类属性,被该类的所有对象所共享
类方法:使用@classmethod修饰的方法,使用类名直接访问的方法
静态方法:使用@staticmethod修饰的方法,使用类名直接访问的方法
动态绑定属性和方法
面对对象的特征
·封装:提高程序的安全性

*将数据(属性)和行为(方法)包装到类对象中。在方法内部对属性进行操作,在类对象的外部调用方法。这样,无需关心方法内部的具体实现细节,从而隔离复杂度。
*在python中没有专门的修饰符用于属性的私有,如果该属不希望在类对象外被访问,前边使用‘--’
·继承:提高代码的复用性

*如果一个类没有继承任何类,则默认继承object
*python支持多继承
*定义子类时,必须在其构造函数中调用父类的构造函数
·多态:提高程序的可扩展性和可维护性


方法重写

object类

特殊方法和特殊属性








