Python入门


1 Python安装

Python官网下载Python程序包

配置Yum源

//配置yum源
[root@localhost ~]# rpm -ivh http://mirror.centos.org/centos/7/os/x86_64/Packages/wget-1.14-18.el7.x86_64.rpm
[root@localhost ~]# cd /etc/yum.repos.d/
[root@localhost yum.repos.d]# wget http://mirrors.163.com/.help/CentOS7-Base-163.repo
[root@localhost ~]# sed -i 's/\$releasever/7/g' /etc/yum.repos.d/CentOS7-Base-163.repo
[root@localhost ~]# sed -i 's/^enabled=.*/enabled=1/g' /etc/yum.repos.d/CentOS7-Base-163.repo
[root@localhost src]# yum clean all
[root@localhost ~]# yum -y install epel-release

Python编译安装

//下载Python程序源码包
[root@localhost ~]# cd /usr/src
[root@localhost ~]# wget https://www.python.org/ftp/python/3.7.3/Python-3.7.3.tar.xz
[root@localhost src]# ls
debug  kernels  Python-3.7.3.tar.xz

//安装编译器与依赖包
[root@localhost src]# yum -y install gcc gcc-c++ make zlib-devel libffi-devel openssl openssl-devel bzip2 bzip2-devel vim readline-devel ncurses-devel sqlite-devel gdbm-devel xz-devel tk-devel


//编译安装
[root@localhost src]# tar xf Python-3.7.3.tar.xz
[root@localhost src]# cd Python-3.7.3
[root@localhost Python-3.7.3]# ls
aclocal.m4           configure     Include     m4               Modules  PCbuild        README.rst
CODE_OF_CONDUCT.rst  configure.ac  install-sh  Mac              Objects  Programs       setup.py
config.guess         Doc           Lib         Makefile.pre.in  Parser   pyconfig.h.in  Tools
config.sub           Grammar       LICENSE     Misc             PC       Python
[root@localhost Python-3.7.3]# ./configure --prefix=/usr/local/python37
[root@localhost Python-3.7.3]# make
[root@localhost Python-3.7.3]# make install

//安装后配置
[root@localhost ~]# ls /usr/local/python37/
bin  include  lib  share
[root@localhost ~]# echo 'export PATH=/usr/local/python37/bin:$PATH' > /etc/profile.d/py3.sh
[root@localhost ~]# source /etc/profile.d/py3.sh
[root@localhost ~]# echo $PATH
/usr/local/python37/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
[root@localhost ~]# which python3
/usr/local/python37/bin/python3
[root@localhost ~]# pip3.7 install --upgrade pip

2 执行Python程序的方式

Python的源代码表现为.py文件。

Python程序在第一次执行时,自动通过Compiler模块将源代码编译成.pyc后缀的bytecode(字节码)文件,之后由python解释器(PVM,Interpreter)读取bytecode文件然后在处理器(processor)中运行。

pyc是一种二进制文件,是由py文件经过编译后生成的文件,是一种bytecode,py文件变成pyc文件后,加载的速度有所提高,而且pyc是一种跨平台的字节码,是由python的虚拟机(PVM)来执行的。pyc的内容是跟python的版本相关的,不同版本编译后的pyc文件是不同的,2.5编译的pyc文件,2.4版本的python是无法执行的。

那么为什么需要pyc文件呢?

除了能够提高加载速度外,为了防止源码泄漏,是很有必要将源代码编译成pyc文件的,因为py文件可以直接看到源码,而很多商业软件是不可能公开源码的。

需要注意的是,Python自动通过Compiler模块编译源代码之后的.pyc文件在程序执行完以后会自动删除。如果需要手动生成.pyc文件,可以这样操作:

[root@localhost ~]# mkdir /opt/py
[root@localhost ~]# cd /opt/py/
[root@localhost py]# vim 1.py
#!/usr/bin/env python3.7
print('hello world')
[root@localhost py]# vim 2.py
#!/usr/bin/env python3.7
import py_compile
py_compile.compile('1.py')

[root@localhost py]# ls
1.py  2.py
[root@localhost py]# python3.7 2.py
[root@localhost py]# ls
1.py  2.py  __pycache__
[root@localhost py]# ls __pycache__
1.cpython-37.pyc

可以通过两种方式来执行Python代码:

  1. 交互式解释器
  2. Python程序文件
//交互式解释器
[root@localhost ~]# python3.7
Python 3.7.3 (default, Jun 24 2019, 04:58:51)
[GCC 4.8.5 20150623 (Red Hat 4.8.5-36)] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> 1+2     //计算1+2的值
3           //结果
>>> exit()

//python程序文件执行
[root@localhost py]# vim 1.py
#!/usr/bin/env python3.7
print(1+2)  //计算1+2的值并将其打印出来
[root@localhost py]# python3.7 1.py     //执行程序文件
3           //结果

交互式解释器与Python程序文件的利弊:

  • 交互式模式下的程序执行完后难以再次运行,但是执行的代码可以立马看到效果;
  • 将编写的程序保存至文件(.py)中可以方便多次运行,但无法立马看到执行效果。

Python的程序文件分类:

  • 包含一系列预编写好的语句的程序文件称作“模块”;
  • 能够直接运行的模块文件通常称作脚本(即程序的顶层文件)

3 Python程序文件结构

Python的源程序文件通常以.py为扩展名,例如,新建一个名为firstpycode.py的文件,内容如下所示

[root@localhost py]# vim firstpycode.py
#!/usr/bin/env python3.7        //shebang
import platform                 //导入模块
print(platform.uname())         //执行模块的uname()方法

第一行为shebang,即执行脚本时通知内核要启动的解释器

  • 如果脚本文件中没有这一行,那么它执行时会默认用当前shell(即:$SHELL环境变量)去解释这个脚本;
  • 如果#!之后的解释程序是一个可执行文件,那么执行这个脚本时,它就会把文件名及其参数一起作为参数传给这个解释程序去执行。
  • 如果#!之后的解释程序不是一个可执行文件,那么指定的解释程序会被忽略,转而交给当前的SHELL去执行这个脚本。
  • 如果#!指定的解释程序不存在,则会报错“bad interpreter: No such file or directory”
  • 如果#!指定的解释程序没有可执行权限,则会报错“bad interpreter: Permission denied”
    注意:#!之后的解释程序,必须写绝对路径,它是不会自动到$PATH中寻找解释器的

第二行通过import导入一个python模块platform。
第三行打印platform模块的uname方法的执行结果。

[root@localhost py]# chmod +x firstpycode.py
[root@localhost py]# ls -l firstpycode.py
-rwxr-xr-x 1 root root 65 6月  25 02:36 firstpycode.py
[root@localhost py]# ./firstpycode.py       //另一种执行方式
uname_result(system='Linux', node='node1', release='3.10.0-693.el7.x86_64', version='#1 SMP Thu Jul 6 19:56:57 EDT 2017', machine='x86_64', processor='x86_64')

python程序的组成:python程序可以分解成模块、语句、表达式和对象

  • 程序由模块构成;
  • 模块包含语句;
  • 语句包含表达式;
  • 表达式建立并处理对象

表达式是“某事”,而语句是“做某事(即指令)”,例如,“3+4”是某事,而“print(3+4)”则是做某事。

语句的特性:它们改变了事物,例如,赋值语句改变了变量,print语句改变了屏幕输出等

4 IDE

常见的IDE有以下几种:

  • vim(小白和大牛)
  • Eclipse(JAVA IDE,支持Java、python、c、c++等)
  • Visual Studio(微软IDE)
  • notepad++
  • sublime
  • pycharm

pycharm安装与配置
官网下载软件包

双击安装

安装成功如下:

破解

C:\Windows\System32\drivers\etc 下的hosts文件拖到桌面上



用写字板程序打开该文件


将桌面上修改好的hosts文件拖回 C:\Windows\System32\drivers\etc 目录下


打开PyCharm选择Activation code激活,激活码请上网百度

配置

创建项目


新建文件



调整字体大小
点击左上角的File,选择Settings


设置默认Python解释器
点击左上角的File,选择Settings

添加远程Linux主机的Python解释器
点击左上角的File,选择Settings






在Pycharm上远程连接到Linux主机



由上图可见,windows主机上的代码程序已同步至Linux主机中的/tmp/pycharm_project_676目录下

调整tab为4个空格键