python
类unix系统默认已经安装或使用源码包
./confighure
make
make install
python运行方法
通过交互式解释器
[root@room1pc01 ~]# python
>>>
以文件的方式运行
[root@room1pc01 ~]# vim test.py
#!/usr/bin/env python
导入tab补全模块
>>> import rlcompleter, readline
>>> readline.parse_and_bind('tab: complete')
[root@room1pc01 ~]# vim /usr/local/bin/tab.py(避免每次都写,写成脚本)
#!/usr/bin/env python
import rlcompleter, readline
readline.parse_and_bind('tab: complete')
[root@room1pc01 ~]# chmod +x /usr/local/bin/tab.py
[root@room1pc01 ~]# vim ~/.bash_profile
PYTHONSTARTUP=/usr/local/bin/tab.py(输出成环境变量)
export PATH PYTHONSTARTUP
[root@room1pc01 ~]# source ~/.bash_profile
安装python模块
[root@room1pc01 ~]# yum -y install gcc python-devel
[root@room1pc01 python]# tar -xf pip-7.1.2.tar.gz (安装pip模块,pip相当于yum客户端)
[root@room1pc01 pip-7.1.2]# python setup.py install
语法结构
python代码块通过缩进对齐表达代码逻辑而不是使用大括号
缩进表达一个语句属于哪个代码块
缩进风格:一般用4个空格
和大部分脚本及unix-shell语言一样,python也使用#号标识注释
使用pycharm ide
[root@room1pc01 ~]# yum -y groupinstall 'Java 平台'
[root@room1pc01 ~]# tar -xf pycharm-community-4.5.3.tar.gz
[root@room1pc01 python]# mv pycharm-community-4.5.3 /bin/pycharm
[root@room1pc01 python]# cd /bin/pycharm/bin
[root@room1pc01 bin]# ./pycharm.sh
文档字符串
可以当作一种特殊的注释,在模块,类或者函数的起始添加一个字符串,起到在线文档的功能
简单的说明可以使用单引号或双引号
较长的文字说明可以使用三引号
#!/usr/bin/env python
# -*- coding: utf8 -*-
"""演示程序而已
"""
name = raw_input("username")
print "hail",name
变量定义
变量名称约定
第一个字符只能是大小写字母或下划
后续字符只能是大小写字母或数字或下划线,区分大小写
python是动态类型语言,即不需要预先声明变量的类型
变量
a.有意义
b.简短
c.多个单词间用下划_隔开
d.全部采用小写字母
变量的赋值
变量的类型和值在赋值那一刻被初始化
变量赋值通过等号来执行
xx = 0
python也支持增量赋值
n += 1
n *= 1
标准运算符
+ - * / // % **(//临近的 %取于 **幂运算)
比较运算符
< <= > >= == != <>(<>也是不等于,不建议使用)
逻辑运算符
and not or
数据类型
数字
int:有符号整数
long:长整数
bool:布尔值
- true 1
- false 0
float:浮点数
complex:复数
字符串
python中字符串被定义为引号之间的字符集合,python支持使用成对的单引号或双引号
单双引号表示的意义相同,python不区分字符和字符串
支持字符切片,支持字符串拼接
>>> xx = 'hydra'
>>> xx[2:6] 'dra'
>>> 'abc' + 'def'
'abcdef
列表
可以将列表当成普通的"数组",它能保存任意数量任意类型的python对象
像字符串一样,列表页支持下标和切片操作,列表中的项目可以改变
>>> xxx = [1,"tom",2,"toms"]
>>> xxx[1] = 'bob'
>>> xxx[1:]
['bob', 2, 'toms']
元组
可以认为元组是静态的列表,元组一旦定义,不能改变
字典
字典由键-值(key-value)对构成的映射数据类型,通过键取值,不支持下标操作
>>> x = {'name':'hydra','age':20}
>>> x
{'age': 20, 'name': 'hydra'}
>>> x['name']
'hydra'
数据类型的比较:
按存储模型分类:
标量类型:数值,字符串
容器类型: 列表,元组,字典
按更新模型分类:
可变类型:列表,字典
不可变类型:数字,字符串,元组
按访问模型分类:
直接访问:数字
顺序访问:字符串,列表,元组
映射访问:字典
判断语句
if语句语法结构
if expression:
if_suite
else:
else_suite
如果表达式的值非0或者为布尔值true,则代码组if_suite被执行,否则就去执行else_suite
代码组是一个python术语,它由一条或多条语句组成,表示一个子代码块
示例:
#!/usr/bin/env python
import getpass(导入一个模块)
username = raw_input("username: ")
password = getpass .getpass ("password: ")
if username == 'hydra' and password =='123456':
print('login successful')
else:
print('login incorrect')
扩展if语句结构
语法:
if expresion1:
if_suite
elif expression2:
elif_suite
else:
else_suite
只有满足相关条件,相应的子语句,才会执行,没有switch/case这样的替代品
示例
#!/usr/bin/env python
# -*- coding: utf-8 -*-
score = int (raw_input('score: '))
if score >=90:
print 'hail hydra'
elif score >=80:
print 'hydra!!!'
elif score >=70:
print 'hydra!!'
elif score >=60:
print 'hydra!'
else:
print 'fuck'
————————————————————————————————————————————————————————————————————