什么是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等。

  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

Python入门学习介绍的更多相关文章

  1. python入门学习:3.操作列表

    python入门学习:3.操作列表 关键点:列表 3.1 遍历整个列表3.2 创建数值列表3.3 使用列表3.4 元组 3.1 遍历整个列表   循环这种概念很重要,因为它是计算机自动完成重复工作的常 ...

  2. python入门学习:9.文件和异常

    python入门学习:9.文件和异常 关键点:文件.异常 9.1 从文件中读取数据9.2 写入文件9.3 异常9.4 存储数据 9.1 从文件中读取数据 9.1.1 读取整个文件  首先创建一个pi_ ...

  3. python入门学习:8.类

    python入门学习:8.类 关键点:类 8.1 创建和使用类8.2 使用类和实例8.3 继承8.4 导入类 8.1 创建和使用类   面向对象编程是最有效的软件编写方法之一.在面向对象编程中,你编写 ...

  4. python入门学习:7.函数

    python入门学习:7.函数 关键点:函数 7.1 定义函数7.2 传递实参7.3 返回值7.4 传递列表7.5 传递任意数量的实参7.6 将函数存储在模块中 7.1 定义函数   使用关键字def ...

  5. python入门学习:6.用户输入和while循环

    python入门学习:6.用户输入和while循环 关键点:输入.while循环 6.1 函数input()工作原理6.2 while循环简介6.3 使用while循环处理字典和列表 6.1 函数in ...

  6. python入门学习:5.字典

    python入门学习:5.字典 关键点:字典 5.1 使用字典5.2 遍历字典5.3 嵌套 5.1 使用字典   在python中字典是一系列键-值对.每个键都和一个值关联,你可以使用键来访问与之相关 ...

  7. python入门学习:4.if语句

    python入门学习:4.if语句 关键点:判断 4.1 一个简单的测试4.2 条件测试4.3 if语句 4.1 一个简单的测试   if语句基本格式如下,注意不要漏了冒号 1if 条件 :2     ...

  8. python入门学习:2.列表简介

    python入门学习:2.列表简介 关键点:列表 2.1 列表是什么2.2 修改.添加和删除元素2.3 组织列表 2.1 列表是什么   列表,是由一系列按特定顺序排列的元素组成.你可以创建包含字母表 ...

  9. Python入门学习:1.变量和简单的数据类型

    python入门学习:1.变量和简单的数据类型 关键点:变量.字符串.数字 1.1 变量的命名和使用1.2 字符串1.3 数字1.4 注释 1.1 变量的命名和使用   变量,顾名思义是一个可变的量, ...

  10. Python入门学习之路,怎么 “开心,高效,踏实” 地把Python学好?兴趣,兴趣,兴趣!

    Python入门学习之路,怎么 “开心,高效,踏实” 地把Python学好?兴趣,兴趣,兴趣!找到你自己感兴趣的点进行切入,并找到兴趣点进行自我驱动是最好的学习方式!       推荐两本书,一本作为 ...

随机推荐

  1. 微信小程序使用微信云托管添加自定义域名并转发到pexels.com

    背景:我要在小程序上显示pexels.com上的图片,然后我得先把pexels.com的域名添加到小程序的request合法域名中,但是pexels.com是国外的,在国内没有备案所以添加不了.解决方 ...

  2. MYSQL CONVERT、JSON_EXTRACT函数的使用总结

    一.CONVERT.CONCAT.COUNT函数联合查询 CONVERT()函数用于将值从一种数据类型转换为表达式中指定的另一种数据类型. MySQL还允许它将指定的值从一个字符集转换为另一个字符集. ...

  3. JDK源码阅读-------自学笔记(十五)(java.lang.Math数学类)

    Math类简介 用于常见的数学方法 如果需要更加强大的数学运算能力,计算高等数学中的相关内容,可以使用apache commons下面的Math类库 常用方法及实战 abs 绝对值 实例: 1 //绝 ...

  4. C 语言编程 — 高级数据类型 — 指针

    目录 文章目录 目录 前文列表 指针 声明指针 使用指针 NULL 指针 指针的算术运算 指向指针的指针 将指针作为实际参数传入函数 从函数返回指针 一个古老的笑话 前文列表 <程序编译流程与 ...

  5. kubernetes 之dashboard

    部署 kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/v2.5.0/aio/deploy/recomme ...

  6. 京东二面:Sychronized的锁升级过程是怎样的

    引言 Java作为主流的面向对象编程语言,提供了丰富的并发工具来帮助开发者解决多线程环境下的数据一致性问题.其中,内置的关键字"Synchronized"扮演了至关重要的角色,它能 ...

  7. Android 13 - Media框架(10)- NuPlayer::Renderer

    关注公众号免费阅读全文,进入音视频开发技术分享群! 这一节我们来了解 NuPlayer Renderer 是如何工作,avsync 机制是如何运行的. 1.创建 Renderer void NuPla ...

  8. Flutter(五):Flutter 加入现有App的方案选择(Flutter_Boost)

    一.介绍 用 Flutter 一次性重写整个已有的应用是不切实际的.对于这些情况,Flutter 可以作为一个库或模块,集成进现有的应用当中.模块引入到您的 Android 或 iOS 应用(当前支持 ...

  9. Java中GUI

    目录 1.Java GUI 概述 2.容器 2.1 窗口 2.2 弹窗和对话框 对话框 自定义弹窗 2.3 面板 普通面板 滚动面板 分隔面板 选项卡面板 3.布局 3.1.流式布局 3.2.网格布局 ...

  10. kettle从入门到精通 第三十九课 kettle 增量同步(日级)

    1.上一课我们学习了在数据量大的情况下的分页全量同步示例,本次我们一起学习下kettle 增量全量同步.有些业务场景不需要实时数据,比如统计t-1日的销售业绩情况等.   2.kettle增量全量同步 ...