python书本--让繁琐工作自动化(拾遗)

python书本--让繁琐工作自动化(拾遗)_第1张图片
python书本--让繁琐工作自动化(拾遗)_第2张图片

==判断字符串或者序列里面的值是否相等,is判断对象的地址是否相等

1,条件判断if语句,是可能有一条语句可以执行或者都不执行
2,while循环,不断重复的语句一定要写在循环语句块内
3,如果语句进入了死循环,可以用ctrl+c来停止
4, for i in range(5)其中5是生成从0开始序列的个数,也是循环几次
python书本--让繁琐工作自动化(拾遗)_第3张图片
python书本--让繁琐工作自动化(拾遗)_第4张图片
python书本--让繁琐工作自动化(拾遗)_第5张图片

5,python有自己的内置函数,print() len() 可以直接调用使用,也有一些标准库,需要引入才能使用
python书本--让繁琐工作自动化(拾遗)_第6张图片
上面的图片说明有误,random.randint(1,10)随机生成整数,包括1和10。
random.randint(1, 10)random.randint(10, 1)不同。函数调用 random.randint(1, 10)将返回 1 到 10 之间的
一个随机整数,因为第一个参数是范围的下界,第二个参数是范围的上界(而random.randint(10, 1)会导致错误)

python书本--让繁琐工作自动化(拾遗)_第7张图片

6,None是NoneType唯一的值,首字母必须大写,对于所有没有 return 语句的函数定义,Python 都会在末尾加上 return
None。如果使用不带值的 return 语句,那么就返回 None。

7,print()深入了解和关键字参数
python书本--让繁琐工作自动化(拾遗)_第8张图片

8,定义在函数内的变量,为局部变量,其他的为全局变量。
python书本--让繁琐工作自动化(拾遗)_第9张图片
1.如果变量在全局作用域中使用(即在所有函数之外),它就总是全局变量。
2.如果在一个函数中,有针对该变量的 global 语句,它就是全局变量。
3.否则,如果该变量用于函数中的赋值语句,它就是局部变量。
4.但是,如果该变量没有用在赋值语句中,它就是全局变量。
python书本--让繁琐工作自动化(拾遗)_第10张图片

9,异常处理;当我们运行程序时,可能会发生错误,python会报错,后面的程序不会再执行,我们希望python能报错并进行处理,并且继续执行后面的程序,这就需要异常处理了
python书本--让繁琐工作自动化(拾遗)_第11张图片
python书本--让繁琐工作自动化(拾遗)_第12张图片

10,下面是列表切片的用法,
python书本--让繁琐工作自动化(拾遗)_第13张图片
列表的操作,和字符串是一致的
python书本--让繁琐工作自动化(拾遗)_第14张图片
删除列表中的元素的方法
python书本--让繁琐工作自动化(拾遗)_第15张图片

列表使用的例子,给自己的很多猫命名,可以使用列表来
python书本--让繁琐工作自动化(拾遗)_第16张图片
判断一个元素是否在列表中存在,用in 或者 not in
python书本--让繁琐工作自动化(拾遗)_第17张图片

多重赋值的操作()
python书本--让繁琐工作自动化(拾遗)_第18张图片

对列表的操作(增删改查)
①查找某个值是否在列表中,在的话就返回下标,不在就报错,如果某个值在列表中有多个,只返回第一个值的下标,使用index()方法
python书本--让繁琐工作自动化(拾遗)_第19张图片
②给列表添加元素,有两种方法,一种是append(元素值),在列表后面依次添加元素。另一种是插入元素
insert(新元素的下标,新元素),而列表中原来的元素会随之后移。(append()和insert()这两个方法是列表独有的方法)
python书本--让繁琐工作自动化(拾遗)_第20张图片
③删除列表中的元素有两种,一种是del,是根据下标来删除 del arr[2] ,而remove是根据元素名来删除,如果元素在列表里出现多次,只会删除第一次出现的值
python书本--让繁琐工作自动化(拾遗)_第21张图片

④sort()函数,来排序列表,只能对元素是数值或者字符串的排序,列表里既有字符串又有数字的不能排序,字符串列表排序按照ascii码来排的
python书本--让繁琐工作自动化(拾遗)_第22张图片
python书本--让繁琐工作自动化(拾遗)_第23张图片

11,可变变量和引用变量
在这里插入图片描述

列表和字典的不同,
列表有顺序,字典没有顺序,比较两个列表是否相同,值相等,顺序也要一致,字典就不用这样
python书本--让繁琐工作自动化(拾遗)_第24张图片
因为字典是不排序的,所以不能像列表那样切片。

python书本--让繁琐工作自动化(拾遗)_第25张图片
values() 返回的字典的值的假列表,如果想得到真列表,可以用list()转化, keys()返回的是字典的键的假列表,一样用list()可以转为真列表,.items() 可以获得键值对的列表,每一个元素都是一个键值对的元组
python书本--让繁琐工作自动化(拾遗)_第26张图片

当我们想取得字典里的值时,先要判断字典中是否有这个键,然后才能根据键来取值,否则根据一个键直接取值,如果键不存在就会报错,python为字典提供了get()方法,他有两个参数,第一个是键,第二个是如果字典里面没有这个键时,会提供这个默认的值
python书本--让繁琐工作自动化(拾遗)_第27张图片

python也提供了一种方法,检查字典中有没有这个键,有就返回值,没有就把这个键对应的值设置入字典
python书本--让繁琐工作自动化(拾遗)_第28张图片

字符串的操作
1,upper()lower()字符串方法返回一个新字符串,其中原字符串的所有字母都被相应地转换为大写或小写。字符串中非字母字符保持不变。
2,isupper()islower()判断字符串中所有的字母是否都是大写或者都是小写,返回bool值
3,isalnum()返回 True,如果字符串只包含字母和数字,并且非空; isdecimal()返回 True,如果字符串只包含数字字符,并且非空;
4,join()和 split() ,都是字符串调用他们,join() 传入的是列表参数,返回的是字符串,分隔符是调用它的那个字符串,split()正好相反,返回的是列表,是以调用他的那个字符串作为分割
python书本--让繁琐工作自动化(拾遗)_第29张图片
在这里插入图片描述
5,strip()去掉字符串中所有空格、rstrip() 去掉字符串中尾部的空格和 lstrip() 去掉字符串中头部的空格

正则表达式
python书本--让繁琐工作自动化(拾遗)_第30张图片
python书本--让繁琐工作自动化(拾遗)_第31张图片
python书本--让繁琐工作自动化(拾遗)_第32张图片
python书本--让繁琐工作自动化(拾遗)_第33张图片
^符号用在[]中括号内部,表示取反,而不用再中括号里面,表示从开头取值
python书本--让繁琐工作自动化(拾遗)_第34张图片
^和 连 用 , 匹 配 的 是 整 个 字 符 串 , 只 匹 配 字 符 串 的 某 个 子 集 是 没 有 用 的 ; 如 果 使 用 了 和 连用,匹配的是整个字符串,只匹配字符串的某个子集是没有用的;如果使用了^和 使,那么整个字符串必须匹配该正则表达式

python书本--让繁琐工作自动化(拾遗)_第35张图片

复习
python书本--让繁琐工作自动化(拾遗)_第36张图片

文件操作(需要引入os)
1,在window下面,文件目录分割符用的是反斜杠,所以’c:\my\dfd\fdj\conut’ ,既然分隔符是反斜杠,为什么加两个反斜杠呢?因为 反斜杠还有转义字符的意思,所以加两个是转为真正的反斜杠
os.path.join('C:\\Users\\asweigart', filename) 是拼接字符串,返回一个完整的路径字符串

1.2,os.getcwd() 获得当前文件的路径, os.chdir('C:\\Windows\\System32') 更改当前文件的路径为
python书本--让繁琐工作自动化(拾遗)_第37张图片

2,文件目录 一个点.代表当前的文件,两个点代表父文件夹
python书本--让繁琐工作自动化(拾遗)_第38张图片

操作文件和路径的方法
1, os.makedirs('C:\\delicious\\walnut\\waffles') 创建文件夹和路径,字符串里面的文件夹,没有的话就全部创建
2,os.path.join() 用来拼接路径字符串
python书本--让繁琐工作自动化(拾遗)_第39张图片
3,os.path.abspath(path) 将传入的路径转为绝对路径(返回绝对路径字符串);os.path.isabs(path) 判断给的路径是否是绝对路径,如果是返回True,不是返回False。os.path.relpath(路径1, 路径2) 返回从路径2到路径1的相对路径字符串。(也就是从路径2的位置,找到路径1里面的文件)
python书本--让繁琐工作自动化(拾遗)_第40张图片

4,os.path.dirname(path) 返回文件路径字符串,os.path.basename(path) 返回文件名字符串
在这里插入图片描述
python书本--让繁琐工作自动化(拾遗)_第41张图片

5,os.path.getsize(path)查看文件的字节数,os.listdir(path) 查看文件夹下面所有的文件名,返回文件名组成的列表
python书本--让繁琐工作自动化(拾遗)_第42张图片

6, os.path.split(文件路径),返回一个文件路径和文件分离的字符串元组
python书本--让繁琐工作自动化(拾遗)_第43张图片
os.path.splitext(文件路径),返回一个文件路径和文件扩展名的字符串元组,(这个可以拿到点 .扩展名)

7,os.path.exists(文件路径) 如何这个文件或者文件夹存在,返回True 否则返回False
os.path.isfile(文件路径) 如果这是一个文件,并且存在,返会true
os.path.isdir(path) 如果文件是一个文件夹,并且存在,返回True

操作文件
1,打开文件,file=open('/Users/asweigart/hello.txt', 'r') 打开文件,并读取返回一个文件对象,如果要读,可以调用.read()函数,如果要写可以调用.write()函数,或者调用readlines()方法,返回一个列表,列表的每一个元素都是文件的一行内容
2,如果传递给 open()的文件名不存在,写模式 r 和添加模式 a 都会创建一个新的空文件。在读取或写入文件后,调用 close()方法,然后才能再次打开该文件。

对文件的移动 复制 删除等操作(需要借助shutil模块里面的函数,所以需要引入这个模块)
1,复制文件到新的目录里面 shutil.copy(source, destination) 第一个参数是原目录文件,第二个参数是新的文件夹目录(目的地),
python书本--让繁琐工作自动化(拾遗)_第44张图片
2,上面的copy()只是把一个文件移动到新的路径文件夹内,而shutil.copytree(source, destination)是将这个文件夹内所有的文件和文件夹(及文件夹下面的所有子文件(包括文件夹文件))复制到新的文件夹内
python书本--让繁琐工作自动化(拾遗)_第45张图片

3,移动(移动和复制不一样,复制是保留原来的文件,移动是把文件搬移到其他目录,删除原来的路径里的文件)
shutil.move(source, destination) 就是移动文件,如果第二个参数是一个文件夹,就是把第一个参数文件移动到第二个文件夹内(并且第二个参数文件夹里面有文件,这些文件就会被覆盖掉,要小心)。如果第二个参数也是文件,就是把第一个文件移动到第二个文件所在的文件夹内,并改名为第二个参数的文件名,删除原来的文件。
python书本--让繁琐工作自动化(拾遗)_第46张图片

4,删除文件和文件夹
os.unlink(path) 删除文件 os.rmdir(path) 只能删除空的文件夹 shutil.rmtree(path) 删除文件夹及其下面的所有文件
Python 内建的 shutil.rmtree()函数不可恢复地删除文件和文件夹。使用第三方的 send2trash 模块,它会将文件夹和
文件发送到计算机的垃圾箱或回收站,而不是永久删除它们。
python书本--让繁琐工作自动化(拾遗)_第47张图片

遍历一个文件夹下面的所有的文件夹和文件
python书本--让繁琐工作自动化(拾遗)_第48张图片
python书本--让繁琐工作自动化(拾遗)_第49张图片
folderName是每一个文件夹,代指当前需要遍历的文件夹
subolders是上面folderName文件夹下面的所有子文件夹组成的列表
filenames是上面folderName文件夹下面所有子文件组成的列表
python书本--让繁琐工作自动化(拾遗)_第50张图片

解压缩文件
python书本--让繁琐工作自动化(拾遗)_第51张图片
python书本--让繁琐工作自动化(拾遗)_第52张图片
需要引入zipfile模块

ZipFile 对象的 extractall()方法从 ZIP 文件中解压缩所有文件和文件夹
python书本--让繁琐工作自动化(拾遗)_第53张图片

python书本--让繁琐工作自动化(拾遗)_第54张图片

下面是添加压缩文件
python书本--让繁琐工作自动化(拾遗)_第55张图片

你可能感兴趣的:(python)