?
安装
1.windows下安装:下载(win32/64),安装时勾选“加入到path”中,否则需手动加入到path中
2.linux下安装:
? ? (1)解压:tar zxvf??? Python-2.7.6.tgz
? ? (2)进入目录:cd Python-2.7.6
? ? (3)执行以下命令
1
2
3
|
$ . /configure
$ make
$ make install
|
? ??(4)替换旧版本
1
2
3
4
5
|
cd /usr/bin
ll | grep python #查看该目录下python
rm -rf python #删除此软链接
ln -s /usr/local/Python-2 .7.6 /python . /python #建立软链接
python #验证
|
说明:通常linux系统均装有python,如无特别需求,直接使用即可
?
Python解释器
1.CPython:官方版本解释器,用C语言开发,也是使用最为广泛的解释器
2.IPython:基于CPython之上,在交互方式上有所增强的一个解释器,执行代码效果和CPython一样。
3.PyPy:采用JIT技术,对Python代码进行动态编译,执行速度快。
4.Jython:运行在java平台上的Python解释器,可以直接把python代码编译成java字节码执行。
5.IronPython:运行在.net平台上的Python解释器,可以直接把Python代码编译成.net的字节码。
小结:官方的CPython是使用最广泛的解释器,如果要与java或.net平台交互,最好的办法不是用Jython或IronPython,而是通过网络交互,确保各程序的独立性。
? ??
HelloWorld
1.交互模式
? ? (1)进入cmd,然后输入python进入交互模式
? ? (2)在交互模式下,输入?print?"hello?world"?
2.文本模式
? ? (1)使用notepad++编写hello.py文件,内容如下:
1
2
|
#!/usr/bin/env python print ‘hello world!‘
|
? ? (2)进入hello.py文件所在的目录,执行 py hello.py
说明:在linux或mac中可以直接运行hello.py。但在py文件中的第一行需加上:#!/usr/bin/env?python?
输入输出
1.输入输出典例
? ? (1)编写hello_input.py文件,代码如下:
1
2
|
name = raw_input ( "please input your name:" )
print "hello," ,name
|
? ? (2)执行python hello.py ? <假定用户输入了jack>
说明:name变量前的逗号,打印时会用空格代替,所以实际打印结果为 hello,[空格]jack
? ??
基础语法
1.基础规则
? ? (1)#表示注释
? ? (2)每行代表一个语句
? ? (3)当语句以:结尾时,缩进的语句视为代码块,缩进的结束意味着代码块的结束。
? ? (4)一行也可以出现多个语句:要求每个语句都是简单语句(如赋值,打印,函数调用);且每个语之间用分号进行分隔。
2.数据类型
? ??(1)数字:整数、浮点数(如1.2x105=1.2e5)? 主要运算符:+-*/%**运算
? ??(2)字符串:合并(‘abc‘+‘def‘),len(str),支持分片(如str[1:3])?
用法:
? ? 单引号:‘the "apple" is ok‘??
? ? 双引号:"the ‘phone‘ is apple"??
? ??三引号:‘‘‘...content...‘‘‘ ? """...content..."""
? ??转义字符:“”
? ??raw字符串:r"c:\nice\test.py" ?
? ? unicode字符串:u‘spam‘
编码:
? ??ASCII码:字符转成ASCII编码,如:ord(‘A‘) ? ;?ASCII编码转成字符,如:chr(65)
? ??unicode编码:转成unicode编码:unicode(‘spam‘),unicode转成普通字串:str(u‘spam‘)
? ? utf-8编码:把u‘xxx‘转换为UTF-8编码,如:u‘中文‘.encode(‘utf-8‘) ;
把UTF-8编码的字串转换为Unicode字符串,如:‘\xe4\xb8\xad\xe6\x96\x87‘.decode(‘utf-8‘)
??? 在保存源代码时,要务必指定保存为UTF-8编码。当Python解释器读取源代码时,为了让它按UTF-8编码读取,我们通常在文件开头写上行:#?-*-?coding:?utf-8?-*-?(这段代码实际上是告诉Python解释器,按照UTF-8编码读取源代码,否则,你在源代码中写的中文输出可能会有乱码。)
格式化:
? ??类型:%d整数、%f浮点数、%s字符串、%x十六进制整数 如:print ‘%d apple,%d?grape‘ ?%(3,5)
? ? 字符串里面的%是一个普通字符时,用%%来表示一个%,如:‘growth?rate:?%d?%%‘ ?%?7??
??(3)列表:list是一种有序的集合,可以随时添加或删除其中的元素
用法:
? ??1)定义:classmates?=?[‘Michael‘,?‘Bob‘,?‘Tracy‘]
? ??2)获取元素个数:len(classmates)
? ??3)顺序访问:classmages[0]
? ??4)倒序访问:classmates[-1](倒数第一个元素)?classmates[-2](倒数第二个元素)
? ??5)list中追加元素到末尾:?classmates.append(‘Adam‘)
? ??6)把元素插入到指定的位置,如索引号为1的位置:classmates.insert(1,?‘Jack‘)
? ??7)删除list末尾的元素:classmates.pop()
? ??8)删除指定位置的元素,如删除索引为1位置的元素:classmates.pop(1)
? ??9)元素替换成别的元素:classmates[1]?=?‘Sarah‘
? ??10)list里面的元素的数据类型也可以不同,如:mylist?=?[‘Apple‘,?123,?True]
? ??11)list元素也可以是另一个list,如:lan=?[‘python‘,?‘java‘,?[‘asp‘,?‘php‘],?‘scheme‘]?
? ??12)二维数组:?p?=?[‘asp‘,?‘php‘]??s?=?[‘python‘,?‘java‘,?p,?‘scheme‘]??访问s[2][1]则显示php??
? ??(4)元组:tuple是一种有序的列表。tuple和list非常类似,但是tuple一旦初始化就不能修改。
用法:
? ??1)定义:classmates?=?(‘Michael‘,?‘Bob‘,?‘Tracy‘)
? ??2)定义一个元素的tuple,必须在元素后加上逗号:如tu=(2,)?如果最后没有逗号,小括号便产生了计算中的小括号的作用,结果tu变成了2
? ??3)?t?=?(‘a‘,?‘b‘,?[‘A‘,?‘B‘])??,然后?t[2][0]?=?‘X‘?,发现t变成了(‘a‘,?‘b‘,?[‘X‘,?‘B‘])???tuple所谓的“不变”是说,tuple的每个元素,指向永远不变(一开始指向的list并没有改成别的list)。因此要创建一个内容也不变的tuple,那就必须保证tuple的每一个元素本身也不能变。??
? ??(5)字典:字典中的元素通过键来存取,能进行非常快速的搜索操作。
在dict中通过key来计算value的存放位置(这种算法称为hash算法),因此要求key不变,这即是说作key的只能是整数或字串
用法:
? ??1)定义?:d?=?{‘Michael‘:?95,?‘Bob‘:?75,?‘Tracy‘:?85}
? ? 2)查找:d[‘Michael‘]???或?d.get(‘Michael‘,-1)
? ? 3)判断key是否存在:‘Michael‘?in?d
? ? 4)删除pop(key):pop(‘Michael‘)??,会连同value一起删除??
? ??(6)set:是一组key的集合(但无value),因此不能有重复的元素
用法:
? ??1)定义:s?=?set([1,?2,?3])?
? ??2)去重:?s?=?set([1,?1,?2,?2,?3,?3])?实际打印s:set([1,?2,?3])
? ??3)删除remove(key):remove(1)