日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

python的类程序的结构_Python程序员学习路径之数据结构篇

發布時間:2024/1/23 python 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python的类程序的结构_Python程序员学习路径之数据结构篇 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

原標題:Python程序員學習路徑之數據結構篇

點擊標題下「異步圖書」可快速關注

在計算機科學中,數據結構是一門進階性課程,概念抽象,難度較大。Python語言的語法簡單,交互性強。用Python來講解數據結構等主題,比C語言等實現起來更為容易,更為清晰。

而對于自學Python的朋友往往會遇到數據結構的問題,和所有的現代編程語言一樣,Python也有大量的功能和構造。然而,Python是少數的幾種基本程序要素相當簡單的語言之一。本文將開始介紹使用Python編程的一些基礎知識。

1.1.1 程序和模塊

Python程序包含一個或多個模塊(module)。模塊只不過是Python代碼的一個文件,其中可以包含語句、函數定義和類定義。簡短的Python程序也稱為腳本(),可以包含在一個模塊之中。而較長的或較為復雜的程序,通常包含一個主模塊和一個或多個支持模塊。主模塊包含了程序執行的起點,支持模塊則包含了函數和類的定義。

1.1.2 Python程序示例:猜數字

接下來,我們來看一個完整的Python程序,它是一個和用戶玩猜數字的游戲的程序。計算機要求用戶輸入數值范圍的最小值和最大值。計算機隨后“思考”出在這個范圍之內的一個隨機數,并且重復地要求用戶猜測這個數,直到用戶猜對了。在用戶每次進行猜測之后,計算機都會給出一個提示,并且會在這個過程的最后顯示出總的猜測次數。這個程序包含了幾種類型的Python語句,例如,輸入語句、輸出語句、賦值語句、循環和條件語句,我們將在本章的后面介紹它們。這個程序還包含了一個函數的定義。

如下是該程序的代碼,代碼位于文件numberguess.py之中:

"""Author: Ken Lambert Plays a game of guess the number with the user. """import randomdef main(): """Inputs the bounds of the range of numbers and lets the user guess the computer’s number until the guess is correct.""" smaller = int(input("Enter the smaller number: ")) larger = int(input("Enter the larger number: ")) myNumber = random.randint(smaller, larger) count = 0 while True: count += 1 userNumber = int(input("Enter your guess: ")) if userNumber < myNumber: print("Too small") elif userNumber > myNumber: print("Too large") else: print("You’ve got it in", count, "tries!") breakif __name__ == "__main__": main()

如下是一個用戶和該程序的交互記錄:

Enter the smaller number: 1Enter the larger number: 32Enter your guess: 16Too smallEnter your guess: 24Too largeEnter your guess: 20You’ve got it in 3 tries!

1.1.3 編輯、編譯并運行Python程序

你可以在一個終端窗口中輸入一條命令,來運行整個Python程序。例如,運行本書中給出的大多數示例。要運行numberguess.py文件中包含的程序,在大多數的終端窗口中,只要輸入如下的命令就可以了:

python3 numberguess.py

要創建或編輯Python模塊,嘗試使用Python的IDLE(Integrated DeveLopment Environment,集成開發環境)。要啟動IDLE,在一個終端提示符后輸入idle或idle3,或者單擊其圖標。也可以通過在某個Python源代碼文件(以.py為擴展名的任何文件)上單擊,或者通過在一個文件上點擊鼠標右鍵并選擇“Open or Edit with IDLE”,來啟動IDLE。確保將你的系統設置為在加載這種類型的文件的時候會打開IDLE。

IDLE提供了一個shell窗口,可以交互式地運行Python表達式和語句。使用IDLE,可以在編輯器窗口和shell窗口之間來回切換,以開發和運行完整的程序。IDLE還能夠格式化代碼,并為代碼提供顏色區分。

當你用IDLE打開已有的Python文件的時候,文件會出現在編輯器窗口中,并且shell會在一個單獨的窗口彈出。要運行一個程序,將光標移動到編輯器窗口中,并且按下F5鍵。Python會在編輯器窗口中編譯代碼,并且在shell窗口中運行它。

當運行包含幾個Python模塊的一個程序的時候,針對每個模塊(除了主模塊之外)編譯后的代碼,會被保存到一個二進制代碼文件中(以.pyc為擴展名的一個文件)。Python加載這些文件,以便運行隨后的程序(如果沒有對相應的.py文件做出修改的話)。

如果一個Python程序掛起了或者沒有正常結束的話,可以按下Ctrl+C鍵或關閉shell窗口來退出。

1.1.4 程序注釋

程序注釋是Python編譯器會忽略的文本,但是,作為文檔,它對于程序的閱讀者很有價值。Python中的單行注釋以一個#符號開頭,并且到當前行的末尾結束。它的顏色是紅色的(盡管由于本書是黑白印刷的,你并看不出來這一點)。如下所示:

# This is an end-of-line comment.

一個多行注釋是用3個單引號或3個雙引號括起來的一個字符串。這樣的注釋也叫作文檔字符串(docstring),表明它們可以記錄程序中的主要結構。前面給出的猜數字程序就包含了兩個文檔字符串。第一個文檔字符串在程序文件的頂部,充當了整個numberguess模塊的注釋。第二個文檔字符串在主函數的頭部之下,描述了這個函數做什么事情。盡管文檔字符串看上去很簡短,但是它們能在Python shell中為程序員提供幫助,因此扮演了一個重要的角色。

1.1.5 詞法元素

語言中的詞法元素是用于構造語句一類的單詞和符號。和所有的高級編程語言一樣,Python的一些基本符號是關鍵字,例如if、while和def。還包括了其他的一些詞法元素,例如標識符(名稱)、字面值(數字、字符串和其他內建的數據結構)、運算符和分隔符(引號、逗號、圓括號、方括號和花括號)。

1.1.6 拼寫和命名慣例

Python關鍵字和名稱都是區分大小寫的。因此,while是一個關鍵字,而While則是程序員定義的一個名稱。Python關鍵字是以小寫字母的方式拼寫的,并且在IDLE窗口中以橙色表示。

所有的Python名稱,其顏色都是黑色的,除非將其作為函數、類或方法名來引用,在這種情況下,它們顯示為藍色。名稱可以以一個字母或一個下劃線(‘_’)開頭,后面跟著任意多個字母、下劃線或者數字。

在本書中,模塊、變量、函數和方法的名稱,都是以小寫字母的形式來拼寫的。模塊名只有一種例外,就是當一個模塊名包含了一個或多個嵌入的名稱的時候,嵌入的名稱都是大寫的。類名也遵從相同的命名慣例,但是,類名的首字母是大寫的。當一個變量名是一個常量的時候,其所有的字母都是大寫的,并且會有一個下劃線用來隔開任何嵌入的名稱。表1.1給出了這些命名慣例的示例。

表1.1  Python命名慣例的示例

名稱類型

示例

變量

salary, hoursWorked, isAbsent

常量

ABSOLUTE_ZERO, INTEREST_RATE

函數或方法

printResults, cubeRoot, isEmpty

BankAccount, SortedSet

要使用能夠描述其在程序中的角色的名稱。通常,變量名應該是名詞或形容詞(如果它們表示布爾值的話,就是形容詞),而函數和方法名應該是動詞(如果它們表示動作)或者名詞或形容詞(如果它們表示返回的值)。

1.1.7 語法元素

一種語言的語法元素是由詞法元素組成的語句(表達式、語句和其他結構)的類型。和大多數的高級語言不同,Python使用空白(空格、制表符和換行)來標記多種類型的語句的語法。這意味著,在Python代碼中,縮進和換行是很重要的。像IDLE這樣的智能編輯器,能夠幫助正確地縮進。程序員不需要操心用分號隔開句子,或者用花括號來標記語句塊。在本書所有的Python代碼中,我使用4個空格寬度的縮進。

1.1.8 字面值

數字(整數或浮點數)的寫法和在其他編程語言中的寫法都是一樣的。布爾值True和False都是關鍵字。一些數據結構,例如字符串、元組、列表和字典,也擁有字面值,稍后我們將會看到這一點。

1.1.9 字符串字面值

可以用單引號、雙引號,或者成對的三個雙引號或三個單引號將字符串括起來。最后的這種表示方法,對于包含多行文本的字符串來說,是很有用的。字符值是單字符的字符串。\字符用于將非圖形化的字符(例如,換行\n和制表符\t,或者\字符本身)進行轉義。下面的代碼段及其輸出,展示了各種可能性:

print("Using double quotes")print(’Using single quotes’)print("Mentioning the word ’Python’ by quoting it")print("Embedding a\nline break with \\n")print("""Embedding a line break with triple quotes""")

輸出:

Using double quotesUsing single quotesMentioning the word ’Python’ by quoting itEmbedding a line break with \nEmbedding a line break with triple quotes

1.1.10 運算符和表達式

算術表達式使用標準的運算符(+、–、*和/)和中綴表示法。/運算符對于任何數字運算數,都會生成一個浮點數的結果,而//運算符則會產生一個整數的商。當+運算符用于集合(例如,字符串和列表)的時候,它表示連接。**運算符用于指數運算。

比較運算符(<、<=、>、>=、==和!=)用于數字和字符串。==運算符比較數據結構內部的內容(例如,兩個列表)在結構上的相等性。is運算符比較對象實體的兩個值。比較會返回True或False。

邏輯運算符and、or和not會將幾個值(例如0、None、空字符串和空列表)作為False對待。相反,它們會將大多數其他的Python值當作True對待。

下標運算符[]和集合一起使用,稍后將會介紹它。

選擇器運算符.用于引用一個模塊、類或對象中的一個具名的項。

運算符都有標準的優先級(依次是選擇器運算符、函數調用、下標運算符、算術運算符、比較運算符、邏輯運算符、賦值運算符)。括號通常用于將一個子表達式括起來,方便更早地運算它。**和=運算符是右結合性的,而其他的運算符是左結合性的。

1.1.11 函數調用

函數調用的通常形式是函數名后面跟著用括號括起來的參數列表。例如:

min(5, 2) # Returns 2

Python包含了一些標準的函數,例如abs和round。很多其他的函數,可以通過導入模塊的方式而變得可用,稍后你將會看到這一點。

1.1.12 print函數

標準輸出函數print會將其參數顯示到控制臺。這個函數允許不同個數的參數。Python自動在每個參數上運行str函數,以獲取其字符串表示,并且在輸出之前用一個空格將每一個字符串隔開。默認情況下,輸出結束的時候會使用一個換行。

1.1.13 input函數

標準輸入函數input會等待用戶通過鍵盤輸入文本。當用戶按下回車鍵的時候,該函數返回了包含所輸入的字符的一個字符串。這個函數接受一個可選的字符串作為其參數,并且會不換行地打印出這個字符串,以提示用戶進行輸入。

1.1.14 類型轉換函數和混合模式運算

可以將一些數據類型名稱當作類型轉換函數來使用。例如,當用戶輸入一個數字的時候,input函數返回數字組成的一個字符串,而不是一個數字值。程序必須先把這個字符串轉換為int類型或float類型,然后才能夠進行數字處理。下面的代碼段輸入了一個圓的半徑,將這個字符串轉換為float型,然后計算并輸出了這個圓形的面積:

radius = float(input("Radius: "))print("The area is", 3.14 * radius ** 2)

和大多數其他的編程語言一樣,Python允許算術表達式中的運算數具有不同的數值類型。在這種情況下,結果的類型和最為通用的運算數的類型相同。例如,int型和float型相加,將會得到float型的結果。

1.1.15 可選的和關鍵字函數參數

函數允許可選的參數,可選的參數在函數調用的時候是通過關鍵字來指定的。例如,print函數默認地會在其要顯示的參數后面輸出一個換行。為了阻止這種情況發生,可以給可選的參數end一個空字符串的值,如下所示:

print("The cursor will stay on this line, at the end", end = "")

必需的參數是沒有默認值的。可選的參數有默認值,并且當使用其關鍵字的時候,它們可以按照任意的順序出現,只要都放在必需的參數之后就可以了。

例如,標準函數round期望一個必需的參數,這是一個舍入的值。還有一個可選的參數,表示精度的位數。當省略第2個參數的時候,該函數返回最近的整數值(int型)。當包含第2個參數的時候,該函數返回float型。

通常,調用函數的時候傳遞給它的參數的個數,至少要和它的必需參數的個數相同。

在調用標準函數和Python的庫函數時,它們會檢查其參數的類型。程序員定義的函數可以接受任意類型的參數,包括函數和類型自身。

1.1.16 變量和賦值語句

一個Python變量是通過一條賦值語句來引入的。例如:

PI = 3.1416

將PI的值設為3.1416。一條簡單的賦值語句的語法是:

=

在同一條賦值語句中可以引入多個變量,如下所示:

minValue, maxValue = 1, 100

要交換變量a和變量b的值,可以像下面這樣編寫代碼:

a, b=b,a

賦值語句必須出現在單個的一行代碼之中,除非這一行是在一個逗號、圓括號、花括號或方括號之后換行。當不具備這些選擇的時候,在一條語句中換行的另一種方式是,用一個轉義字符\來結束一行。通常將這個符號放在一個表達式中的運算符之前或之后。如下是一些顯然不太符合實際情況的例子:

minValue = min(100, 200) product = max(100, 200) \ *30

當你在一個逗號或轉義符號之后按下回車鍵的時候,IDLE會自動縮進下一行的代碼。

1.1.17 Python數據類型

在Python中,任何變量都可以指定任何類型的一個值。變量不會聲明為某一個類型,這和很多其他語言中的情況不同,變量會被直接賦一個值。

因此,數據類型名稱不會出現在Python程序中。然而,所有的值和對象都是有類型的。表達式中的運算數的類型會在運行時檢查,因此,類型錯誤一定會進行檢查;然而,在編寫代碼的時候,程序員不必關心數據類型。

1.1.18 import語句

import語句使得另一個模塊中的標識符可以被一個程序所見到。這些標識符可能是對象名、函數名或類名。有幾種方式可以表示一條import語句。最簡單的方式是,導入一個模塊名稱,例如:

import math

這使得在math模塊中定義的任何名稱,在當前的模塊中都可以通過math.形式的語法而變得可用。因此,math.sqrt(2)將會返回2的平方根。

另一種導入的形式是,只導入要使用的名稱自身,這樣一來,就可以不帶有模塊名作為前綴而直接使用該名稱了:

from math import sqrtprint(sqrt(2))

可以通過列出幾個單獨的名稱來導入它們:

from math import pi, sqrtprint(sqrt(2) * pi)

可以使用*運算符導入一個模塊中所有的名稱,但是,我們并不認為這是好的做法。

1.1.19 獲取關于程序組件的幫助

盡管Python的Web站點www.python.org擁有Python語言的完整文檔,但是在Python shell中也可以快速獲取和語言大部分組成部分相關的幫助信息。要訪問這樣的幫助信息,只需要在shell提示符中輸入名為help( )的函數,其中的是模塊、數據類型、函數或方法的名稱。例如,調用help(abs)和(math.sqrt)分別會顯示abs和math.sqrt函數的文檔。調用help(int)和help(math)將會分別顯示int類型和math模塊中的所有操作的文檔。

注意,如果一個模塊并非是在shell啟動的時候Python將要加載的內建模塊,程序員必須先導入模塊,然后才能請求關于它的幫助信息。例如,shell中的如下會話,將會顯示本章前面所介紹的numberguess程序的文檔:

>>> import numberguess>>> help(numberguess)Help on module numberguess: NAME numberguess DEION Author: Ken Lambert Plays a game of guess the number with the user. FUNCTIONS main() Inputs the bounds of the range of numbers, andletstheuserguessthecomputer’snumberuntil the guess is correct. FILE /Users/ken/Documents/CS2Python/Chapters/Chapter1/numberguess.py

1.2 控制語句

Python包含了針對序列、條件式執行和迭代等情況的、常見的各種控制語句。語句的序列是一條接著一條編寫的一組語句。一個序列中的每一條語句,都必須以相同的縮進開始。本節將會介紹條件式執行和迭代的控制語句。

本書摘自《數據結構(python描述)》

點擊封面查看本書

在計算機科學中,數據結構是一門進階性課程,概念抽象,難度較大。Python語言的語法簡單,交互性強。用Python來講解數據結構等主題,比C語言等實現起來更為容易,更為清晰。 本書第1章簡單介紹了Python語言的基礎知識和特性。第2章到第4章對抽象數據類型、數據結構、復雜度分析、數組和線性鏈表結構進行了詳細介紹,第5章和第6章重點介紹了面向對象設計的相關知識、第5章包括接口和實現之間的重點差異、多態以及信息隱藏等內容,第6章主要講解繼承的相關知識,第7章到第9章以棧、隊列和列表為代表,介紹了線性集合的相關知識。第10章介紹了各種樹結構,第11章講解了集和字典的相關內容,第12章介紹了圖和圖處理算法。每章最后,還給出了復習題和案例學習,幫助讀者鞏固和思考。返回搜狐,查看更多

責任編輯:

總結

以上是生活随笔為你收集整理的python的类程序的结构_Python程序员学习路径之数据结构篇的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。