ONE DAY
Python[1]是一种面向对象的解释型计算机程序设计语言,由荷兰人Guido van Rossum于1989年发明,第一个公开发行版发行于1991年
特点:简单;易学;速度快;免费、开源;高层语言;可移植性;解释性;面向对象;可扩展性;可嵌入性;丰富的库
应用:图形处理;数学处理;文本处理;数据库编程;网络编程;Web编程;多媒体应用;pymo引擎;黑客编程
1.Python 环境搭建
打开WEB浏览器访问http://www.python.org/download/
选择适用于Unix/Linux的源码压缩包。
下载及解压压缩包。
如果你需要自定义一些选项修改Modules/Setup
执行 ./configure 脚本
Make
make install
Window 平台安装 Python:
以下为在 Window 平台上安装 Python 的简单步骤:打开WEB浏览器访问http://www.python.org/download/在下载列表中选择Window平台安装包,包格式为:python-XYZ.msi 文件 , XYZ 为你要安装的版本号。
要使用安装程序 python-XYZ.msi, Windows系统必须支持Microsoft Installer 2.0搭配使用。只要保存安装文件到本地计算机,然后运行它,看看你的机器支持MSI。Windows XP和更高版本已经有MSI,很多老机器也可以安装MSI。
下载后,双击下载包,进入Python安装向导,安装非常简单,你只需要使用默认的设置一直点击"下一步"直到安装完成即可。
2.环境变量配置
Linux/unix
· 在 csh shell: 输入
setenv PATH "$PATH:/usr/local/bin/python"
· , 按下"Enter"。
· 在 bash shell (Linux): 输入
export PATH="$PATH:/usr/local/bin/python"
· ,按下"Enter"。
· 在 sh 或者 ksh shell: 输入
PATH="$PATH:/usr/local/bin/python"
编写自动补全脚本:
[root@py01 ~]#vim /usr/local/bin/tab.py
Import readline
Import rlcompleter
Readline.parse_and_bind(“tab:complete”)
[root@py01 ~]#vim ~/.bash_profile
PYTHONSTARTUP=/usr/local/bin/tab.py
export PYTHONSTARTUP
[root@py01 ~]# source ~/.bash_profile
Python是完全面向对象的语言。函数、模块、数字、字符串都是对象。并且完全支持继承、重载、派生、多继承,有益于增强源代码的复用性。Python支持重载运算符和动态类型。相对于Lisp这种传统的函数式编程语言,Python对函数式设计只提供了有限的支持。有两个标准库(functools, itertools)提供了Haskell和Standard ML中久经考验的函数式程序设计工具
控制语句
if语句,当条件成立时运行语句块。经常与else, elif(相当于else if) 配合使用。
for语句,遍历列表、字符串、字典、集合等迭代器,依次处理迭代器中的每个元素。
while语句,当条件为真时,循环运行语句块。
try语句。与except,finally配合使用处理在程序运行中出现的异常情况。
class语句。用于定义类型。
def语句。用于定义函数和类型的方法。
pass语句。表示此行为空,不运行任何操作。
assert语句。用于程序调试阶段时测试运行条件是否满足。
with语句。Python2.6以后定义的语法,在一个场景中运行语句块。比如,运行语句块前加密,然后在语句块运行退出后解密。
yield语句。在迭代器函数内使用,用于返回一个元素。自从Python 2.5版本以后。这个语句变成一个运算符。
raise语句。制造一个错误。
import语句。导入一个模块或包。
from import语句。从包导入模块或从模块导入某个对象。
import as语句。将导入的对象赋值给一个变量。
in语句。判断一个对象是否在一个字符串/列表/元组里
表达式
Python的表达式写法与C/C++类似。只是在某些写法有所差别。
主要的算术运算符与C/C++类似。+, -, *, /, //, **, ~, %分别表示加法或者取正、减法或者取负、乘法、除法、整除、乘方、取补、取余。>>, <<表示右移和左移。&, |, ^表示二进制的AND, OR, XOR运算。>, <, ==, !=, <=, >=用于比较两个表达式的值,分别表示大于、小于、等于、不等于、小于等于、大于等于。在这些运算符里面,~, |, ^, &, <<, >>必须应用于整数。
Python使用and, or, not表示逻辑运算。
is, is not用于比较两个变量是否是同一个对象。in, not in用于判断一个对象是否属于另外一个对象。
Python支持“列表推导式”(list comprehension),比如计算0-9的平方和:
>>> sum(x * x for x in range(10))
案例1:程序输入输出
在python中,主要通过raw_input()获取用户输入信息:从用户那里得到数据输入的最容易的方法是使用raw_input()内建函数。它读取标准输入,并将读取到的数据赋值给指定的变量。需要注意的 是,raw_input()函数读入的数据全部是以字符串的方式存储的。如果用户输的是数字,那么python也将其保存为字符串,当将字符串与数字做数 学运算是将会出现TypeError的错误
使用print打印信息
编写login.py脚本,实现以下目标:
1.提示用户输入用户名
[root@py01 bin]# vim login.py
#!/usr/bin/env python
username = raw_input('username: ') #使用变量username接收用户输入的字符
print 'Welcome', username #输出欢迎信息,字符串和变量名之间用逗号
#隔开,两者之间自动会加上空格
[root@py01 bin]# chmod +x login.py #给脚本添加执行权限
[root@py01 bin]# login.py
username: bob #输入用户名
Welcome bob
案例2:判断合法用户
写脚本:
[root@py01 bin]# vim login2.py
#!/usr/bin/env python
username = raw_input('username: ')
password = getpass.getpass(‘password: ') #密码隐藏
(1)if username == 'bob': #逻辑强
if password == '123456':
print 'Login successful'
else:
print 'Login incorrect'
else:
print 'Login incorrect'
(2)if username == 'bob' and password == '123456': #简约
print 'Login successful'
else:
print 'Login incorrect'
测试:
1. [root@py01 bin]# ./login2.py
2. username: bob
3. password: 123456
4. Login successful
5. [root@py01 bin]# ./login2.py
6. username: bob
7. password: abcd
8. Login incorrect
9. [root@py01 bin]# ./login2.py
10. username: tom
11. password: 123456
12. Login incorrect
案例3:编写判断成绩的程序
如果成绩大分60分,输出“及格”
如果成绩大于70分,输出“良”
如果成绩大于80分,输出“好”
如果成绩大于90分,输出“优秀”
否则输出“你要努力了”
1.写脚本
1. [root@py01 bin]# vim score.py
2.
3. #!/usr/bin/env python
4. #coding: utf8 #为了程序可以支持中文,指定UTF8编码
5.
6. score = int(raw_input('enter score: '))
7.
8. if score > 90:
9. print '优秀'
10. elif score > 80:
11. print '好'
12. elif score > 70:
13. print '良'
14. elif score > 60:
15. print '及格'
16. else:
17. print '你要努力了!'
1. [root@py01 bin]# ./score.py #测试
2. enter score: 59
3. 你要努力了!
4. [root@py01 bin]# ./score.py
5. enter score: 88
6. 好
程序输入输出关键点:
1.注释;‘’‘ ’‘’ ;文档字符串(编写模块:注释+def;导入模块:import)
2.变量(变量定义;变量赋值)
3.运算符(标准、比较、逻辑)
4.数据类型:
数字
(int符号整数;long长整数;bool布尔值;float浮点数;complex复数)
(python默认是十进制显示;0开头是八进制;0x或0X开头是十六进制;0b或0B开头是十二进制)
字符串
(引号之间的字符集合)
(字符串切片:索引运算符[]与切片运算符[:];[0]是第一个;[-1]是倒数第一个;切片包含起始字符无末尾字符)
>>>a=’python’------>>>a[0]------>>>a[-2]--------a=[2:]--------a[:4]
(字符串连接操作:+拼接;*重复)
>>>b=’python’----->>>c=’is cool’------->>>print a+’ ‘ +b-------->>>a*2
列表
>>>Alist=[1,”tom”,2,”alice”]------>>>alist[1]=’bob’-------->>>alist[2:]
In或not in 判断成员关系;append追加
>>>Alist=[1,”tom”,2,”alice”]------>>>’tom’ in alist-------->>>‘alice’ not in alist--->>>alist.append(3)
元组
(静态列表,定义不能更改)
字典
(由健-值(key-value)对构成的映射数据类型;通过键取值,不支持下标操作)
数据类型比较:
按照存储模型分类:标量类型:数值、字符串-----容器类型:列表、元组、字典
按更新模型分类:可变类型:列表、字典-------不可变类型:数字、字符串、元组
按照访问模型分类:直接访问:数字-----顺序访问:字符串、列表、元组-----映射访问:字典
If判断语句:
注意;无swith/case替代品
(表达式数字为非零值为true;空字符串、空列表、空元组、空字典为false)