1、python的优缺点
python的优点:
1)提供了一个非常完善的基础代码库,可直接调用,覆盖了网络、文件、GUI、数据库、文本等大量内容,被称为“内置电池”。
2)除了内置库外,python还有大量的第三方库,也就是别人开发的东西可直接拿来使用。用Python开发,许多功能不必从零编写,直接使用现成的即可。
python的缺点:
1)运行速度非常慢,因为python是解释型语言,代码会在执行的时候一行一行翻译成CPU能够理解的机器码,这个翻译过程非常耗时。和C语言相比,由于C语言是编译语言,在运行之前先全部编译完,没有翻译时间,只有执行时间。但是大量的程序并不需要这么快的运行速度,因为用户根本无法感受出来,例如开发一个下载MP3的网络应用程序,C程序的运行时间需要0.001秒,而Python程序的运行时间需要0.1秒,慢了100倍,但由于网络更慢,需要等待1秒,你想,用户能感觉到1.001秒和1.1秒的区别吗?这就好比F1赛车和普通的出租车在北京三环路上行驶的道理一样,虽然F1赛车理论时速高达400公里,但由于三环路堵车的时速只有20公里,因此,作为乘客,你感觉的时速永远是20公里。
2)代码不能加密。如果要发布你的Python程序,实际上就是发布源代码,这一点跟C语言不同,C语言不用发布源代码,只需要把编译后的机器码(也就是你在Windows上常见的xxx.exe文件)发布出去。要从机器码反推出C代码是不可能的,所以,凡是编译型的语言,都没有这个问题,而解释型的语言,则必须把源码发布出去。
2、python第三方库的安装
python -m pip list 命令来查看系统库中安装哪些模块!
1)使用pip命令
如需要导入模块imutils,只需要命令行输入pip install imutils,imutils模块就自动安装在默认路径..AppDataLocalProgramsPythonPython36-32Libsite-packages下。到在使用pip命令前需要注意的是,在路径..PythonPython36-32Scripts中要存在pip.exe,并且Scripts加载到环境变量中。
2) 先手动下载.whl文件后pip install该文件
有时候直接输入模块无法直接下载第三方库,例如要下载tensorflow模块,直接pip install tensorflow会导致失败(can not find a version that satisfies the requirement)。这时候需要手动先去网站https://www.lfd.uci.edu/~gohlke/pythonlibs/上下载相应的包,并且在这个路径下pip install 这个包,如下图。
3)Pycharm中系统编译路径下+或者-
如果安装了Pycharm,直接在File->Settings..中加载即可,如下图。也可在相同界面下删除相应的模块。并且可以指定需要安装的版本。用pip install 安装的是全局的库,需要注意Pycharm这个位置是全局的库还是这个项目的库,需要注意Project Interpreter的路径。
如果要安装opencv,只需要输入opencv-python即可。如安装了模块imutils后,在site-packages文件夹下会增加该模块,如下图。
3、pip下载python库太慢怎么办?
只要加两个参数 -i
与镜像地址即可,如需要安装matplotlib库,原来安装方式pip install matplotlib速度太慢,可以用pip install matplotlib -i 镜像地址。如pip install matplotlib -i https://pypi.tuna.tsinghua.edu.cn/simple。
若不想每次在安装第三方库时输入“-i 镜像地址”,可以又一个一劳永逸的方法。windows下,直接在user目录中创建一个pip目录,如:C:Usersxxpip,新建文件pip.ini,内容如下,那么每次在下载时候就不需要输入了。
[global]
index-url = https://pypi.tuna.tsinghua.edu.cn/simple
4、python中变量的作用域
变量的作用域决定了程序的哪一部分可以访问哪个特定的变量名称。Python的作用域一共有4层,分别是:
- L (Local) 局部作用域
- E (Enclosing) 闭包函数外的函数中
- G (Global) 全局作用域
- B (Built-in) 内建作用域
x = int(2.9) # 内建作用域,查找int函数
global_var = 0 # 全局作用域
def outer():
out_var = 1 # 闭包函数外的函数中
def inner():
inner_var = 2 # 局部作用域
Python以L –> E –> G –>B
的规则查找变量,即:在局部找不到,便会去局部外的局部找(例如闭包),再找不到就会去全局找,最后去内建中找。如果这样还找不到,那就提示变量不存在的错误。例如下面的代码,函数func内部并没有定义变量a,可是print函数需要打印a,那怎么办?向外部寻找!按照L –> E –> G –>B
的规则,层层查询,这个例子很快就从外层查找到了a,并且知道它被赋值为1,于是就打印了1。
a = 1
def func():
print(a)
参考文章:https://www.liujiangblog.com/course/python/32
参考网站:
【1】https://www.liaoxuefeng.com/wiki
最后
以上就是大意天空最近收集整理的关于Python Basic的全部内容,更多相关Python内容请搜索靠谱客的其他文章。
发表评论 取消回复