Python学习笔记

什么是Python?

Python它是一种直译式,面向对象,解释式的脚本语言。它和Java,C/C++,Go语言一样都是高级语言,但由于它是解释式语言,所以运行速度会比Java,C/C++等语言慢(虽说隔壁Go也是解释式语言,但比它快很多)。不过任何事物有利也有弊,Python因为自身携带了许多库(如:OS、TCP、Urllib、Trutle),语法简单,第三库也有很多(如飞机大战所需的pygame),所以被称为胶水语言,同时也深受开发者青眯。

python能做什么?

1、web开发
Python是WEB开发中常用的编程语言之一。Django和Flask是Python中最受欢迎的WEB框架,可以帮助开发者轻松创建高性能的WEB应用。

2、网络爬虫
网络爬虫又称网络蜘蛛,是指按照某种规则在网络上爬取所需内容的脚本程序。众所周知,每个网页通常包含其他网页的入口,网络爬虫则通过一个网址依次进入其他网址获取所需内容。在爬虫领域,Python是必不可少的一部分。将网络一切数据作为资源,通过自动化程序进行有针对性的数据采集以及处理。

3、数据科学
Python在数据科学中有着强大的地位。数据分析师使用Python来清洗、探索和可视化数据。科学家和工程师则使用Python进行模拟、建模和研究。Jupyter Notebook使得数据科学家可以在一个交互式环境中编写和共享代码。

4、自动化运维
随着技术的进步、业务需求的快速增长,一个运维人员通常要管理上百、上千台服务器,运维工作也变的重复、繁杂。把运维工作自动化,能够把运维人员从服务器的管理中解放出来,让运维工作变得简单、快速、准确。

5、数据库编程
程序员可通过遵循Python DB-API(应用程序编程接口)规范的模块与Microsoft SQL Server,Oracle,Sybase,DB2,MySQL、SQLite等数据库通信。python自带有一个Gadfly模块,提供了一个完整的SQL环境。

6、网络编程
提供丰富的模块支持sockets编程,能方便快速地开发分布式应用程序。很多大规模软件开发计划例如Zope,Mnet 及BitTorrent. Google都在广泛地使用它。

7、图形处理、数学处理、文本处理
图形处理:有PIL、Tkinter等图形库支持,能方便进行图形处理。
数学处理:NumPy扩展提供大量与许多标准数学库的接口。
文本处理:python提供的re模块能支持正则表达式,还提供SGML,XML分析模块,许多程序员利用python进行XML程序的开发。

8、多媒体应用
Python的PyOpenGL模块封装了“OpenGL应用程序编程接口”,能进行二维和三维图像处理。PyGame模块可用于编写游戏软件。

9、pymo引擎
pymo全称为python memories off,是一款运行于Symbian S60V3,Symbian3,S60V5, Symbian3, Android系统上的AVG游戏引擎。因其基于python2.0平台开发,并且适用于创建秋之回忆(memories off)风格的AVG游戏,故命名为PYMO。

10、黑客编程
python有一个hack的库,内置了你熟悉的或不熟悉的函数,但是缺少成就感。

11、人工智能
Python在人工智能领域中有广泛的应用,其中最具代表性的是机器学习、深度学习和自然语言处理。

  • Python比较容易学习和理解,且语法简洁。Python的基本语法包括变量、运算符、表达式、条件语句、循环语句、列表、字典、函数等。

  • Python拥有丰富的类库,这些类库可以极大地降低人工智能开发人员的工作难度。Python中著名的类库有NumPy、SciPy、Pandas、Matplotlib、Scikit-Learn等。

  1. 机器学习
    机器学习是指让计算机拥有自我学习和自我优化功能的一种人工智能技术。Python的Scikit-Learn类库是机器学习领域中最重要的类库之一,其中包括了大量的机器学习算法。通过Scikit-Learn,人们可以完成分类、回归、聚类、降维等机器学习任务。

    机器学习也是人工智能的核心,其涉及知识非常广泛,比如概率论,统计学,近似理论,高等数学等多门学科。机器学习使计算机能够从研究数据和统计信息中学习,机器学习是迈向人工智能方向的其中的一步,也是一种程序,可以分析数据并学习预测结果。

  2. 深度学习
    深度学习是机器学习的一种,它是模仿人脑神经网络功能而设计的。Python的Keras和TensorFlow类库是深度学习领域中最著名的类库之一。Keras是一个高层次的深度学习框架,可以用于构建神经网络模型,而TensorFlow是一个开源的软件库,可以将数据流图计算模型部署到GPU和CPU上,用于进行高效的数值计算。

  3. 自然语言处理
    自然语言处理是一种将计算机和人类语言交互的技术,Python的MLTK类库是自然语言处理领域中最重要的类库之一,它包括了各种自然语言处理算法,如词性标注、分词、命名实体识别等。

Python优缺点

优点:免费开源、无社区限制、可开发应用面广、可跨平台、功能强大、自身携带模块多、第三方模块多、语法简单,代码量少可实现多功能等。

缺点:运行速度远比C/C++等语言要慢等。

pip安装包命令

pip install numpy -i https://pypi.tuna.tsinghua.edu.cn/simple #安装(指定国内源来安装)
pip install --upgrade numpy #升级
pip uninstall numpy #卸载
pip list #查看
pip list -o #查看需要被升级的包
pip show -f numpy #查看某个包的信息
pip check numpy #查看兼容问题
pip download numpy -d "." #下载包但不安装

国内镜像源

清华源: https://pypi.tuna.tsinghua.edu.cn/simple
阿里云: http://mirrors.aliyun.com/pypi/simple
豆瓣源: https://pypi.douban.com/simple

内置函数

A abs(x) aiter() all() anext() any() ascii()
B bin(x) bool() breakpoint() bytearray() bytes()
C callable() chr(i) classmethod() compile() complex()
D delattr() dict() dir() divmod()
E enumerate() eval() exec()
F filter() float() format() frozenset()
G getattr() globals()
H hasattr() hash() help() hex(x)
I id() input() int() isinstance() issubclass() iter()
L len(s) list() locals()
M map() max() min() memoryview()
N next()
O object() oct(x) open() ord(c)
P pow() print() property()
R range() repr() reversed() round()
S set() setattr() slice() sorted() staticmethod() str() sum() super()
T tuple() type()
V vars()
Z zip()
__import__()

打包成可执行文件

1、单个文件的打包步骤

# 安装pyinstaller模块
pip install Pyinstaller -i https://pypi.tuna.tsinghua.edu.cn/simple
# 切换到.py文件所在目录下,打包python文件
Pyinstaller -F -w test.py

2、多个文件的打包步骤

# step 1. 下载安装Pyinstaller
pip install Pyinstaller -i https://pypi.tuna.tsinghua.edu.cn/simple

# step 2.  对主文件main.py进行转换,生成.spec的安装配置文件
pyi-makespec main.py

# step 3.  配置.spec文件
a) 编辑Analysis:将所用需要打包py文件都写上,如:主文件main.py和其他python文件(f1.py、f2.py)
b)编辑datas:加入所有静态资源,将其他文件的存放路径写到这里(除py文件),此处一共有两个参数,第一个参数是文件的存放路径,第二个参数是文件存放的文件夹。
c)exe文件的图标,记住图标用绝对路径。
d)如果自己写有界面,不需要黑色窗口,需将spec文件中的console=true 改为console = False

# step 4.  打包生成exe文件
Pyinstaller -F -w main.spec

3、带参数打包步骤

import sys

arg1 = sys.argv[1]
arg2 = sys.argv[2]
print(arg1)
print(arg2)

常规运行 命令:python test.py arg1 arg2

打包完成后运行 命令:test.exe arg1 arg2

打包完成后运行并获得print输出 命令:output=os.popen('path\test.exe' arg1 arg2).read()

#step 1: 在test.py中添加代码:
import sys
data_path = sys.argv[1]
print(data_path)

# cmd终端运行
python test.py E:\output

# 打包后运行
test.exe E:\output

封装为动态链接库

1、确定需要封装的Python代码
在开始封装之前,首先需要确定需要封装为动态链接库的Python代码。这些代码应该是可以被其他编程语言调用的,因此需要考虑可调用的接口和函数。

2、使用Cython编写封装代码
Cython是一个用于编写Python扩展的工具,它可以将Python代码转换为C代码,并生成对应的动态链接库。

使用Cython进行封装的步骤:

  1. 安装Cython工具
    pip install cython -i https://pypi.tuna.tsinghua.edu.cn/simple
    
  2. 创建test.pyx文件,在该文件中编写封装的Python函数和接口
    def add(x, y):
    	return x + y
    
  3. 创建setup.py文件,在该文件中配置Cython的编译选项和生成动态链接库的脚本
    from setuptools import setup
    from Cython.Build import cythonize
    
    setup(
    	name='test',
    	ext_modules=cythonize("test.pyx")
    )
    
  4. 使用setup.py文件编译Cython代码,并生成动态链接库
    python setup.py build_ext --inplace
    
posted @ 2023-09-26 11:10  司码易  阅读(28)  评论(0编辑  收藏  举报