There should be one -- and preferably only one -- obvious way to do it.
一种解释型,面向对象的、带有动态语义的高级程序设计语言。诞生于1989年圣诞节由Guido在阿姆斯特丹开发,名称来自天空马戏团,中文为蟒蛇(标志就是一蓝、一黄两条蟒蛇缠绕在一起)。
(脚本语言 or 高阶动态编程语言)
1.1 发展重要阶段:
CNRI时期: 1.5之前版本大部分都在此时期完成CNRI资助
BeOpen时期:Guido与BeOpen合作,产生两个版本1.6和2.0分别维护
DC时期:Guido把团队带到Digital Creations公司(Zope系统)
Python 3.0:目前并未被广泛使用,使用广泛的为2.x版本(时代在快速发展,不支持3.x的库很快将支持3.x,所以建议直接学习3.x版本)
1.2 Python特征
简单易学:伪代码本质使其简单易学,使用者专注于解决问题而不去搞懂语言本身
解释性&编译性:不需要编辑直接解释,需要解释器,类似于Matlab;但是Python中亦有编译执行的特征
面向对象&面向过程:即支持面向过程的编程也支持面向对象的编程,以一种非常强大又简单的方式实现面向对象编程,甚至将变量等也认为是对象,对象的概念更广
高级语言:无需考虑诸如管理内存,垃圾回收一类的底层处理
可扩展性&嵌入性:可以将部分功能用C或其他语言编写,然后在Python程序中使用,也可以将Python嵌入到C/C++程序中,提供脚本功能
免费&开源:*发布软件,获取软件代码,修改代码自己使用
可移植性:无需修改可以移植到任何的平台
具有丰富的库:Python标准库已经十分庞大,它可以快速帮助你处理各种工作,除了标准库,还有许多高质量的库(第三方)
1.3 Python应用
网站开发
Google 实现爬虫和搜索引擎组件 YaHoo 管理讨论组 NASA 开发,管理维护系统 YouToBe 开发视频分享服务
自动化运维
数据分析
游戏及游戏脚本开发
自动化测试
智能硬件
Raspberry Pi
1.4 Python工作模式
交互模式:命令行编写脚本 标识符‘>>>’
文件模式:将脚本编写为文本(.py)
1.5 Python文件类型(均可直接执行,编译之后执行效率更快)
.py:普通文件类型,保存简本源码
.pyc:字节代码,经过编译之后生成.pyc二进制文件,需要使用模块py_compile,python -m py_compile example.py
.pyo:经过优化的.pyo二进制文件,需要使用模块py_compile, python -O -m py_compile example.py
1.6 Python 代码示例
import sys
import os class test():
def __init__(self,name1='test',age1=10):
self.name=name1
self.age=age1 def setfun(self,new_name,new_age):
self.name=new_name
self.age=new_age def getfun(self):
return self.name,self.age def show(self):
print("my name is:%s, and the age is:%d"%(self.name,self.age)) if __name__=="__main__":
title=input("please enter your name:")
print("Your name is:",title) tt=test()
tt.show()
tt.setfun("tester",22)
tt.show()
print(tt.getfun())
print(os.path)
解析:
Python中使用import或者from...import来导入相应的模块。与Java语言一样,Python中用import导入我们需要的模块。类似于C语言中的include头文件,C#语言中的using引用命名空间
Python中使用def __init__()来进行实例的初始化,类似于其他高级语言中的构造函数
Python中采用def关键字进行函数的定义,不用指定返回值的类型。return语句可选,它可以在函数体内任何地方出现,表示函数执行到此结束,如果没有return语句,会自动返回None,如果有return语句,但是return后面没有接表达式或者值的话也是返回None
if __name__=="__main__" 让你的脚本模块既可以导入到其他模块被调用,也可以自己执行。当被调用时,不执行次方法下代码,如果自己执行则与其他高级语言类似,相当于入口函数main()
Python3中已经去除raw_input()
Python2中input和raw_input都是用来获取用户输入的值,但是二者有些许区别——input:会根据用户的输入来做类型的转换;raw_input:则会把用户的输入都作为一个字符串来处理
raw_input和input均可以提示用户输入信息使用方法:
# python2
>>>age=raw_input('Please enter your age:')
Please enter your age:12
print('You are',age,'years old') >>>age=input('Please enter your age')
please enter your age:12
print('You are',age,'years old')
Python3中使用print()函数打印输出结果,而Python2中存在print关键字打印输出结果
输出字符串可以使用'+'来进行字符串的连接,也可以使用','来连接两个字符串,区别是'+'为两个字符串直接连接,','会在两个字符串中间加一个空格,然后连接在一起(暂且这样用就可以了)
# python2
>>>print 'a'+'b'
ab
>>>print 'a','b'
a b
# python3
>>>print('a'+'b')
ab
>>>print('a','b')
a b