1. Python简介:
Python(英国发音:/ˈpaɪθən/ 美国发音:/ˈpaɪθɑːn/), 是一种面向对象、解释型计算机程序设计语言,由Guido van Rossum于1989年发明,第一个公开发行版发行于1991年。
Python的种类
- Cpython Python的官方版本,使用C语言实现,使用最为广泛,CPython实现会将源文件(py文件)转换成字节码文件(pyc文件),然后运行在Python虚拟机上。
- Jyhton Python的Java实现,Jython会将Python代码动态编译成Java字节码,然后在JVM上运行。
- IronPython Python的C#实现,IronPython将Python代码编译成C#字节码,然后在CLR上运行。(与Jython类似)
- PyPy(特殊) Python实现的Python,将Python的字节码字节码再编译成机器码。
- RubyPython、Brython ...
小结
Python的解释器很多,但使用最广泛的还是CPython。如果要和Java或.Net平台交互,最好的办法不是用Jython或IronPython,而是通过网络调用来交互,确保各程序之间的独立性。
目前Python主要应用领域:
- 云计算: 云计算最火的语言, 典型应用OpenStack
- WEB开发: 众多优秀的WEB框架,众多大型网站均为Python开发,Youtube, Dropbox, 豆瓣。。。, 典型WEB框架有Django
- 科学运算、人工智能: 典型库NumPy, SciPy, Matplotlib, Enthought librarys,pandas
- 系统运维: 运维人员必备语言
- 金融:量化交易,金融分析,在金融工程领域,Python不但在用,且用的最多,而且重要性逐年提高。原因:作为动态语言的Python,语言结构清晰简单,库丰富,成熟稳定,科学计算和统计分析都很牛逼,生产效率远远高于c,c++,java,尤其擅长策略回测
- 图形GUI: PyQT, WxPython,TkInter
2. Python环境
安装python
windows:
1、下载安装包
https://www.python.org/downloads/
2、安装
安装路径:自己定义,默认C盘
3、配置环境变量
【右键计算机】--》【属性】--》【高级系统设置】--》【高级】--》【环境变量】--》【在第二个内容框中找到 变量名为Path 的一行,双击】 --> 【Python安装目录追加到变值值中,用 ; 分割】
如:原来的值;C:\python3,切记前面有分号
Linux:
无需安装,原装Python环境 ps:如果自带2.6,请更新至2.7或者3.5,根据自身要求,Ubuntu上的Python更新快,centos上的Python老
pycharm小技巧:
在所有行的开头加上#号:
选中所有要添加注释的行,Ctrl + ?
3.Python入门
编码
默认情况下,Python 3 源码文件以 UTF-8 编码,所有字符串都是 unicode 字符串。 当然你也可以为源码文件指定不同的编码:
# -*- coding: cp-1252 -*-
行与缩进
python最具特色的就是使用缩进来表示代码块,不需要使用大括号({})。
缩进的空格数是可变的,但是同一个代码块的语句必须包含相同的缩进空格数。实例如下:
if True:
print ("True")
else:
print ("False")
如果缩进数的空格数不一致,会导致运行错误,报错关键词为IndentationError。
多行语句
Python 通常是一行写完一条语句,但如果语句很长,我们可以使用反斜杠(\)来实现多行语句,例如:
total = item_one + \
item_two + \
item_three
在 [], {}, 或 () 中的多行语句,不需要使用反斜杠(\),例如:
total = ['item_one', 'item_two', 'item_three',
'item_four', 'item_five']
空行
函数之间或类的方法之间用空行分隔,表示一段新的代码的开始。类和函数入口之间也用一行空行分隔,以突出函数入口的开始。
空行与代码缩进不同,空行并不是Python语法的一部分。书写时不插入空行,Python解释器运行也不会出错。但是空行的作用在于分隔两段不同功能或含义的代码,便于日后代码的维护或重构。
记住:空行也是程序代码的一部分。
多个语句构成代码组
缩进相同的一组语句构成一个代码块,我们称之代码组。
像if、while、def和class这样的复合语句,首行以关键字开始,以冒号( : )结束,该行之后的一行或多行代码构成代码组。
我们将首行及后面的代码组称为一个子句(clause)。
如下实例:
if expression :
suite
elif expression :
suite
else :
suite
Python3 解释器
Linux/Unix的系统上,一般默认的 python 版本为 2.x,我们可以将 python3.x 安装在 /usr/local/python3 目录中。
安装完成后,我们可以将路径 /usr/local/python3/bin 添加到您的 Linux/Unix 操作系统的环境变量中,这样您就可以通过 shell 终端输入下面的命令来启动 Python3 。
$ PATH=$PATH:/usr/local/python3/bin/python3 # 设置环境变量
$ python3 --version
Python 3.5.2
在Window系统下你可以通过以下命令来设置Python的环境变量,假设你的Python安装在 C:\Python35 下:
set path=%path%;C:\python35
在 /home/dev/ 目录下创建 hello.py 文件,内容如下:
1
|
print "hello,world"
|
执行 hello.py 文件,即: python /home/dev/hello.py
1.内容编码
python解释器在加载 .py 文件中的代码时,会对内容进行编码(默认ascill)
ASCII(American Standard Code for Information Interchange,美国标准信息交换代码)是基于拉丁字母的一套电脑编码系统,主要用于显示现代英语和其他西欧语言,其最多只能用 8 位来表示(一个字节),即:2**8 = 256,所以,ASCII码最多只能表示 256 个符号。
显然ASCII码无法将世界上的各种文字和符号全部表示,所以,就需要新出一种可以代表所有字符和符号的编码,即:Unicode
Unicode(统一码、万国码、单一码)是一种在计算机上使用的字符编码。Unicode 是为了解决传统的字符编码方案的局限而产生的,它为每种语言中的每个字符设定了统一并且唯一的二进制编码,规定虽有的字符和符号最少由 16 位来表示(2个字节),即:2 **16 = 65536, 注:此处说的的是最少2个字节,可能更多
UTF-8,是对Unicode编码的压缩和优化,他不再使用最少使用2个字节,而是将所有的字符和符号进行分类:ascii码中的内容用1个字节保存、欧洲的字符用2个字节保存,东亚的字符用3个字节保存...
所以,python解释器在加载 .py 文件中的代码时,会对内容进行编码(默认ascill),如果是如下代码的话:
报错:ascii码无法表示中文
1
2
3
|
#!/usr/bin/env python print "你好,世界"
|
改正:应该显示的告诉python解释器,用什么编码来执行源代码,即:
1
2
3
4
|
#!/usr/bin/env python # -*- coding: utf-8 -*- print "你好,世界"
|
2.注释
Python3 注释
确保对模块, 函数, 方法和行内注释使用正确的风格
Python中的注释有单行注释和多行注释:
Python中单行注释以#开头,例如::
# 这是一个注释
print("Hello, World!")
多行注释用三个单引号(''')或者三个双引号(""")将注释括起来,例如:
1、单引号(''')
#!/usr/bin/python3
'''
这是多行注释,用三个单引号
这是多行注释,用三个单引号
这是多行注释,用三个单引号
'''
print("Hello, World!")
2、双引号(""")
#!/usr/bin/python3
"""
这是多行注释,用三个单引号
这是多行注释,用三个单引号
这是多行注释,用三个单引号
"""
print("Hello, World!")
总结:
单行注释:# 被注释内容
例子:
duanluo = """My name is John,
My age is 18,
My address is Beijing.
"""
print(duanluo)
Python的格式化输出:
name = input("name:")
age = input("age:")
job = input("job")
hobby = input("hobby:") """
print("My name is,",name,"I am",age,"years old,\n",
"My job is",job,"My hobby is",hobby)
"""
info = """
---------info of %s-------------
Name:%s
Age:%d
Job:%s
Hobby:%s
-------------end----------------
"""%(name,name,age,job,hobby)
print(info)
其中%s表示格式化一个对象为字符
其中%d表示为整数
3.变量
变量定义:一个在内存存储数据的容器
变量声明:
输入字符串的时候一定要告诉python,输入的是字符串,加"",为了区分字符串和变量,要用逗号(,)区分 #数字不需要加引号(""),否则定义就变成字符串了 #用print引用变量时不能加引号(""),否则定义就变成字符串了,而不是输出变量的结果了
变量规则:
NameError:变量名没定义
变量一定是先定义后调用
变量名只能是字母、数字、下划线,不能以数字开头的组合
变量的名字一定要有描述性的意义,否则时间长了,自己和他人都看不懂意义
变量的名字的常用方式
age_of_John = #官方推荐用法
ageOfJohn = #驼峰 AGE_OF_JOHN =
常量一般是全大写(python没有限制,但是为了区别,一般不要用全大写)
小例子(进度条):
import sys,time
for i in range(20):
sys.stdout.write("#")
sys.stdout.flush()
time.sleep(0.1)
python报错:
IndentationError:expected an indented block 缩进错误
同一级别的代码缩进必须保持一致