Python3的簡介

Python3簡介

Python3與Python2之間是不兼容的,並且其中的差別性比較大。其實Python是linux上最經常使用的軟件之一,可是linux目前的版本大部分仍是使用Python2的,並且,在linux上依賴Python2的程序更多一些,因此 Python3 要代替 Python2 成爲主流還須要幾年的時間。
我建議:
php

  1. 若是是你在企業中,須要用到Python而學習Python的話,那就要看企業的應用Python的版本進行學習;
  2. 若是想要更多的成熟解決方案,最少的bug,最穩定的應用那就用Python2 ;
  3. 若是你是在讀大學的學生,那我建議你學習Python3,等到畢業的時候或許Python已經成爲了主流。

Python 是一個高層次的結合瞭解釋性、編譯性、互動性和麪向對象的腳本語言。
Python 的設計具備很強的可讀性,相比其餘語言常用英文關鍵字,其餘語言的一些標點符號,它具備比其餘語言更有特點語法結構。
python

  • Python 是一種解釋型語言: 這意味着開發過程當中沒有了編譯這個環節。相似於PHP和Perl語言。
  • Python 是交互式語言: 這意味着,您能夠在一個 Python 提示符 >>> 後直接執行代碼。
  • Python 是面嚮對象語言: 這意味着Python支持面向對象的風格或代碼封裝在對象的編程技術。
  • Python 是初學者的語言:Python 對初級程序員而言,是一種偉大的語言,它支持普遍的應用程序開發,從簡單的文字處理到 WWW 瀏覽器再到遊戲。

Python特色

  1. 易於學習:Python有相對較少的關鍵字,結構簡單,和一個明肯定義的語法,學習起來更加簡單。
  2. 易於閱讀:Python代碼定義的更清晰。
  3. 易於維護:Python的成功在於它的源代碼是至關容易維護的。
  4. 一個普遍的標準庫:Python的最大的優點之一是豐富的庫,跨平臺的,在UNIX,Windows和Macintosh兼容很好。
  5. 互動模式:互動模式的支持,您能夠從終端輸入執行代碼並得到結果的語言,互動的測試和調試代碼片段。
  6. 可移植:基於其開放源代碼的特性,Python已經被移植(也就是使其工做)到許多平臺。
  7. 可擴展:若是你須要一段運行很快的關鍵代碼,或者是想要編寫一些不肯開放的算法,你可使用C或C++完成那部分程序,而後從你的Python程序中調用。
  8. 數據庫:Python提供全部主要的商業數據庫的接口。
  9. GUI編程:Python支持GUI能夠建立和移植到許多系統調用。
  10. 可嵌入: 你能夠將Python嵌入到C/C++程序,讓你的程序的用戶得到"腳本化"的能力。

Python3 下載

Python 官網:https://www.python.org/linux

Python3 基礎語法

編碼

默認狀況下,Python 3 源碼文件以 UTF-8 編碼,全部字符串都是 unicode 字符串。程序員

標識符

  • 第一個字符必須是字母表中字母或下劃線 _ 。
  • 標識符的其餘的部分由字母、數字和下劃線組成。
  • 標識符對大小寫敏感。

在 Python 3 中,能夠用中文做爲變量名,非 ASCII 標識符也是容許的了。算法

行與縮進

  • python最具特點的就是使用縮進來表示代碼塊,不須要使用大括號 {} 。
  • 縮進的空格數是可變的,可是同一個代碼塊的語句必須包含相同的縮進空格數。

縮進不一致,會致使運行錯誤shell

IndentationError: unindent does not match any outer indentation level

import 與 from…import

  • 在 python 用 import 或者 from…import 來導入相應的模塊。
  • 將整個模塊(somemodule)導入,格式爲: import somemodule
  • 從某個模塊中導入某個函數,格式爲: from somemodule import somefunction
  • 從某個模塊中導入多個函數,格式爲: from somemodule import firstfunc, secondfunc, thirdfunc
  • 將某個模塊中的所有函數導入,格式爲: from somemodule import *

Python 數字運算

Python 解釋器能夠做爲一個簡單的計算器,您能夠在解釋器裏輸入一個表達式,它將輸出表達式的值。
表達式的語法很直白: +, -, * 和 /, 和其它語言(如Pascal或C)裏同樣。
數據庫

注意:在不一樣的機器上浮點運算的結果可能會不同。編程

在整數除法中,除法 / 老是返回一個浮點數,若是隻想獲得整數的結果,丟棄可能的分數部分,可使用運算符 //。瀏覽器

注意:// 獲得的並不必定是整數類型的數,它與分母分子的數據類型有關係。服務器

>>> 7//2
3
>>> 7.0//2
3.0
>>> 7//2.0
3.0

Python3 列表

序列是Python中最基本的數據結構。序列中的每一個元素都分配一個數字 - 它的位置,或索引,第一個索引是0,第二個索引是1,依此類推。

Python有6個序列的內置類型,但最多見的是列表和元組。

序列均可以進行的操做包括索引,切片,加,乘,檢查成員。

此外,Python已經內置肯定序列的長度以及肯定最大和最小的元素的方法。

列表是最經常使用的Python數據類型,它能夠做爲一個方括號內的逗號分隔值出現。

列表的數據項不須要具備相同的類型

建立一個列表,只要把逗號分隔的不一樣的數據項使用方括號括起來便可。以下所示:list = [1, 2, 3, 4, 5 ]

Python3 元組

Python 的元組與列表相似,不一樣之處在於元組的元素不能修改。

元組使用小括號,列表使用方括號。

元組建立很簡單,只須要在括號中添加元素,並使用逗號隔開便可。

元組中只包含一個元素時,須要在元素後面添加逗號,不然括號會被看成運算符使用:

>>> tup1 = (50,)
>>> type(tup1)     # 加上逗號,類型爲元組
<class 'tuple'>

Python3 字典

字典是另外一種可變容器模型,且可存儲任意類型對象。

字典的每一個鍵值(key=>value)對用冒號(:)分割,每一個對之間用逗號(,)分割,整個字典包括在花括號({})中 。

鍵必須是惟一的,但值則沒必要。

值能夠取任何數據類型,但鍵必須是不可變的,如字符串,數字或元組。

實例:

#!/usr/bin/python3
 
dict = {'Name': 'Test', 'Age': 7, 'number': 'First'}
 
print ("dict['Alice']: ", dict['Alice'])

如上面的實例,用字典裏沒有的鍵訪問數據,會輸出錯誤以下:

Traceback (most recent call last):
  File "test.py", line 5, in <module>
    print ("dict['Alice']: ", dict['Alice'])
KeyError: 'Alice'

Python3 集合

集合(set)是一個無序的不重複元素序列。

可使用大括號 { } 或者 set() 函數建立集合,注意:建立一個空集合必須用 set() 而不是 { },由於 { } 是用來建立一個空字典。

Python3 循環語句

關於無限循環,咱們能夠經過設置條件表達式永遠不爲 false 來實現無限循環,實例以下:

#!/usr/bin/python3
 
var = 1
while var == 1 :  # 表達式永遠爲 true
   num = int(input("請輸入一個數字 :"))
   print ("你輸入的數字是: ", num) 
print ("Good bye!")

執行以上腳本,輸出結果以下:

輸入一個數字  :5
你輸入的數字是:  5
輸入一個數字  :

你可使用 CTRL+C 來退出當前的無限循環。

無限循環在服務器上客戶端的實時請求很是有用。

Python3 迭代器與生成器

迭代器
迭代是Python最強大的功能之一,是訪問集合元素的一種方式。

迭代器是一個能夠記住遍歷的位置的對象。

迭代器對象從集合的第一個元素開始訪問,直到全部的元素被訪問完結束。迭代器只能往前不會後退。

迭代器有兩個基本的方法:iter() 和 next()。

字符串,列表或元組對象均可用於建立迭代器。

>>> list=[1,2,3,4]
>>> it = iter(list)    # 建立迭代器對象
>>> print (next(it))   # 輸出迭代器的下一個元素
1
>>> print (next(it))
2
>>> print (next(it))
3
>>> print (next(it))
4

生成器
在 Python 中,使用了 yield 的函數被稱爲生成器(generator)。

跟普通函數不一樣的是,生成器是一個返回迭代器的函數,只能用於迭代操做,更簡單點理解生成器就是一個迭代器。

在調用生成器運行的過程當中,每次遇到 yield 時函數會暫停並保存當前全部的運行信息,返回 yield 的值, 並在下一次執行 next() 方法時從當前位置繼續運行。

調用一個生成器函數,返回的是一個迭代器對象。

Python3 函數

函數是組織好的,可重複使用的,用來實現單一,或相關聯功能的代碼段。

函數能提升應用的模塊性,和代碼的重複利用率。你已經知道Python提供了許多內建函數,好比print()。但你也能夠本身建立函數,這被叫作用戶自定義函數。

定義一個函數
你能夠定義一個由本身想要功能的函數,如下是簡單的規則:

  • 函數代碼塊以 def 關鍵詞開頭,後接函數標識符名稱和圓括號 ()。
  • 任何傳入參數和自變量必須放在圓括號中間,圓括號之間能夠用於定義參數。
  • 函數的第一行語句能夠選擇性地使用文檔字符串—用於存放函數說明。 函數內容以冒號起始,而且縮進。
  • return [表達式] 結束函數,選擇性地返回一個值給調用方。不帶表達式的return至關於返回 None。

函數調用
定義一個函數:給了函數一個名稱,指定了函數裏包含的參數,和代碼塊結構。

這個函數的基本結構完成之後,你能夠經過另外一個函數調用執行,也能夠直接從 Python 命令提示符執行。

以下實例調用了 printme() 函數:

#!/usr/bin/python3

#定義函數
def printme( str ):
   # 打印任何傳入的字符串
   print (str)
   return
#調用函數
printme("我要調用用戶自定義函數!")
printme("再次調用同一函數")

以上實例輸出結果:

我要調用用戶自定義函數!
再次調用同一函數

Python3 模塊

在前面的幾個章節中咱們腳本上是用 python 解釋器來編程,若是你從 Python 解釋器退出再進入,那麼你定義的全部的方法和變量就都消失了。

爲此 Python 提供了一個辦法,把這些定義存放在文件中,爲一些腳本或者交互式的解釋器實例使用,這個文件被稱爲模塊。

模塊是一個包含全部你定義的函數和變量的文件,其後綴名是.py。模塊能夠被別的程序引入,以使用該模塊中的函數等功能。這也是使用 python 標準庫的方法。

下面是一個使用 python 標準庫中模塊的例子。

#!/usr/bin/python3
# 文件名: using_sys.py
 
import sys
 
print('命令行參數以下:')
for i in sys.argv:
   print(i)
 
print('\n\nPython 路徑爲:', sys.path, '\n')

執行結果以下所示:

$ python using_sys.py 參數1 參數2
命令行參數以下:
using_sys.py
參數1
參數2

Python 路徑爲: ['/root', '/usr/lib/python3.4', '/usr/lib/python3.4/plat-x86_64-linux-gnu', '/usr/lib/python3.4/lib-dynload', '/usr/local/lib/python3.4/dist-packages', '/usr/lib/python3/dist-packages']

Python3 File(文件) 方法

open() 方法
Python open() 方法用於打開一個文件,並返回文件對象,在對文件進行處理過程都須要使用到這個函數,若是該文件沒法被打開,會拋出 OSError。

注意:使用 open() 方法必定要保證關閉文件對象,即調用 close() 方法。
open() 函數經常使用形式是接收兩個參數:文件名(file)和模式(mode)。

Python3 錯誤和異常

做爲 Python 初學者,在剛學習 Python 編程時,常常會看到一些報錯信息,在前面咱們沒有說起,這章節咱們會專門介紹。

Python 有兩種錯誤很容易辨認:語法錯誤和異常。

語法錯誤
Python 的語法錯誤或者稱之爲解析錯,是初學者常常碰到的。

語法分析器指出了出錯的一行,而且在最早找到的錯誤的位置標記了一個小小的箭頭。

異常
即使 Python 程序的語法是正確的,在運行它的時候,也有可能發生錯誤。運行期檢測到的錯誤被稱爲異常。

大多數的異常都不會被程序處理,都以錯誤信息的形式展示在這裏:

實例

>>> 10 * (1/0)             # 0 不能做爲除數,觸發異常
Traceback (most recent call last):
  File "<stdin>", line 1, in ?
ZeroDivisionError: division by zero
>>> 4 + spam*3             # spam 未定義,觸發異常
Traceback (most recent call last):
  File "<stdin>", line 1, in ?
NameError: name 'spam' is not defined
>>> '2' + 2               # int 不能與 str 相加,觸發異常
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: can only concatenate str (not "int") to str

異常以不一樣的類型出現,這些類型都做爲信息的一部分打印出來: 例子中的類型有 ZeroDivisionError,NameError 和 TypeError。

錯誤信息的前面部分顯示了異常發生的上下文,並以調用棧的形式顯示具體信息。

Python3 面向對象

Python從設計之初就已是一門面向對象的語言,正由於如此,在Python中建立一個類和對象是很容易的。本章節咱們將詳細介紹Python的面向對象編程。

若是你之前沒有接觸過面向對象的編程語言,那你可能須要先了解一些面嚮對象語言的一些基本特徵,在頭腦裏頭造成一個基本的面向對象的概念,這樣有助於你更容易的學習Python的面向對象編程。

接下來咱們先來簡單的瞭解下面向對象的一些基本特徵。

面向對象技術簡介

  • 類(Class): 用來描述具備相同的屬性和方法的對象的集合。它定義了該集合中每一個對象所共有的屬性和方法。對象是類的實例。
  • 方法:類中定義的函數。
  • 類變量:類變量在整個實例化的對象中是公用的。類變量定義在類中且在函數體以外。類變量一般不做爲實例變量使用。
  • 數據成員:類變量或者實例變量用於處理類及其實例對象的相關的數據。
  • 方法重寫:若是從父類繼承的方法不能知足子類的需求,能夠對其進行改寫,這個過程叫方法的覆蓋(override),也稱爲方法的重寫。
  • 局部變量:定義在方法中的變量,只做用於當前實例的類。
  • 實例變量:在類的聲明中,屬性是用變量來表示的,這種變量就稱爲實例變量,實例變量就是一個用 self 修飾的變量。
  • 繼承:即一個派生類(derived class)繼承基類(base
    class)的字段和方法。繼承也容許把一個派生類的對象做爲一個基類對象對待。例如,有這樣一個設計:一個Dog類型的對象派生自Animal類,這是模擬"是一個(is-a)"關係(例圖,Dog是一個Animal)。
  • 實例化:建立一個類的實例,類的具體對象。
  • 對象:經過類定義的數據結構實例。對象包括兩個數據成員(類變量和實例變量)和方法。

和其它編程語言相比,Python 在儘量不增長新的語法和語義的狀況下加入了類機制。

Python中的類提供了面向對象編程的全部基本功能:類的繼承機制容許多個基類,派生類能夠覆蓋基類中的任何方法,方法中能夠調用基類中的同名方法。

對象能夠包含任意數量和類型的數據。

相關文章
相關標籤/搜索