欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Python基本語法經(jīng)典教程

 更新時間:2016年03月11日 11:23:33   作者:Ruthless  
這篇文章主要介紹了Python基本語法,較為詳細的分析了Python基本語法所涉及的流程控制語句,表達式,函數(shù),對象,類型,數(shù)學(xué)運算等概念與使用技巧,需要的朋友可以參考下

本文講述了Python基本語法。分享給大家供大家參考,具體如下:

概述:

這里主要講述以下內(nèi)容:

① 縮進
② 流程控制語句
③ 表達式
④ 函數(shù)
⑤ 對象的方法
⑥ 類型
⑦ 數(shù)學(xué)運算

1. 縮進

Python開發(fā)者有意讓違反了縮進規(guī)則的程序不能通過編譯,以此來強制程序員養(yǎng)成良好的編程習(xí)慣。并且Python語言利用縮進表示語句塊的開始和退出(Off-side規(guī)則),而非使用花括號或者某種關(guān)鍵字。增加縮進表示語句塊的開始,而減少縮進則表示語句塊的退出??s進成為了語法的一部分。例如if語句:

if age < 21:
  print("你不能買酒。")
  print("不過你能買口香糖。")
print("這句話處于if語句塊的外面。")

注:上述例子為python 3.0版本的代碼

根據(jù)PEP的規(guī)定,必須使用4個空格來表示每級縮進(不清楚4個空格的規(guī)定如何,在實際編寫中可以自定義空格數(shù),但是要滿足每級縮進間空格數(shù)相等)。使用Tab字符和其它數(shù)目的空格雖然都可以編譯通過,但不符合編碼規(guī)范。支持Tab字符和其它數(shù)目的空格僅僅是為兼容很舊的的Python程序和某些有問題的編輯程序。

2. 流程控制語句

if語句,當(dāng)條件成立時運行語句塊。經(jīng)常與else, elif(相當(dāng)于else if) 配合使用。

for語句,遍歷列表、字符串、字典、集合等迭代器,依次處理迭代器中的每個元素。

while語句,當(dāng)條件為真時,循環(huán)運行語句塊。

try語句。與except,finally配合使用處理在程序運行中出現(xiàn)的異常情況。

class語句。用于定義類型。

def語句。用于定義函數(shù)和類型的方法。

pass語句。表示此行為空,不運行任何操作。

assert語句。用于程序調(diào)適階段時測試運行條件是否滿足。

with語句。Python2.6以后定義的語法,在一個場景中運行語句塊。比如,運行語句塊前加密,然后在語句塊運行退出后解密。

yield語句。在迭代器函數(shù)內(nèi)使用,用于返回一個元素。自從Python 2.5版本以后。這個語句變成一個運算符。

raise語句。制造一個錯誤。

import語句。導(dǎo)入一個模塊或包。

from import語句。從包導(dǎo)入模塊或從模塊導(dǎo)入某個對象。

import as語句。將導(dǎo)入的對象賦值給一個變量。

in語句。判斷一個對象是否在一個字符串/列表/元組里。

3. 表達式

Python的表達式寫法與C/C++類似。只是在某些寫法有所差別。

主要的算術(shù)運算符與C/C++類似。

+, -, *, /, //, **, ~, %分別表示加法或者取正、減法或者取負、乘法、除法、整除、乘方、取補、取模。

>>, <<表示右移和左移。

&, |, ^表示二進制的AND, OR, XOR運算。

>, <, ==, !=, <=, >=用于比較兩個表達式的值,分別表示大于、小于、等于、不等于、小于等于、大于等于。

在這些運算符里面,~, |, ^, &, <<, >>必須應(yīng)用于整數(shù)。

Python使用and, or, not表示邏輯運算。

is, is not用于比較兩個變量是否是同一個對象。in, not in用于判斷一個對象是否屬于另外一個對象。

Python列表推導(dǎo)式

列表推導(dǎo)式(list comprehension)是利用其他列表創(chuàng)建新列表(類似于數(shù)學(xué)術(shù)語中的集合推導(dǎo)式)的一種方法。它的工作方式類似于for循環(huán),也很簡單:

In [39]: [x*x for x in range(10)]
Out[39]: [0, 1, 4, 9, 16, 25, 36, 49, 64, 81]

如果只想打印出那些能被3整除的平方數(shù),只需要通過添加一個if部分在推導(dǎo)式中就可以完成:

In [41]: [x*x for x in xrange(10) if x % 3 == 0]
Out[41]: [0, 9, 36, 81]

也可以增加更多的for語句的部分:

In [42]: [(x,y) for x in range(3) for y in range(3)]
Out[42]: [(0, 0), (0, 1), (0, 2), (1, 0), (1, 1), (1, 2), (2, 0), (2, 1), (2, 2)]
In [43]: [[x,y] for x in range(2) for y in range(2)]
Out[43]: [[0, 0], [0, 1], [1, 0], [1, 1]]

Python使用lambda表示匿名函數(shù)。匿名函數(shù)體只能是表達式。比如:

>>> add=lambda x, y : x + y
>>> add(3,2)
5

Python使用y if cond else x表示條件表達式。意思是當(dāng)cond為真時,表達式的值為y,否則表達式的值為x。相當(dāng)于C++和Java里的cond?y:x。

Python區(qū)分列表(list)和元組(tuple)兩種類型。list的寫法是[1,2,3],而tuple的寫法是(1,2,3)??梢愿淖僱ist中的元素,而不能改變tuple。在某些情況下,tuple的括號可以省略。tuple

對于賦值語句有特殊的處理。因此,可以同時賦值給多個變量,比如:
>>> x, y=1,2#同時給x,y賦值,最終結(jié)果:x=1, y=2

特別地,可以使用以下這種形式來交換兩個變量的值:
>>> x, y=y, x #最終結(jié)果:y=1, x=2

Python使用'(單引號)和"(雙引號)來表示字符串。與Perl、Unix Shell語言或者Ruby、Groovy等語言不一樣,兩種符號作用相同。一般地,如果字符串中出現(xiàn)了雙引號,就使用單引號來表示

字符串;反之則使用雙引號。如果都沒有出現(xiàn),就依個人喜好選擇。出現(xiàn)在字符串中的\(反斜杠)被解釋為特殊字符,比如\n表示換行符。表達式前加r指示Python不解釋字符串中出現(xiàn)的\。這種寫法通常用于編寫正則表達式或者Windows文件路徑。

Python支持列表切割(list slices),可以取得完整列表的一部分。支持切割操作的類型有str, bytes, list, tuple等。它的語法是...[left:right]或者...[left:right:stride]。假定nums 變量的值是[1, 3, 5, 7, 8, 13, 20],那么下面幾個語句為真:

nums[2:5] == [5, 7, 8] 從下標為2的元素切割到下標為5的元素,但不包含下標為5的元素。
nums[1:] == [3, 5, 7, 8, 13, 20] 切割到最后一個元素。
nums[:-3] == [1, 3, 5, 7] 從最開始的元素一直切割到倒數(shù)第3個元素。
nums[:] == [1, 3, 5, 7, 8, 13, 20] 返回所有元素。改變新的列表不會影響到nums。
nums[1:5:2] == [3, 7] 從下標為1的元素切割到下標為5的元素但不包含下標為5的元素,且步長為2。

4. 函數(shù)

Python的函數(shù)支持遞歸、默認參數(shù)值、可變參數(shù),但不支持函數(shù)重載。為了增強代碼的可讀性,可以在函數(shù)后書寫“文檔字符串”(Documentation Strings,或者簡稱docstrings),用于解釋函數(shù)的作用、參數(shù)的類型與意義、返回值類型與取值范圍等??梢允褂脙?nèi)置函數(shù)help()打印出函數(shù)的使用幫助。比如:

>>> def randint(a, b):
... "Return random integer in range [a, b], including both end points."...
>>> help(randint)
Help on function randint in module __main__:
randint(a, b)
Return random integer inrange[a, b], including both end points.

5. 對象的方法

對象的方法是指綁定到對象的函數(shù)。調(diào)用對象方法的語法是instance.method(arguments)。它等價于調(diào)用Class.method(instance, arguments)。當(dāng)定義對象方法時,必須顯式地定義第一個參數(shù),一般該參數(shù)名都使用self,用于訪問對象的內(nèi)部數(shù)據(jù)。這里的self相當(dāng)于C++, Java里面的this變量,但是我們還可以使用任何其它合法的參數(shù)名,比如this 和 mine 等,self與C++,Java里面的this不完全一樣,它可以被看作是一個習(xí)慣性的用法,我們傳入任何其它的合法名稱都行,比如:

class Fish:
  def eat(self, food):
    if food is not None:
      self.hungry=False
class User: 
  def__init__(myself, name):
    myself. name= name
#構(gòu)造Fish的實例:
f=Fish()
#以下兩種調(diào)用形式是等價的:
Fish.eat(f,"earthworm")
f.eat("earthworm") 
u = User('username')
print(u .name)

Python認識一些以“__”開始并以“__”結(jié)束的特殊方法名,它們用于實現(xiàn)運算符重載和實現(xiàn)多種特殊功能。

6. 類型

Python采用動態(tài)類型系統(tǒng)。在編譯的時候,Python不會檢查對象是否擁有被調(diào)用的方法或者屬性,而是直至運行時,才做出檢查。所以操作對象時可能會拋出異常。不過,雖然Python采用動態(tài)類型系統(tǒng),它同時也是強類型的。Python禁止沒有明確定義的操作,比如數(shù)字加字符串。

與其它面向?qū)ο笳Z言一樣,Python允許程序員定義類型。構(gòu)造一個對象只需要像函數(shù)一樣調(diào)用類型即可,比如,對于前面定義的Fish類型,使用Fish()。類型本身也是特殊類型type的對象(type類型本身也是type對象),這種特殊的設(shè)計允許對類型進行反射編程。

Python內(nèi)置豐富的數(shù)據(jù)類型。與Java、C++相比,這些數(shù)據(jù)類型有效地減少代碼的長度。下面這個列表簡要地描述了Python內(nèi)置數(shù)據(jù)類型(適用于Python 3.x):

除了各種數(shù)據(jù)類型,Python語言還用類型來表示函數(shù)、模塊、類型本身、對象的方法、編譯后的Python代碼、運行時信息等等。因此,Python具備很強的動態(tài)性。

7. 數(shù)學(xué)運算

Python使用與C、Java類似的運算符,支持整數(shù)與浮點數(shù)的數(shù)學(xué)運算。同時還支持復(fù)數(shù)運算與無窮位數(shù)(實際受限于計算機的能力)的整數(shù)運算。除了求絕對值函數(shù)abs()外,大多數(shù)數(shù)學(xué)函數(shù)處于math和cmath模塊內(nèi)。前者用于實數(shù)運算,而后者用于復(fù)數(shù)運算。使用時需要先導(dǎo)入它們,比如:

>>> import math
>>> print(math.sin(math.pi/2))
1.0

fractions模塊用于支持分數(shù)運算;decimal模塊用于支持高精度的浮點數(shù)運算。

Python定義求余運行a % b的值處于開區(qū)間[0, b)內(nèi),如果b是負數(shù),開區(qū)間變?yōu)?b, 0]。這是一個很常見的定義方式。不過其實它依賴于整除的定義。為了讓方程式:b * (a // b) + a % b = a恒真,整除運行需要向負無窮小方向取值。比如7 // 3的結(jié)果是2,而(-7) // 3的結(jié)果卻是-3。這個算法與其它很多編程語言不一樣,需要注意,它們的整除運算會向0的方向取值。Python允許像數(shù)學(xué)的常用寫法那樣連著寫兩個比較運行符。比如a < b < c與a < b and b < c等價。C++的結(jié)果與Python不一樣,首先它會先計算a < b,根據(jù)兩者的大小獲得0或者1兩個值之一,然后再與c進行比較。

希望本文所述對大家Python程序設(shè)計有所幫助。

相關(guān)文章

  • Python+OpenCV圖片局部區(qū)域像素值處理改進版詳解

    Python+OpenCV圖片局部區(qū)域像素值處理改進版詳解

    這篇文章主要為大家詳細介紹了Python+OpenCV圖片局部區(qū)域像素值處理的改進版,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-01-01
  • Python批量將圖片灰度化的實現(xiàn)代碼

    Python批量將圖片灰度化的實現(xiàn)代碼

    這篇文章主要介紹了Python批量將圖片灰度化的實現(xiàn)代碼,本文給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-04-04
  • win10安裝python3.6的常見問題

    win10安裝python3.6的常見問題

    在本篇文章里小編給大家分享的是關(guān)于win10安裝python3.6的具體步驟,有興趣的朋友們可以參考學(xué)習(xí)下。
    2020-07-07
  • Python 創(chuàng)建空的list,以及append用法講解

    Python 創(chuàng)建空的list,以及append用法講解

    今天小編就為大家分享一篇Python 創(chuàng)建空的list,以及append用法講解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-05-05
  • Python字符串逆序的實現(xiàn)方法【一題多解】

    Python字符串逆序的實現(xiàn)方法【一題多解】

    今天小編就為大家分享一篇關(guān)于Python字符串逆序的實現(xiàn)方法【一題多解】,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
    2019-02-02
  • python3實現(xiàn)ftp服務(wù)功能(服務(wù)端 For Linux)

    python3實現(xiàn)ftp服務(wù)功能(服務(wù)端 For Linux)

    這篇文章主要介紹了python3實現(xiàn)ftp服務(wù)功能,服務(wù)端 For Linux,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-03-03
  • PowerShell的基本使用方法

    PowerShell的基本使用方法

    本文主要介紹了PowerShell的基本使用方法,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-12-12
  • Python3 pandas.concat的用法說明

    Python3 pandas.concat的用法說明

    這篇文章主要介紹了Python3 pandas.concat的用法說明,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-03-03
  • 基于Python實現(xiàn)自動化文檔整理工具

    基于Python實現(xiàn)自動化文檔整理工具

    一個人可能會在計算機上存儲大量的照片、視頻和文檔文件,這些文件可能散落在不同的文件夾中,難以管理和查找。所以本文就來用Python制作一個自動化文檔整理工具吧
    2023-04-04
  • Python devel安裝失敗問題解決方案

    Python devel安裝失敗問題解決方案

    這篇文章主要介紹了Python devel安裝失敗問題解決方案,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-06-06

最新評論