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:[email protected]
@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:[email protected]
@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'