Python的初次接觸

1、python簡介

1.一、python的產生

  Python的創始人爲Guido van Rossum。1989年聖誕節期間,在阿姆斯特丹,Guido爲了打發聖誕節的無趣,決心開發一個新的腳本解釋程序,作爲ABC 語言的一種繼承。之因此選中Python(大蟒蛇的意思)做爲該編程語言的名字,是由於他是一個叫Monty Python的喜劇團體的愛好者。ABC是由Guido參加設計的一種教學語言。就Guido本人看來,ABC 這種語言很是優美和強大,是專門爲非專業程序員設計的。可是ABC語言並無成功,究其緣由,Guido 認爲是其非開放形成的。Guido 決心在Python 中避免這一錯誤。同時,他還想實如今ABC 中閃現過但不曾實現的東西。就這樣,Python在Guido手中誕生了。能夠說,Python是從ABC發展起來,主要受到了Modula-3(另外一種至關優美且強大的語言,爲小型團體所設計的)的影響。而且結合了Unix shell和C的習慣。python

  Python 已經成爲最受歡迎的程序設計語言之一。2011年1月,它被TIOBE編程語言排行榜評爲2010年度語言。自從2004年之後,python的使用率呈線性增加。linux

1.二、python的類型

  Python的設計哲學是「優雅」、「明確」、「簡單」。所以,Perl語言中「老是有多種方法來作同一件事」的理念在Python開發者中一般是難以忍受的。Python開發者的哲學是「用一種方法,最好是隻有一種方法來作一件事」。在設計Python語言時,若是面臨多種選擇,Python開發者通常會拒絕花俏的語法,而選擇明確的沒有或者不多有歧義的語法。因爲這種設計觀念的差別,Python源代碼一般被認爲比Perl具有更好的可讀性,而且可以支撐大規模的軟件開發。這些準則被稱爲Python格言。在Python 解釋器內運行import this能夠得到完整的列表。
  Python開發人員儘可能避開不成熟或者不重要的優化。一些針對非重要部位的加快運行速度的補丁一般不會被合併到Python內。因此不少人認爲Python很慢。不過,根據二八定律,大多數程序對速度要求不高。在某些對運行速度要求很高的狀況,Python設計師傾向於使用 JIT技術,或者用使用C/C++語言改寫這部分程序。可用的JIT技術是 PyPy
  Python是徹底面向對象的語言。函數、模塊、數字、字符串都是對象。而且徹底支持繼承、重載、派生、多繼承,有益於加強源代碼的複用性。Python支持重載運算符和動態類型。相對於 Lisp這種傳統的函數式編程語言,Python對函數式設計只提供了有限的支持。有兩個標準庫(functools, itertools)提供了 Haskell和Standard ML中久經考驗的函數式程序設計工具。
  雖然Python可能被粗略地分類爲「 腳本語言」(script language),但實際上一些大規模軟件開發計劃例如 ZopeMnet及BitTorrent,Google也普遍地使用它。Python的支持者較喜歡稱它爲一種高級動態編程語言,緣由是「腳本語言」泛指僅做簡單程序設計任務的語言,如shellscript、 VBScript等只能處理簡單任務的編程語言,並不能與Python相提並論。
  Python自己被設計爲可擴充的。並不是全部的特性和功能都集成到語言核心。Python提供了豐富的 API和工具,以便程序員可以輕鬆地使用C語言、C++、Cython來編寫擴充模塊。Python編譯器自己也能夠被集成到其它須要腳本語言的程序內。所以,不少人還把Python做爲一種「膠水語言」(glue language)使用。

1.三、python的優缺點

優勢:

   簡單:Python是一種表明簡單主義思想的語言。閱讀一個良好的Python程序就感受像是在讀英語同樣。它使你可以專一於解決問題而不是去搞明白語言自己。
   易學:Python極其容易上手,由於Python有極其簡單的說明文檔 。
   速度快:Python 的底層是用 C 語言寫的,不少標準庫和第三方庫也都是用 C 寫的,運行速度很是快。 
   免費、開源:Python是FLOSS(自由/開放源碼軟件)之一。使用者能夠自由地發佈這個軟件的拷貝、閱讀它的源代碼、對它作改動、把它的一部分用於新的自由軟件中。FLOSS是基於一個團體分享知識的概念。
   高層語言:用Python語言編寫程序的時候無需考慮諸如如何管理你的程序使用的內存一類的底層細節。
   可移植性:因爲它的開源本質,Python已經被移植在許多平臺上(通過改動使它可以工做在不一樣平臺上)。這些平臺包括Linux、Windows、FreeBSD、Macintosh、Solaris、OS/二、Amiga、AROS、AS/400、BeOS、OS/390、z/OS、Palm OS、QNX、VMS、Psion、Acom RISC OS、VxWorks、PlayStation、Sharp Zaurus、Windows CE、PocketPC、Symbian以及Google基於linux開發的android平臺。
   解釋性:一個用編譯性語言好比C或C++寫的程序能夠從源文件(即C或C++語言)轉換到一個你的計算機使用的語言(二進制代碼,即0和1)。這個過程經過編譯器和不一樣的標記、選項完成。運行程序的時候,鏈接/轉載器軟件把你的程序從硬盤複製到內存中而且運行。而Python語言寫的程序不須要編譯成二進制代碼。你能夠直接從源代碼運行 程序。在計算機內部,Python解釋器把源代碼轉換成稱爲字節碼的中間形式,而後再把它翻譯成計算機使用的機器語言並運行。這使得使用Python更加簡單。也使得Python程序更加易於移植。
   面向對象:Python既支持面向過程的編程也支持面向對象的編程。在「面向過程」的語言中,程序是由過程或僅僅是可重用代碼的函數構建起來的。在「面向對象」的語言中,程序是由數據和功能組合而成的對象構建起來的。
   可擴展性:若是須要一段關鍵代碼運行得更快或者但願某些算法不公開,能夠部分程序用C或C++編寫,而後在Python程序中使用它們。
   可嵌入性:能夠把Python嵌入C/C++程序,從而向程序用戶提供腳本功能。
   豐富的庫:Python標準庫確實很龐大。它能夠幫助處理各類工做,包括正則表達式、文檔生成、單元測試、線程、數據庫、網頁瀏覽器、CGI、FTP、電子郵件、XML、XML-RPC、HTML、WAV文件、密碼系統、GUI(圖形用戶界面)、Tk和其餘與系統有關的操做。這被稱做Python的「功能齊全」理念。除了標準庫之外,還有許多其餘高質量的庫,如wxPython、Twisted和Python圖像庫等等。
規範的代碼:Python採用強制縮進的方式使得代碼具備較好可讀性。而Python語言寫的程序不須要編譯成二進制代碼。

缺點:

   單行語句和命令行輸出問題:不少時候不能將程序連寫成一行,如import sys;for i in sys.path:print i。而perl和awk就無此限制,能夠較爲方便的在shell下完成簡單程序,不須要如Python同樣,必須將程序寫入一個.py文件。
  獨特的語法:這也許不該該被稱爲侷限,可是它用縮進來區分語句關係的方式仍是給不少初學者帶來了困惑。即使是頗有經驗的Python程序員,也可能陷入陷阱當中。
運行速度慢:這裏是指與C和C++相比。

1.四、版本之間的差別

版本 python2.x python3.x
編碼類型 ASCII utf-8
print 

print""或者print()打印均可以正常輸出android

print x,   末尾加逗號進行不換行程序員

只能print()這種形式打印,不然會出現SyntaxError類型錯誤正則表達式

print(x,end=' ')使用空格來進行不換行算法

input

input:輸出原生的數據類型,輸出什麼類型的值,就輸出什麼類型shell

raw_input:所有以字符串形式輸出數據庫

3.x版本取消了raw_input方法,只能使用input方式提示輸入字符串,該方法和2.x版本的raw_input()相同編程

若是想要實現與2.x input()輸出原生數據類型值,可使用eval(input())python3.x

不等於 <>    != 去除<>只使用!=
除法

/  除法根據除法中的數據類型得出結果類型,整型得出整型,帶小數點就爲真除

//  整除,結果取整

% 取餘,

/  真除,得出真正結果

//  整除,結果取整

% 取餘,

支持新式類和經典類,使用新式類時,類繼承順序會影響最終繼承的結果

必須使用新式類,解決了類之間繼承順序的問題

改變了順序操做符的行爲

x<y,當x和y類型不匹配返回隨即的 bool值  

x<y,當x和y類型不匹配時拋出TypeError

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

註解:還有不少的改變,我這裏只是列舉一下經常使用的,若有須要,請聯繫修改。

 

2、python數據類型

 

類型 例子
int 符號整型

如:1,12,13,-1......  , 在2.x版本中範圍在-2**31~2**31-1之間,

取值決定於操做系統,不會下於這個範圍

float浮點型 有小數點的,如;1.1  1.2 -1.2......
str字符串

如:「hello world」,"python","1".....,注意,字符串須要用引號,單雙引號均可以(「hello world」)

若是不用引號引發來,python就不能把這個值識別爲字符串而是識別爲一個變量值

bool布爾類型  只有兩個值,真:True 假:False ,任何非零的數據類型,結果都爲真,當結果爲int 0時,則爲假
long 這個類型只存在2.x版本中,取值範圍無限大,取決於可用的虛擬內存
complex 複數  如:3.34j, 3.453e-7j......
元組tuple 如: (「a」,"hell", "python", "2")元組中值是不能夠改變的
列表list 如:["a","hello", "python", "2"]列表中的值是能夠改變的
字典dict 如:{「name」:"LaiYing","age":25,"job「:」IT"}字典中的值也是能夠改變的

 

 

3、python基本語法

算術運算

如下例子 a=10 b=20

運算符 描述 示例
+ 加法運算 a+b得30
- 減法運算 a-b得-10
* 乘法運算 a*b得200
/ 除法運算 b/a得2
%

取模,將%號左邊的值除以%號右邊的值而且

將獲得結果的餘數返回

10%5得0,10%3得1

20%得6

** 冪,返回x的y次冪,就是返回多少次方 2**8得256
// 取整除,返回x除以y的商的整數部分 9//2得4,9.0//2.0得4.0

 

 

 

 

 

 

 

 

比較運算

如下例子a=10 b=20

運算符 描述 示例
== 判斷兩個對象是否相等 (a==b)is not true
!= 判斷兩個對象是否不相等 (a != b)is true
<>  在3.x版本中已取消 判斷兩個對象是否不相等 (a<>b)is true與!=運算符同樣
> 大於,返回a是否大於b (a>b)is not true
< 小於,返回a是否小於b (a<b)is true
>= 大於等於,返回a是否大於等於b (a>=b)is not true
<= 小於等於,返回a是否小於等於b (a<=b)is true

 

 

 

 

 

 

 

賦值運算

如下例子 a=10 b=20

運算符 描述 示例
= 賦值,將右邊的值賦值給左邊的變量名

c = a + b 將會把a+b的結果

賦值給c

+=

自加賦值,將+=左邊的值和+=右邊的值相加

而後在把結果賦值給+=左邊的值

c +=a 至關於c = c + a
-= 自減賦值 c -= a 至關於 c = c - a
*= 自乘賦值 c *= a 至關於 c = c * a
/= 自除賦值 c /= a 至關於 c = c / a
%= 自取模賦值 c %= a 至關於 c = c % a
**= 自求冪賦值 c **=a 至關於 c = c ** a
//= 自取整賦值 c //=a 至關於 c = c // a

 

 

 

 

 

 

 

 

 

 

 

按位運算(二進制運算)

二進制位數 8 7 6 5 4 3 2 1
每位所表明的數字 128 64 32 16 8 4 2 1
60 0 0 1 1 1 1 0 0
13 0 0 0 0 1 1 0 1

 

 

 

 

 

好了,咱們剛剛知道了10進制如何轉2進制了,接下來咱們看看如何進行2個10進制數字的位運算

 

運算符 描述 示例
&

與運算,這個二進制爲必須都在2組數中都爲真

結果才返回爲真

(a & b)得12,二進制位;

0000 1100

| 或運算,這個二進制位只須要在其中一組數據中爲真即返回真

(a | b)得61,二進制位;

0011 1101

^ 異或運算,只有這個二進制位在兩組數據中不相同就返回真

( a ^ b )得49,二進制位;

0011 0001

<< 左移運算,將a總體向左移2位

a << 2得240,二進制位;

1111 0000

>> 右移運算,將a總體向左移3位

a >> 3得7,二進制位;

0000 0111

 

 

 

 

 

 

 

 

 

 

 

 

 

 

咱們來看看下面的運算過程

二進制位 8 7 6 5 4 3 2 1 結果
每位所表明的數字 128 64 32 16 8 4 2 1  
60 0 0 1 1 1 1 0 0  
13 0 0 0 0 1 1 0 1  
&與運算 0 0 0 0 1 1 0 0 12
|或運算 0 0 1 1 1 1 0 1 61
^異或運算 0 0 1 1 0 0 0 1 49
a<<2 1 1 1 1 0 0 0 0 240
a >>3 0 0 0 0 0 1 1 1 7

 

 

 

 

 

 

 

 

邏輯運算符

運算符 描述 示例
and 且,必須左右兩個條件都爲真,假如一個爲假就爲假 1 and 0 ,1爲真,0爲假,其結果爲假
or  或,只要一個爲真就爲真,不然就爲假

1 or  0,, 1 爲真就爲真,只要有一個條件爲真就不

繼續判斷後面的條件了

not 非,取反  

 

 

 

 

 

 

 

內容參考網絡上資料,若有侵權請聯繫修改。

相關文章
相關標籤/搜索