Python高级技巧第一弹
命令行窗口
Windows10系统下快捷键是Win+R,按键后输入cmd即可。
环境变量设置
运行Python语句或者.py文件,要么在Python IDE集成开发环境中,要么在DOS界面内。
在DOS内使用需要配置环境变量,以我安装的python3.7为例,做法是:复制Python安装包中Python37和Scripts两个文件夹的地址->此电脑->右键->属性->高级系统设置->环境变量->系统变量->左键双击Path->点击新建->分别将Python37和Scripts的地址放入空白行。
注:
- Python37文件夹内存放有python.exe,这就是在命令行窗口输入python运行的程序,因此需要把程序的地址即Python37文件夹的地址设为系统变量,方便系统查找。
- Scripts文件夹也在Python37内,只需在Python37文件夹地址后添加\Scripts,Scripts文件夹内有pip.exe,这是在命令行窗口内输入pip运行的程序。
查找文件夹的位置可以自行点开安装包,找到文件夹点击右键查看属性中的位置,需要加上文件夹名字,如C:\Users\ … \Python37和C:\Users\ … \Scripts;也可以下载专门的软件如everything进行查找;还可以右键点击Python运行图标,找到目标程序python.exe地址。
pip
pip是常用的下载第三方库的命令,需要在DOS窗口内使用,常用命令有pip list、pip install 库名、pip uninstall 库名、pip show 库名、pip help等。
pip lis,t列出所有电脑上已经安装的第三方库。
pip install 库名,电脑自动安装某个库,uninstall自动卸载某个库。
pip show 库名,展示某个库的信息,如版本、位置等。
pip help,展示所有命令。
Python库
标准库
标准库是python安装时自带的库,是最常用的库,因此被打包安装好方便使用。
第三方库
第三方库是python安装时未带的库,需要用pip install+库名在命令行下载后导入程序中使用,世界上每个人都可以写自己的库并上传。
库的导入
python有许多库,使用某个库时需要提前导入,不同的库中函数命名可能会重复,导致程序运行出错,因此在使用库中函数时提倡使用库名.函数格式,如functools.reduce()。
import
导入第三方库的关键字,如import numpy。
as
第三方库的名字可能太长而不方便使用,因此可以用as进行重命名,如import numpy as np,np完全等同于numpy。
from
要导入互相包含的库时,需要使用from,如collections库中的Counter库,需要from collections import Counter,import collections可写可不写。
可以使用from 库名 import *导入库中的所有成员函数,但这样做有函数名与内置函数名重复导致运行出错的风险。
构造器
列表构造器
列表构造器list(),生成空列表[]。列表是可迭代iterable的、也可改变,可用从0开始的自然数对列表中的元素进行索引,如array[index]。
集合构造器
集合构造器set(),生成空集合。集合中元素无序,不重复,不可索引。
字典构造器
字典构造器dict(),生成空字典{}。字典中储存键值对key-value,格式为{key:value},可以用键来索引值,如value=dictionary[key]。
字符串构造器
字符串构造器str(),生成空字符串’'或“”,在python中字符串可以用单引号和双引号进行指示。字符串可以索引,格式与列表索引相同,但值不可改变,只能改变字符串整体或者使用字符串函数或者使用加号。
python解析式
python特性,非常精简、贴近人脑的命令。
列表解析式
- [0]*n
生成包含n个0的列表,等价于[0,0,0,0, … ,0]。 - [i for i in range(n)]
生成包含0到n-1的n个自然数的列表,等同于[0,1,2, … ,n-1] - [[0 for i in range(n)]for i in range(m)]
生成包含m个n元列表的二维列表。
字典解析式
格式是:{key:value for key,value in d.items()},d是已有的字典;
也可使用enumerate()函数获取列表的下标和元素,如{index:value for index,value in enumerate([1,2,3,5,9])}。
选择表达式
直观表达
- 不带等号
形如m.append(1) if m else m.append(0),如果m是非空列表添加1否则添加0。 - 带等号或return
形如b=True if 条件 else False或return 1 if 条件 else 0,等号及变量或return是共用的,只需写一次。
还有元组表达,难以理解,此处略
匿名函数
lambda函数也叫匿名函数,是最简单的函数定义方法,如计算两数之和,f=lambda x,y:x+y,则f(1,2)=1+2=3,类似于C语言中的宏定义函数,冒号前的x,y是形参,等号前的f是函数名。
常用第三方库
collections集合库
第三方库collections内有许多好用的函数,如计数器Counter()、缺省字典defaultdict(func)、双端队列deque()等。
Counter(iterable)
计数器,顾名思义,对列表、字符串等可迭代对象中的元素进行计数,用法如c=Counter([1,5,3,4,1]),则c[1]=2,因为列表中1的出现次数为2。
defaultdict(factory)
缺省字典,使用工厂函数factory对缺省字典中不存在的键的值进行初始化,如d=defaultdict(int),则工厂函数是int,d[5]=0,因为对d中不存在的键5,初始值为int()=0;若d=defaultdict(bool),则d[5]=bool()=False。
deque()
双端队列,其实也是双端列表,与列表没有太大差别,可以使用pop()函数弹出队尾元素,也可以使用popleft()弹出队首元素。
functools函数工具库
第三方库,包含常用函数reduce(func,sequence)。
reduce(func,sequence)
reduce函数使用函数func对序列sequence中每两个元素从左到右进行运算,func是一个两参数函数,经常使用的是lambda函数,效果类似从左到右减少序列至一个值,这是函数名reduce的含义。如reduce(lambda x,y:x-y,[5,4,3,2,1])=(((5-4)-3)-2)-1=-5,reduce(lambda x,y:x^y,[1,1,2,2,3)=(((1 ^ 1) ^ 2) ^2) ^3=3。
typing
第三方库,包含力扣中定义格式常用的List。
List
python是动态类型语言,运行前不指定变量的类型,因此在大型项目中容易混淆变量的类型,python3定义函数时可以指示变量的类型,List代表列表,如
def f(m:int,arr:List[int],s:str)->None表示函数f的第一个参数是int类型,第二个参数是包含int类型数据的列表,第三个参数是字符串类型str,函数的输出类型为None,表示没有输出。