Quantcast
Channel: CodeSection,代码区,Python开发技术文章_教程 - CodeSec
Viewing all articles
Browse latest Browse all 9596

自动化系列一之初识Python

$
0
0
1.1 python基础介绍

python的创始人为吉多范罗苏姆(Guido van Rossum)。1989年的圣诞节期间,吉多范罗苏姆为了打发时间,决心开发一个新的脚本解释程序,作为ABC语言的一种继承。 python是一种面向对象,直译式的计算机程序语言,Python崇尚优美、清晰、简单,是一个优秀并广泛使用的语言。

1.2Python应用领域

云计算: 应用OpenStack

自动化:Saltstack、Ansible

系统运维: 运维人员必备语言

图形GUI: PyQT, WxPython,TkInte

WEB开发: 众多大型网站均为Python开发,Youtube,典型WEB框架有Django

科学运算:人工智能,典型库NumPy, SciPy, Matplotlib, Enthought librarys,pandas

金融行业:在金融工程领域,作为动态语言的Python,语言结构清晰简单,库丰富,成熟稳定,科学计算和统计分析都很牛逼,生产效率远远高于c,c++,java,尤其擅长策略回测。

1.3Python语言分析

编程语言主要从以下角度分类:

编译型和解释型

静态语言和动态语言

强类型定义语言和弱类型定义语言

1.3.1Python编译型

负责翻译的程序来对我们的源代码进行转换,生成相对应的可执行代码。专业一点,就称为编译(Compile),而负责编译的程序自然就称为编译器(Compiler)。如果我们写的程序代码都包含在一个源文件中,那么通常编译之后就会直接生成一个可执行文件,我们就可以直接运行了。 但对于一个比较复杂的项目,为了方便管理,我们通常把代码分散在各个源文件中,作为不同的模块来组织。这时编译各个文件时就会生成目标文件(Objectfile)而不是前面说的可执行文件。一般一个源文件的编译都会对应一个目标文件。这些目标文件里的内容基本上已经是可执行代码了,但由于只是整个项目的一部分,所以我们还不能直接运行。待所有的源文件的编译都大功告成,我们就可以最后把这些半成品的目标文件“打包”成一个可执行文件了,这个工作由另一个程序负责完成,由于此过程好像是把包含可执行代码的目标文件连接装配起来,所以又称为链接(Link),而负责链接的程序就叫链接程序(Linker)。

1.3.2Python解释型

打个比方:如果你打算预读一本外文书,而你不知道这么外语,那么你可以找一名翻译,给他足够的时间让他从头到尾把整本书翻译好,然后把书的母语版交给你阅读。这个过程就编译,或者你也立刻让这名翻译辅助你阅读,让他一句一句的给你翻译,如果你想往回看某个章节他也的重新给你翻译。 两种方式:前者就相当于编译型:一次把所有的代码转换成机器语言,然后写成可执行文件。而后者就相当于我们要的解释型:在程序运行的前一刻, 还只有源程序而没有可执行程序;而程每执行到资源程序的某一条执行,则会有一个称之为解释程序的外壳程序,将源代码转换成二进制代码以供执行.

1.3.3Python优点

Python的定位是“优雅”、“明确”、“简单”,所以Python程序看上去总是简单易懂. 开发效率非常高,Python有非常强大的第三方库,基本上你想通过计算机实现任何功能,Python官方库里都有相应的模块进行支持,直接下载调用后,在基础库的基础上再进行开发,大大降低开发周期.

高级语言 当你用Python语言编写程序的时候,你无需考虑诸如如何管理你的程序使用的内存一类的底层细节 可移植性 由于它的开源本质,Python已经被移植在许多平台上(经过改动使它能够工 作在不同平台上) 可扩展性 如果你需要你的一段关键代码运行得更快或者希望某些算法不公开,你可以把你的部分程序用C或C++编写,然后在你的Python程序中使用它们。 可嵌入性 你可以把Python嵌入你的C/C++程序,从而向你的程序用户提供脚本功能。 1.3.4Python缺点 速度慢 Python 的运行速度相比C语言确实慢很多,跟JAVA相比也要慢一些. 代码无法加密 因为PYTHON是解释性语言,它的源码都是以名文形式存放的,不过我不认为这算是一个缺点,如果你的项目要求源代码必须是加密的,那你一开始就不应该用Python来去实现。 线程不能利用多CPU GIL即全局解释器锁(Global Interpreter Lock),是计算机程序设计语言解释器用于同步线程的 工具,使得任何时刻仅有一个线程在执行,Python的线程是操作系统的原生线程。在linux上为pthread,在windows上为Win thread,完全由操作系统调度线程的执行。一个python解释器进程内有一条主线程,以及多条用户程序的执行线程。即使在多核CPU平台上,由于 GIL的存在,所以禁止多线程的并行执行。 1.4Python安装部署

学习Python首先当然是安装上,如下提供windows、Linux、Mac的安装方法(全部都是Python3.x,以下实践都是在Python3.x上进行)

1.4.1Windows

1.下载安装包 Python3.5 for windows 2.安装 默认安装路径:C:\python3.5.2 3.配置环境变量(原来的值;C:\python27,切记前面有分号) 右键计算机-->属性-->高级系统设置-->环境变量-->找到变量名为Path的一行双击-->Python安装目录追加到变量值中。用分号;分割 4.Windows更新Python,卸载重装即可

1.4.2Linux

Linux的yum依赖自带Python2.6、为防止错误,此处更新其实就是再安装一个Python3.x查看默认Python版本 python -V 1.安装gcc,用于编译Python源码 yum install gcc 2.下载源码包 Python发行版 #选择版本下载 Python3.5版本 #安装Python3.5 3.解压并进入源码文件 cd python3.5.2 4.编译安装

./configure
make all
make install

5.查看版本

/usr/local/bin/python3.5 -V
Python 3.5.2

6.修改默认Python版本

mv /usr/bin/python /usr/bin/python2.6
ln -s /usr/local/bin/python3.5 /usr/bin/python

7.防止yum执行异常,修改yum使用的Python版本

vi /usr/bin/yum
#!/usr/bin/python 更改为 #!/usr/bin/python2.6 1.4.3Mac

1.下载以下软件,直接双击运行即可安装 Mac OS X 10.5以上点击下载 Mac OS X 10.6以上点击下载

2.执行Python3命令即可查询

xuliangwei:~ xuliangwei$ python3 Python 3.5.2 (v3.5.2:4def2a2901a5, Jun 26 2016, 10:47:25) [GCC 4.2.1 (Apple Inc. build 5666) (dot 3)] on darwin

Type "help", "copyright", "credits" or "license" for more information.

1.5Python快速入门

1.创建一个hello.py文件编写第一个程序

#!/usr/bin/env python #指定环境变量

print ("hello wolrd")

2.通过python3命令执行hello文件

xuliangwei:day01 xuliangwei$ python3 hello.py

hello wolrd

1.6Python注释

单行注释

# 被注释内容
# Author:xuliangwei

多行注释

#每行最多不能超过80个字符 ''' This is a note! This is a note! This is a note!

'''

1.7python变量

变量用来存储信息,在后面可以被程序调用,并且标识名称和类型。主要的功能,命名,并且存储至内存。

1.7.1变量声明 如下代码声明了一个变量 变量名为 “name” 变量name的值为:"xuliangwei" 变量的作用:昵称,其代指内存里某个地址中保存的内容name = "xulaingwei"
自动化系列一之初识Python

上述代码声明了一个变量,变量名为: name,变量name的值为:"xuliangwei" 变量的作用:昵称,其代指内存里某个地址中保存的内容

1.7.2变量定义规则 变量名只能是 字母、数字或下划线的任意组合 变量名的第一个字符不能是数字 变量名规范:xuliangwei_of_password 以下关键字不能声明为变量名: ['and', 'as', 'assert', 'break', 'class', 'continue', 'def', 'del', 'elif', 'else', 'except', 'exec', 'finally', 'for', 'from', 'global', 'if', 'import', 'in', 'is', 'lambda', 'not', 'or', 'pass', 'print', 'raise', 'return', 'try', 'while', 'with', 'yield'] 1.7.3变量赋值 #!/usr/bin/env python # -*- coding: utf-8 -*- name1 = "xuliangwei"

name2 = "weiwei"


自动化系列一之初识Python
#!/usr/bin/env python # -*- coding: utf-8 -*- name1 = "xuliangwei"

name2 = name1


自动化系列一之初识Python
1.8Python字符编码

python解释器在加载 .py 文件中的代码时,会对内容进行编码(默认ascillASCII(American Standard Code for InformationInterchange,美国标准信息交换代码)是基于拉丁字母的一套电脑编码系统,主要用于显示现代英语和其他西欧语言,其最多只能用 8 位来表示(一个字节),即:2**8 = 256-1,所以,ASCII码最多只能表示 255 个符号。 显然ASCII码无法将世界上的各种文字和符号全部表示,所以,就需要新出一种可以代表所有字符和符号的编码,即:Unicode Unicode(万国码)是一种在计算机上使用的字符编码。Unicode 是为了解决传统的字符编码方案的局限而产生的,它为每种语言中的每个字符设定了统一并且唯一的二进制编码,规定虽有的字符和符号最少由 16 位来表示(2个字节),即:2 **16 = 65536. UTF-8,是对Unicode编码的压缩和优化,他不再使用最少使用2个字节,而是将所有的字符和符号进行分类:ascii码中的内容用1个字节保存、欧洲的字符用2个字节保存,东亚的字符用3个字节保存...所以,python解释器在加载 .py 文件中的代码时,会对内容进行编码(默认ascill),如果是如下代码的话:

报错:ascii码无法表示中文

#!/usr/bin/env python # Author:xuliangwei # name = "你好,世界"

# print (name)

改正:应该告诉python解释器,用什么编码来执行源代码 (在Python3默认支持中文)

#!/usr/bin/env python
# -*- coding: utf-8 -*-
# Author:xuliangwei
# name = "你好,世界"
# print (name) 1.9Python用户输入 #!/usr/bin/env python # Author:xuliangwei #将用户输入的内容赋值给name变量 name = input("请输入用户名:") #打印输入的内容

print(name)

输入密码时,如果想要不可见,可以利用getpass模块中的getpass方法

#!/usr/bin/env python # Author:xuliangwei #导入getpass库 import getpass #将用户输入的内容赋值给name变量 name = input("请输入用户名:") pwd = getpass.getpass("请输入密码:") #在Pycharm下不支持此模块 #打印输入的内容

print("username:",name,"password:",pwd)

1.10Python格式化输出

Python格式化输入分为以下三种方式。推荐使用第三种方式,并且有的情况必须使用第三种方式 1.方法一:字符串是 %s;整数 %d;浮点数%f

#!/usr/bin/env pytho # Author:xuliangwei name = input("name:") age = int(input("age:")) job = input("job:") salary = input("salary:") info = ''' -------info of %s ------ Name:%s Age:%d Job:%s Salary:%s ''' % (name,name,age,job,salary)

print(info)

2.方法二:

#!/usr/bin/env pytho # Author:xuliangwei name = input("name:") age = int(input("age:")) job = input("job:") salary = input("salary:") info2 = ''' -------info of {0} ------ Name:{0} Age:{1} Job:{2} Salary:{3}

Viewing all articles
Browse latest Browse all 9596

Trending Articles