Python入门学习介绍
什么是Python?
Python它是一种直译式,面向对象,解释式的脚本语言。它和Java,C/C++,Go语言一样都是高级语言,但由于它是解释式语言,所以运行速度会比Java,C/C++等语言慢(虽说隔壁Go也是解释式语言,但比它快很多)。不过任何事物有利也有弊,Python因为自身携带了许多库(如:OS、TCP、Urllib、Trutle),语法简单,第三库也有很多(如飞机大战所需的pygame),所以被称为胶水语言,同时也深受开发者青眯。
Python与Java的区别
- Python比Java简单,学习成本低,开发效率高;Java运行效率高于Python,python在运行时动态确定类型和进行解释会比java慢。
- Python虚拟机没有java强,java虚拟机是java的核心,python的核心是可以很方便地使用c语言函数或c++库。
- Python入门简单,但要学会用python干活,需要再学习python各种库,pyhton的强大在于库,为什么python的库强大,原因是python的库可以用python,c语言,c++等设计,再提供给python使用。
- Java编译以后才能运行,Python直接就可以运行。
- Java版本比较稳定,Python2和3不兼容导致大量类库失效。
- Java是一种静态类型语言,所有变量需要先声明才能使用;Python是一种动态类型语言,不需要声明变量类型,且可以在运行时修改代码。
- Java开发偏向于软件工程,偏向于商业开发;Python更适合小型开发,常用于数据分析。
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等。
机器学习
机器学习是指让计算机拥有自我学习和自我优化功能的一种人工智能技术。Python的Scikit-Learn类库是机器学习领域中最重要的类库之一,其中包括了大量的机器学习算法。通过Scikit-Learn,人们可以完成分类、回归、聚类、降维等机器学习任务。机器学习也是人工智能的核心,其涉及知识非常广泛,比如概率论,统计学,近似理论,高等数学等多门学科。机器学习使计算机能够从研究数据和统计信息中学习,机器学习是迈向人工智能方向的其中的一步,也是一种程序,可以分析数据并学习预测结果。
深度学习
深度学习是机器学习的一种,它是模仿人脑神经网络功能而设计的。Python的Keras和TensorFlow类库是深度学习领域中最著名的类库之一。Keras是一个高层次的深度学习框架,可以用于构建神经网络模型,而TensorFlow是一个开源的软件库,可以将数据流图计算模型部署到GPU和CPU上,用于进行高效的数值计算。自然语言处理
自然语言处理是一种将计算机和人类语言交互的技术,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
内置函数
打包成可执行文件
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进行封装的步骤:
- 安装Cython工具
pip install cython -i https://pypi.tuna.tsinghua.edu.cn/simple
- 创建test.pyx文件,在该文件中编写封装的Python函数和接口
def add(x, y):
return x + y
- 创建setup.py文件,在该文件中配置Cython的编译选项和生成动态链接库的脚本
from setuptools import setup
from Cython.Build import cythonize setup(
name='test',
ext_modules=cythonize("test.pyx")
)
- 使用setup.py文件编译Cython代码,并生成动态链接库
python setup.py build_ext --inplace
Python入门学习介绍的更多相关文章
- python入门学习:3.操作列表
python入门学习:3.操作列表 关键点:列表 3.1 遍历整个列表3.2 创建数值列表3.3 使用列表3.4 元组 3.1 遍历整个列表 循环这种概念很重要,因为它是计算机自动完成重复工作的常 ...
- python入门学习:9.文件和异常
python入门学习:9.文件和异常 关键点:文件.异常 9.1 从文件中读取数据9.2 写入文件9.3 异常9.4 存储数据 9.1 从文件中读取数据 9.1.1 读取整个文件 首先创建一个pi_ ...
- python入门学习:8.类
python入门学习:8.类 关键点:类 8.1 创建和使用类8.2 使用类和实例8.3 继承8.4 导入类 8.1 创建和使用类 面向对象编程是最有效的软件编写方法之一.在面向对象编程中,你编写 ...
- python入门学习:7.函数
python入门学习:7.函数 关键点:函数 7.1 定义函数7.2 传递实参7.3 返回值7.4 传递列表7.5 传递任意数量的实参7.6 将函数存储在模块中 7.1 定义函数 使用关键字def ...
- python入门学习:6.用户输入和while循环
python入门学习:6.用户输入和while循环 关键点:输入.while循环 6.1 函数input()工作原理6.2 while循环简介6.3 使用while循环处理字典和列表 6.1 函数in ...
- python入门学习:5.字典
python入门学习:5.字典 关键点:字典 5.1 使用字典5.2 遍历字典5.3 嵌套 5.1 使用字典 在python中字典是一系列键-值对.每个键都和一个值关联,你可以使用键来访问与之相关 ...
- python入门学习:4.if语句
python入门学习:4.if语句 关键点:判断 4.1 一个简单的测试4.2 条件测试4.3 if语句 4.1 一个简单的测试 if语句基本格式如下,注意不要漏了冒号 1if 条件 :2 ...
- python入门学习:2.列表简介
python入门学习:2.列表简介 关键点:列表 2.1 列表是什么2.2 修改.添加和删除元素2.3 组织列表 2.1 列表是什么 列表,是由一系列按特定顺序排列的元素组成.你可以创建包含字母表 ...
- Python入门学习:1.变量和简单的数据类型
python入门学习:1.变量和简单的数据类型 关键点:变量.字符串.数字 1.1 变量的命名和使用1.2 字符串1.3 数字1.4 注释 1.1 变量的命名和使用 变量,顾名思义是一个可变的量, ...
- Python入门学习之路,怎么 “开心,高效,踏实” 地把Python学好?兴趣,兴趣,兴趣!
Python入门学习之路,怎么 “开心,高效,踏实” 地把Python学好?兴趣,兴趣,兴趣!找到你自己感兴趣的点进行切入,并找到兴趣点进行自我驱动是最好的学习方式! 推荐两本书,一本作为 ...
随机推荐
- NASM中的Preprocessor
NASM中的Preprocessor都以%开头. 单行macro %define %define与C语言中的#define类似: %define a(x) 1+b(x) %define b(x) 2* ...
- Calcite sql2rel 过程
sql2rel的过程是将SqlNode 转化成RelNode的过程 在 SqlToRelConverterTest中添加样例测试 @Test void testScan() { String sql ...
- 3 个好玩的前端开源项目「GitHub 热点速览」
单休的周末总是短暂的,还没缓过神新的一周就又开始了.如果你和我一样状态还没有完全恢复,那就让上周好玩的开源项目唤醒你吧! 每周 GitHub 上总是有一些让人眼前一亮的开源项目,上周好玩的前端项目特别 ...
- 聊聊MySQL是如何处理排序的
本文分享自华为云社区<MySQL怎样处理排序️如何优化需要排序的查询?>,作者:菜菜的后端私房菜. 前言 在MySQL的查询中常常会用到 order by 和 group by 这两个关键 ...
- pageoffice6 版本实现word 文件添加水印
在很多场景下,Word文档正式发文之前,或者说形成最终文档之前,常常需要往Word文件中添加水印,并且会根据文件类型或内容的不同,需要添加的水印也不一样. 添加水印是Word软件里的一个简单功能,直接 ...
- Hello Laravel! 准备
Hello Laravel! 准备 目录 Hello Laravel! 准备 什么是 Laravel? 为什么选择 Laravel? 优雅的语法 丰富的功能 强大的社区支持 安全性 易于扩展 Lara ...
- IDS4 傻瓜式实践指南
前言: 这是一篇实践指南,不会过多的解释原理(因为我也说不清楚,想了解的同学请移步老张的博客,里面有非常详细的介绍),本篇文章讲解如何简单的使用IDS4来实现单点登录,以及遇到的一些坑实现功能: 1. ...
- 三:nacos的配置中心
配置中心的使用: 编辑当前项目的pom.xml,加入必要的依赖配置 <!-- spring-cloud-alibaba-dependencies 依赖同注册中心 --> <depen ...
- iis worker process w3wp 进程 占用率100%
今天电脑特别的卡,我没当回事,但是实在是卡得不行了,我打开任务管理器,发现 iis worker process 进程已经快100%了,我之前在iis上发布了一个webservice,我就把这个网站给 ...
- golang nsq 同一个topic有多个channel,同时项目又互相引用时出现的问题
p.p1 { margin: 0; font: 12px ".PingFang SC" } span.s1 { font: 12px "Helvetica Neue&qu ...