Python Basic

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模块就自动安装在默认路径..\AppData\Local\Programs\Python\Python36-32\Lib\site-packages下。到在使用pip命令前需要注意的是,在路径..\Python\Python36-32\Scripts中要存在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:\Users\xx\pip,新建文件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

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值