Python是一门优秀的编程语言,特点是简洁、易用,功能强大。可用于开发桌面、网络编程、开发Web应用等。还可用于大数据和人工智能领域。
一、 Python简介
1.1、 Python的历史
1989年,Guido van Rossum 开发出Python语言,Python语言基于ABC语言,ABC语言很强大,是为非专业程序员设计的。ABC语言没有得到广泛应用,因为它不是开放的。
Python上手简单,非常像自然语言。非软件专业人员,选择Python成本低,因此在各个领域的从业人员,都有在用Python。
2008年12月,Python发布了3.0 版本,也叫作Python3000或Py3k。Python 3.0与Python 2.x 版本不兼容。正是这个不兼容原因,一定程度上影响了Python的应用。
1.2、 Python特点
Python是面向对象、解释型、弱类型的脚本语言,也是功能强大且完善的通用型语言。与其它语言相比,Python代码简单,上手容易。
优点:清晰的语法和可扩展性。语法上以缩进表示代码块。另外,可扩展性指的是它的模块,有最丰富和强大的类库,覆盖了文件I/O、GUI、网络编程、数据库访问、文本操作等应用场景。在Python社区,一些不常用的应用场景,也有开源模块提供解决方案。
此外,Python是跨平台的编程语言。
缺点:速度慢,Python程序相比Java、C、C++程序要慢;源代码加密困难,Python是解释型语言,不像编译型语言的源程序会被编译成目标文件。
对于速度慢的缺点,对硬件升级可弥补,开发过程中更关注的是效率和可靠性,不是运行效率。
对于源代码加密困难的缺点,现在软件行业的趋势本就是开源,Java程序同样可被反编译。
二、 程序运行机制
计算机程序是一组指令集,真正让机器运行的是机器指令,普通开发人员很难编写机器指令。计算机高级语言编写的程序最终被翻译成机器指令来执行。高级语言按程序的可执行方式可分为 编译型和解释型 两种。
编译型语言有专门的编译器,针对特定平台将高级语言的源代码编译成在该平台硬件上可执行的机器码(包含机器指令和操作数),并包装成该平台所能识别的可执行程序格式,这就是编译(Compile)过程。编译生成的可执行程序可脱离开发环境,在特定平台上独立运行。
编译结束后,可能还需要链接其他编译好的目标代码,组装两个以上的目标代码块生成最终可执行程序,通过这种方式实现低层次代码利用。
编译型语言优点:一次性编译成机器码,可脱离开发环境独立运行,且运行效率高。缺点:编译生成的可执行程序不能移植到其他平台上
运行,如果要在其他平台上运行,需要针对特定平台对代码进行修改,并且重新编译。C、C++、Objective-C等都是高级的编译型语言。
解释型语言:有特定的解释器对源程序逐行解释成特定平台的机器码并立即执行的语言。不进行整体性编译和链接处理,解释型语言是把编译型语言中的编译和解释过程混合在一起同时完成。
执行解释型语言程序时,都需要进行一次编译。缺点:执行效率低,且不能脱离解释器独立运行。优点:跨平台容易,只要平台有相应的
解释器即可。平台上的解释器负责将源程序解释成本平台上机器指令。解释型语言的跨平台容易,是牺牲程序执行效率换来的。
小结:
编译型语言:源程序被编译成机器指令,机器指令驱动机器运行。
解释型语言:源程序被逐行读取、逐行转换、逐行执行。
三、 安装Python
1、 Windows上安装Python
下载页面:https://www.python.org/downloads/windows/
下载文件分为32位版本和64位版本,Windows系统有32位和64位版本,在下载Python的安装文件时,也需要下载对应的32位或64位版本的软件进行安装。下载连接上有 Windows x86-64 的表示是64位版本,Windows x86 是32位版本。
可以同时安装 3.x版本和2.x版本的Python。在安装时,勾选 "Add Python 3.x to PATH" 复选框,将Python命令工具添加到系统 Path 环境变量中。另外,还可以选择自定义安装。
2、在Linux上安装Python
Ubuntu上的安装命令:
sudo apt-get update
sudo apt-get install python3.7
第一条命令指定更新 /etc/apt/sources.list 和 /etc/apt/sources.list.d 所列出的源地址,这样保证能获得最新的软件包。第二第命令安装指定的Python 3.7。
RHEL/CentOS上的安装命令
(1)、下载Python源码包,下载目前最新版 Python-3.7.4
wget https://www.python.org/ftp/python/3.7.4/Python-3.7.4.tgz
(2)、解压源码包
tar -zxvf Python-3.7.4.tgz
(3)、安装
创建安装目录
mkdir /opt/python374
配置
./configure --enable-optimizations --prefix==/opt/python374
编译及安装
make
make install
3、Ubuntu Server 系统安装
Linux系统版本:Ubuntu 19.04 Server
(1)、创建虚拟机,并指定系统安装文件
(2)、启动虚拟机,进入安装步骤
(3)、选择安装语言
图一 选择安装语言
(4)、选择安装服务器版本
图二 选择安装服务器版本
(5)、设置网络,暂时不设置
图三 设置网络,暂时不设置
(6)、设置代理,不设置
图四 设置代理,不设置
(7)、设置镜像,默认即可
图五 设置镜像,默认即可
(8)、设置分区,选择 Manual,人工分区
图六 设置分区,选择 Manual
(9)、进入分区界面,开始分区
图七 进入分区界面
最终的分区信息如下
图八 最终的分区信息
(10)、创建用户名和密码
图九 创建用户名和密码
(11)、选择是否安装OpenSSH Server
图十 选择是否安装OpenSSH Server
在正式安装的时候,需要退出安装光盘
图十一 开始安装
(12)、修改 root 账户密码
系统安装完成后,使用安装时创建的账户和密码登录系统后修改 ubuntu 的 root 账户密码,也即启用 root 账户
sudo passwd root
首先输入当前账户的密码,之后输入要设置的 root 账户的密码,设置成功后就可切换到 root 用户进行操作:
su - root
输入root账户密码,开始使用 root 账户
(13)、配置网络
配置文件路径:/etc/netplan/*.yaml
新版的 Ubuntu 系统网卡的配置是以 yaml 结尾的文件。进入这个配置文件,配置网卡。配置信息如下:
图十二 配置网卡
配置完成后运行下面的命令,如果运行命令网络仍然不通,就重启系统。
netplan apply
(14)、在Ubuntu Server 上安装最新版的 Python
下载源码包:
curl -O https://www.python.org/ftp/python/3.7.4/Python-3.7.4.tar.xz
解压源码包:
tar -Jxvf Python-3.7.4.xz
安装所需要的编译器和依赖
apt-get update
apt-get install -y gcc make build-essential libssl-dev zlib1g-dev
libbz2-dev libreadline-dev libsqlite3-dev wget curl llvm libncurses5-dev
libncursesw5-dev xz-utils tk-dev libffi-dev liblzma-dev
编译安装
# 创建安装目录
mkdir /usr/python3
# 进入解压后的源码文件夹
cd Python-3.7.4
# 配置检查安装环境,生成 Makefile 文件,指定安装到 /usr/python3
./configure --enable-optimizations --prefix=/usr/python3
如果有报错没有生成 Makefile 文件,根据报错信息安装相应的依赖或编译器,再重新执行
# 安装,安装完成后如果有报错,同样需要解决报错信息,如某些依赖未安装等
make && make install
添加 Python 环境变量
# 打开环境变量配置文件
vim /etc/profile
# 在这个文件的最后面添加 /usr/python3/bin
export PATH=/usr/python3/bin:$PATH
# 让配置文件立即生效
source /etc/profile
到此,python3 和 pip3 均也可用。接下来安装 ipython 和 jupyter。
# 安装 ipython
pip3 install ipython
# 安装 jupyter
pip3 install jupyter
四、 Windows 7 + RHEL7双系统安装
1、在 Windows 7 中下载 UltralISO 软件
2、准备U盘,制作启动盘
3、在 UltraISO 软件上,选择文件-> 打开 -> 找到linux的 ISO 文件,选择 -> 打开
4、启动 -> 写入硬盘映像
5、磁盘分区,将磁盘的空间空出一部分给linux系统使用:
步骤:右键电脑选择管理,在窗口中选择磁盘管理,这里显示的是所有系统分区,选择一个空闲容量大的磁盘,在磁盘上右键选择压缩卷,设置磁盘大小,点击压缩。压缩完成后,磁盘会多出一个未分配的空间,这就是从磁盘中压缩出来的,给 Linux 系统安装使用。
6、重启电脑按F12进入BIOS界面,选择U盘启动
7、进入安装页面,在安装时进行分区划分,基本的分区有:swap、boot、home、根分区(/)等。
8、设置双系统启动
在电脑Windows7系统上安装RHEL7,安装后找不到Windows7引导菜单。
因为RHEL7已采用新式的grub2系统,所以需要进入/boot/grub2目录后使用 vim 编辑 grub.cfg 文件
修改RHEL7的Grub2引导,添加 Windows 的启动项
(1)vim /boot/grub2/grub.cfg
(2)找到这一行(注意看清楚) ### BEGIN /etc/grub.d/30_os-prober ###
在后面添加
menuentry "Windows 7 (loader) (on /dev/sda1)" {
insmod ntfs
set root=(hd0,1) #由于windows安装在硬盘的C盘,故(hd0,1)
chainloader +1
}
另外,不想用上面的方法,还可以让系统自动检测是否有其他系统,命令是:
grub2-mkconfig -o /boot/grub2/grub.cfg
到此,双系统安装完成。
RHEL7上使用yum安装时,如果未注册,不能在官方源下载安装,为此重新安装 yum 软件
rpm –qa | grep yum # 查看 RedHat 自带的 yum 包
rpm –qa | grep yum | xargs rpm -e --nodeps #卸载red hat自带的yum
rpm –qa | grep yum # 查看是否卸载干净
下载yum安装需要的包(有六个),下载网址:
http://mirrors.163.com/centos/7/os/x86_64/Packages/
六个包分别是:
yum-metadata-parser-1.1.4-10.el7.x86_64.rpm
yum-3.4.3-161.el7.centos.noarch.rpm
yum-plugin-fastestmirror-1.1.31-50.el7.noarch.rpm
python-urlgrabber-3.10-9.el7.noarch.rpm
python-iniparse-0.4-9.el7.noarch.rpm
rpm-4.11.3-35.el7.x86_64.rpm
开始安装
rpm -ivh yum-metadata-parser-1.1.4-10.el7.x86_64.rpm
rpm -Uvh rpm-4.11.3-35.el7.x86_64.rpm --nodeps # 还需要安装这个依赖包
vim /usr/libexec/urlgrabber-ext-down 将首行的 /usr/bin/python 改为 /usr/bin/python2.7
rpm -ivh python-iniparse-0.4-9.el7.noarch.rpm
rpm -Uvh python-urlgrabber-3.10-9.el7.noarch.rpm --nodeps
rpm -ivh yum-3.4.3-161.el7.centos.noarch.rpm yum-plugin-fastestmirror-1.1.31-50.el7.noarch.rpm
备份Redhat自带的repo文件
cd /etc/yum.repos.d/
mv epel.repo backup_epel.repo.bak
下载repo文件
wget http://mirrors.163.com/.help/CentOS7-Base-163.repo
替换CentOS7-Base-163.repo文件中的$releasever为版本号7
vim CentOS7-Base-163.repo
执行下面命令
:1,$s/$releasever/7
替换完成之后输入 :wq 保存并退出
生成缓存
yum clean all
yum makecache
到此,yum 软件重新安装完成
五、编写Python程序
在编写Python程序时,要注意单词的大小写,Python程序是严格区分大写的。另外在每一行代码的末尾可以加分号,但没有什么作用,除非同一行有更多的代码,在Python中不建议这种做法。
编写Python程序可使用自带的 IDLE 工具,也可使用第三方工具,如:Notepad++、PyCharm、vim、Sublime Text等。不能使用Word、 写字板等做为编辑器,因为这些编辑器产生的文档包含有隐藏的格式化字符,这些字符会导致程序不能正常编译、运行。
运行Python程序,可以使用代码编辑工具自带的运行命令入口。也可以在命令行运行Python程序,命令行运行方式如下:
python <python 源程序路径>
1、 在Sublime Text工具中集成运行Python程序的“python”命令,步骤如下:
(1)、在Sublime Text 主菜单中选择 Tools / Build System / New Build System... 菜单,此时Sublime Text 会打开
一个新的配置文件,修改这个配置,将内容修改如下:
{
"cmd": ["python", "-u", "$file"]
}
这个文件指定运行python命令来解释运行当前文件($file表示当前文件),将这个配置文件命令为 Python.sublime-build,并保存在默认目录下。Python.sublime-build 是 Sublime Text 自定义构建系统的配置文件。
(2)、重启Sublime Text 工具,在 Tools / Build System 菜单中可看到 Python 菜单项,选择该菜单项,表示 Sublime Text将使用前一步定义的配置文件。
(3)、选择Sublime Text 的 Tools / Build 菜单项即可运行当前打开的Python程序,也可按快捷键 Ctrl + B 运行。运行后在底部显示运行结果。
如果同时装有 python2 和 python3 版本,在第1步的配置方法可以进行区分,对应的配置文件名也要进行区分。
2、 使用交互式解释器
python 命令可运行 Python 程序,也可进入一个交互式解释器,进入交互式解释器后,可看到 Python 版本号、系统平台、查看帮助等信息。
交互式解释器可学习各种新语法和测试各种新功能。在交互式解释器中可以直接进行加、减、乘、除运算,因此可以当做计算器使用。整数的加减运算结果是整数,若其中一个运算数带小数时,运算结果是小数,例如:
5 + 2 # 输出是 7
5 + 2.0 # 输出是 7.0
5 - 2 # 输出是 3
5 - 2.0 # 输出是 3.0
整数的乘法运算结果是整数,若其中一个运算数是小数时,运算结果是小数,例如:
2 * 5 # 输出是 10
2 * 5.0 # 输出是 10.0
除法的运算结果都是小数,整除的运算结果只取运算结果的商,即整除的运算结果是整数,例如:
6 / 2 # 普通除法运算结果是小数,输出是 3.0
5 // 2 # 整除的运算结果只取商,输出是整数,输出是 2
math模块可以执行三角函数运算,示例如下:
import math
math.sin(math.pi/2) # 输出是 1.0