python
简介
Python, 是一种面向对象的解释型计算机程序设计语言,由荷兰人Guido van Rossum于1989年发明,第一个公开发行版发行于1991年。
Python具有丰富和强大的库。它常被昵称为胶水语言,能够把用其他语言制作的各种模块(尤其是C/C++)很轻松地联结在一起。常见的一种应用情形是,使用Python快速生成程序的原型(有时甚至是程序的最终界面),然后对其中[3] 有特别要求的部分,用更合适的语言改写,比如3D游戏中的图形渲染模块,性能要求特别高,就可以用C/C++重写,而后封装为Python可以调用的扩展类库。需要注意的是在您使用扩展类库时可能需要考虑平台问题,某些可能不提供跨平台的实现。
(1)python的版本
python2.x 2.7.x->rhel 7.0 7.2
python3.x
(2)python的网页
www.tiobe.org
python在shell的交互式使用
python与ipython
(1)python
(2)ipython
(3)python与ipython的区别
ipython是python的升级版,更完善的交互使用python语言
python在shell中脚本书写的解释器
python的一个例子:
#!/usr/bin/env python ##解释器
#coding:utf-8
_author_ = "lvah"
'''
@author:fairy
@file:111.py
@contact:
'''
x=10
if x>0:
print 'x是正数\n',x-10
elif x<0:
print 'x是负数\n',x+10
else:
print 'x为零'
/usr/bin/env python 与 /usr/bin/python 的区别
由于python的版本不同不兼容,python脚本到达不同系统会有语法错误,所以需要加上环境变量
环境变量 env
字符编码
ASCII :是基于拉丁字母的一套电脑编码系统,主要用于显示现代英语和其他西欧语言。
1字节=8位,2^8=256,a-z A-Z (不足够中文字符)
Unicode :(统一码、万国码、单一码)是计算机科学领域里的一项业界标准,包括字符集、编码方案等。Unicode 是为了解决传统的字符编码方案的局限而产生的,它为每种语言中的每个字符设定了统一并且唯一的二进制编码,以满足跨语言、跨平台进行文本转换、处理的要求。1990年开始研发,1994年正式公布。
2字节=16位,2^16=65536,a -> 两字节 中文 -> 两字节 (对字母而言-字节浪费)
utf-8 :UTF-8(8-bit Unicode Transformation Format)是一种针对Unicode的可变长度字符编码,又称万国码。
a -> 1字节,中文 -> 3字节
GB2312 :2字节
示例:
#!/usr/bin/env python
#coding:utf-8 ##定义字符编码(可识别中文字符)
#coding=utf-8 ##格式2
#encoding:utf-8 ##格式3
#encoding=utf-8 ##格式4
#定义变量a,值为1
a = 1
print a
内存读取:Unicode
存储硬盘:utf-8
字符的编码(encode): unicode -> utf-8
字符的解码(decode): utf-8 -> unicode
##字符的编码
>>> name_utf8 = name_unicode.encode('utf-8')
##字符的解码
>>> name_unicod1 = name_utf8.decode('utf-8')
python的解释器
Python是一门跨平台的脚本语言,Python规定了一个Python语法规则,实现了Python语法的解释程序就成为了Python的解释器。
cpython(ClassicPython,也就是原始的Python实现,需要区别于其他实现的时候才以CPython称呼;或解作C语言实现的Python)。这是最常用的Python版本。
ipthon:cpython(底层)高配,
Jpython:java,(原名JPython;Java语言实现的Python,现已正式发布)。Jython可以直接调用Java的各种函数库。
Ironpython:windos .net,(面向.NET和ECMA CLI的Python实现)。IronPython能够直接调用.net平台的各种函数库。可以将Python程序编译成.net程序。
pypy:JIT,just in time(使用Python语言写的Python)
编辑器
vim
gedit
atom -> github
pycharm
///
markdown -> .md -> atom -> pdf
git
svn
变量
变量来源于数学,是计算机语言中能储存计算结果或能表示值抽象概念
命名规则:
变量名必须以字母或下划线打头,名字中间只能由字母、数字和下划线“_”组成
运算符
赋值运算符:=,+=,-+,/=,%=,=,*=
算术运算符:+,-,,/,//,%,*
关系运算符:>,<,>=,<=,==,!=
逻辑运算符:逻辑与(and)或(or)非(not)
1本身代表true
0本身代表false
示例:
用python实现一个四则运算
#!/usr/bin/env python
from __future__ import division ##这里引入除法的小数结果形式
''' ##''' '''表示注释部分,有时候可以指定规范python的格式
@author:fairy
@file:4.py
@contact:xiaojun0118@foxmail.com
@time:6/25/173:48 PM
@DESC;
'''
num1 = input("num1:")
operate = raw_input("operate:")
num2 = input("num2:")
if operate == "+":
print num1 + num2
elif operate == "-":
print num1 - num2
elif operate == "*":
print num1 * num2
elif operate == "/":
print num1 / num2
else:
print "error"
测试:
基本数据类型
整型:
>>> a = 123
>>> type(a)
<type 'int'>
长整型:
>>> a = 123L ##加L强制转为长整型
>>> type(a)
<type 'long'>
>>> a = 1111111111111111111111111111111111111111111111111111111111111111111111111
>>> type(a)
<type 'long'>
浮点型(小数):
>>> a = 1.0
>>> type(a)
<type 'float'>
复数:
>>> a = 1+4j
>>> type(a)
<type 'complex'>
字符串(Character string )
字符串在存储上类似字符数组,所以它每一位的单个元素都是可以提取的
##字符串的定义方式1
>>> str1 = 'hello world' ##单引号
>>> type(str1)
<type 'str'>
##字符串的定义方式2
>>> str2 = "hello world" ##双引号
>>> type(str2)
<type 'str'>
##字符串的定义方式3
>>> str3 = """hello world""" ##三重双引号
>>> type(str3)
<type 'str'>
##字符串的转义(\)
>>> say = 'let\'s go'
>>> print say
let's go
三重单引号
(1)注释
(2)字符串的格式化
示例:
输入主机的信息,给出相应的信息
#!/usr/bin/env python
# coding:utf-8
_author_ = "lvah"
'''
@author:fairy
@file:en.py
@contact:xiaojun0118@foxmail.com
@time:6/25/172:43 PM
@DESC;
'''
hostname = raw_input("主机名:")
IP = raw_input("IP:")
used_year = input("使用年限:")
CPU = raw_input("CPU:")
Memory = raw_input("内存:")
manager_name = raw_input("管理员:")
if used_year > 10:
print '该服务器使用年限太久!'
else:
print '''
主机信息
主机名:%s
IP:%s
使用年限:%d
CPU:%s
Memory:%s
manager_name:%s
''' % (hostname, IP, used_year, CPU, Memory, manager_name)
字符串索引
正向从0位开始,反向从-1位开始
>>> a = 'hello world'
>>> a[1]
'e'
>>> a[0]
'h'
>>> a[-1]
'd'
>>> a[0]+a[6]
'hw'
字符串的切片
>>> a = '01234567'
>>> a[0:5:1] ##表示从0到5,以步长为1取值
'01234'
>>> a[-1:5:1] ##python默认是从左往右的
''
>>> a[-1:5:-1] ##当步长为-1时,从右向左取值
'76'
>>> a[0:5:2]
'024'
>>> a[0:5:-2]
''
>>> a[:] ##表示取所有
'01234567'