摘要:中的注釋是以開頭,并且一直延申到該文本結(jié)束為止。例如的長度為使用過大的索引會產(chǎn)生一個錯誤但是在切片中,越界索引會被自動處理中的字符串不能被修改,它們是的。其中最常用的列表,可以通過方括號括起逗號分隔的一組值得到。
在下面的例子中通過提示符(>>>與...)的出現(xiàn)與否來區(qū)分輸入和輸出:如果你想復(fù)現(xiàn)這些例子,當(dāng)提示符出現(xiàn)后,你必須在提示符后鍵入例子中的每一個詞;不以提示符開頭的那些行是解釋器的輸出。之一例子中某行出現(xiàn)第二個提示符意味著你必須鍵入一個空白行;這是用來結(jié)束多行命令的。
這個例子中的許多例子是包含注釋的,甚至交互性命令也有。python中的注釋是以#開頭,并且一直延申到該文本結(jié)束為止。注釋可以出現(xiàn)在一行的開頭或者是空白和代碼的后邊,但是不能出現(xiàn)在字符串中間。字符串中的井號就是井號。應(yīng)因為注釋是用來闡明代碼的,不會被python解釋,所以在鍵入這些例子時候,注釋是可以忽略的。
# this is the first comment spam = 1 # and this is the second comment # ... and now a third text = "# this is not a comment because it is inside quotes."Python最為計算器使用
讓我們嘗試一些簡單的Python命令。啟動解釋器,等待界面中的提示符,>>>
數(shù)字
解釋器就像一個簡單的計算器一樣:你可以在里面輸入表達式然后它會寫出答案。表達式的語法很直接:運算符+、-、*、/的用法和其他大部分語言相同;括號()用來分組。比如:
>>> 2 + 2 4 >>> (50 - 5 * 6) / 4 5.0 >>> 8 / 5 1.6
整數(shù)有int(比如2,4,20)類型,有小數(shù)部分的(比如5.0,1.6)有float類型。
除法運算(/)永遠發(fā)揮浮點數(shù)類型。如果要做floor division得到一個整數(shù)結(jié)果(忽略小數(shù)部分)你可以使用//運算符;如果要計算余數(shù),可以使用%
>>> 17 / 3 5.666666666666667 >>> 17 // 3 5 >>> 17 % 3 2 >>> 5 * 3 + 2 17
在python中可以使用**運算符來計算乘方
>>> 5 ** 2 25 >>> 2 ** 7 128
等號用于給一個變量賦值。然后在下一個交互提示符之前不會有結(jié)果顯示出來:
>>> width = 20 >>> height = 5 * 9 >>> width * height 900
如果一個變量為定義(未賦值),試圖使用它時會向你提示錯誤:
>>> n Traceback (most recent call last): File "", line 1, in NameError: name "n" is not defined
python中提供浮點數(shù)的完整支持:包含多種混合類型運算符數(shù)的運算會把整數(shù)轉(zhuǎn)換為浮點數(shù):
>>>4 * 3.75 - 1 14.0
在交互模式中。上一次打印出來的表達式被賦值給變量_。這意味著當(dāng)你把python用作桌面計算器時候,繼續(xù)計算會相對簡單,比如:
>>> tax = 12.5 / 100 >>> price = 100.50 >>> price * tax 12.5625 >>> price + _ 113.0625 >>> round(_, 2) 113.06
這個變量應(yīng)該被使用者當(dāng)作是只讀類型。不要向它顯式的賦值-你會創(chuàng)建一個名字和它相同的獨立的本地變量,它會使用魔法行為屏蔽內(nèi)部變量。
除了數(shù)字,python也可以操作字符串。字符串有多種形式,可以使用單引號("...."),雙引號("......")都可以獲得同樣的結(jié)果。反斜杠可以用來轉(zhuǎn)義:
>>>"spam eggs" "spam eggs" >>>"doesn"t" "doesn"t" >>> ""Yes," they said." ""Yes," they said." >>> ""Yes," they said." ""Yes," they said."
在交互模式解釋器中,輸出的字符串外面會加引號,特殊字符會使用反斜杠來轉(zhuǎn)義。雖然這有時候看起來會與輸入不一樣(外面所加的引號可能會改變),但是兩個字符串是相同的。如果字符串中有單引號而沒有雙引號,該字符串外將加雙引號來表示,否則就加單引號。print會產(chǎn)生可讀性更強的輸出,即略去兩邊的引號,并且打印出經(jīng)過轉(zhuǎn)義的特殊字符:
>>> ""Isn"t," they said." ""Isn"t," they said." >>> print(""Isn"t," they said.") "Isn"t," they said. >>> s = "First line. Second line." # means newline >>> s # without print(), is included in the output "First line. Second line." >>> print(s) # with print(), produces a new line First line. Second line.
如果你不希望前置了 的字符轉(zhuǎn)義成特殊字符,可以使用原始字符串方式,在引號前添加 r 即可:
>>> print("C:some ame") # here means newline! C:some ame >>> print(r"C:some ame") # note the r before the quote C:some ame
字符串字面值可以跨行連續(xù)輸入。一種方式是用三重引號:"""...""" 或 """..."""。字符串中的回車換行會自動包含到字符串中,如果不想包含,在行尾添加一個 即可。如下例:
print(""" Usage: thingy [OPTIONS] -h Display this usage message -H hostname Hostname to connect to """)
將產(chǎn)生如下輸出(注意最開始的換行沒有包括進來):
Usage: thingy [OPTIONS] -h Display this usage message -H hostname Hostname to connect to
字符串可以用 + 進行連接(粘到一起),也可以用 * 進行重復(fù):
>>>3 * "un" + "ium" "unununium"
相鄰的兩個或者多個字符串字面值(引號引起來的字符串)將會自動連接到一起。
>>>"Py" "thon" Python
把很長的字符串拆開分別輸入的時候尤其有用:
>>> text = ("Put several strings within parentheses " ... "to have them joined together.") >>> text "Put several strings within parentheses to have them joined together."
只能對兩個字面值這樣操作,變量或者表達式不可以:
>>> prefix = "Py" >>> prefix "thon" # can"t concatenate a variable and a string literal File "", line 1 prefix "thon" ^ SyntaxError: invalid syntax >>> ("un" * 3) "ium" File " ", line 1 ("un" * 3) "ium" ^ SyntaxError: invalid syntax
如果你想連接變量,或者連接變量和字面值,可以使用 + 號:
>>> prefix + "thon" "Python"
字符串是可以被索引(下標訪問)的,第一個字符串索引是0,單個字符并沒有特殊的類型,只是一個長度為一的字符串:
>>> word = "Python" >>> word[0] # character in position 0 "P" >>> word[5] # character in position 5 "n"
索引也可以使用負值,這樣會從右邊開始:
>>> word[-1] # last character "n" >>> word[-2] # second-last character "o" >>> word[-6] "P"
注意-0和0是一樣的,所以負數(shù)索引從-1開始。
除了索引,字符串還支持切片。索引可以獲得單個字符,而切片可以獲得子字符串:
>>> word[0:2] # characters from position 0 (included) to 2 (excluded) "Py" >>> word[2:5] # characters from position 2 (included) to 5 (excluded) "tho"
注意切片的開始總是被包括在結(jié)果中,而結(jié)束不被包括。這使得s[:i] + s[i:] = s
>>> word[:2] + word[2:] "Python" >>> word[:4] + word[4:] "Python"
切片的索引有默認值:省略開始索引時默認為0,省略結(jié)束索引時默認到字符串的結(jié)束:
>>> word[:2] # character from the beginning to position 2 (excluded) "Py" >>> word[4:] # characters from position 4 (included) to the end "on" >>> word[-2:] # characters from the second-last (included) to the end "on"
記住切片如何工作的一種方法是將索引視為指向字符之間,第一個字符的左邊緣編號為0.然后,n個字符串的最后一個字符的右邊緣具有索引n,例如:
+---+---+---+---+---+---+ | P | y | t | h | o | n | +---+---+---+---+---+---+ 0 1 2 3 4 5 6 -6 -5 -4 -3 -2 -1
第一行標注了字符串非負的索引位置,第二行標注了對應(yīng)的負索引。那么從i到j(luò)的切片就包括了標有i到j(luò)位置之間的所有字符。
對于非負索引的切片,如果索引不越界,那么得到的切片長度就是起止索引之差。例如:word[1:3]的長度為2.
使用過大的索引會產(chǎn)生一個錯誤
>>> word[42] # the word only has 6 characters Traceback (most recent call last): File "", line 1, in IndexError: string index out of range
但是在切片中,越界索引會被自動處理
>>> word[4:42] "on" >>> word[42:] ""
Python 中的字符串不能被修改,它們是 immutable 的。因此,向字符串的某個索引位置賦值會產(chǎn)生一個錯誤:
>>> word[0] = "J" Traceback (most recent call last): File "", line 1, in TypeError: "str" object does not support item assignment >>> word[2:] = "py" Traceback (most recent call last): File " ", line 1, in TypeError: "str" object does not support item assignment
如果需要一個不同的字符串,應(yīng)當(dāng)新建一個:
>>> "J" + word[1:] "Jython" >>> word[:2] + "py" "Pypy"
內(nèi)建函數(shù) len() 返回一個字符串的長度:
>>> s = "supercalifragilisticexpialidocious" >>> len(s) 34列表
Python 中可以通過組合一些值得到多種 復(fù)合 數(shù)據(jù)類型。其中最常用的 列表 ,可以通過方括號括起、逗號分隔的一組值得到。一個 列表 可以包含不同類型的元素,但通常使用時各個元素類型相同:
>>> squares = [1, 4, 9, 16, 25] >>> squares [1, 4, 9, 16, 25]
像字符串(以及所有其他內(nèi)置序列類型)一樣,列表可以被索引和切片:
>>> squares[0] # indexing returns the item 1 >>> squares[-1] 25 >>> squares[-3:] # slicing returns a new list [9, 16, 25]
所有的切片操作都返回一個新列表,這個新列表包含所需要的元素。就是說,如下的切片會返回列表的一個新的(淺)拷貝:
>>> squares[:] [1, 4, 9, 16, 25]
列表同樣支持拼接操作:
>>> squares + [36, 49, 64, 81, 100] [1, 4, 9, 16, 25, 36, 49, 64, 81, 100]
與 immutable 的字符串不同, 列表是一個 mutable 類型,就是說,它自己的內(nèi)容可以改變:
>>> cubes = [1, 8, 27, 65, 125] # something"s wrong here >>> 4 ** 3 # the cube of 4 is 64, not 65! 64 >>> cubes[3] = 64 # replace the wrong value >>> cubes [1, 8, 27, 64, 125]
你也可以在列表結(jié)尾,通過 append() 方法 添加新元素 (我們會在后面解釋更多關(guān)于方法的內(nèi)容):
>>> cubes.append(216) # add the cube of 6 >>> cubes.append(7 ** 3) # and the cube of 7 >>> cubes [1, 8, 27, 64, 125, 216, 343]
給切片賦值也是可以的,這樣甚至可以改變列表大小,或者把列表整個清空:
>>> letters = ["a", "b", "c", "d", "e", "f", "g"] >>> letters ["a", "b", "c", "d", "e", "f", "g"] >>> # replace some values >>> letters[2:5] = ["C", "D", "E"] >>> letters ["a", "b", "C", "D", "E", "f", "g"] >>> # now remove them >>> letters[2:5] = [] >>> letters ["a", "b", "f", "g"] >>> # clear the list by replacing all the elements with an empty list >>> letters[:] = [] >>> letters []
內(nèi)置函數(shù) len() 也可以作用到列表上:
>>> letters = ["a", "b", "c", "d"] >>> len(letters) 4
也可以嵌套列表 (創(chuàng)建包含其他列表的列表), 比如說:
>>> a = ["a", "b", "c"] >>> n = [1, 2, 3] >>> x = [a, n] >>> x [["a", "b", "c"], [1, 2, 3]] >>> x[0] ["a", "b", "c"] >>> x[0][1] "b"
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/43714.html
摘要:年月宣布支持時間延長到年。更詳細的發(fā)布列表參閱官網(wǎng)的版本號分為三段,形如。其中表示大版本號,一般當(dāng)整體重寫,或出現(xiàn)不向后兼容的改變時,增加表示功能更新,出現(xiàn)新功能時增加表示小的改動如修復(fù)了某個,只要有修改就增加。年公司正式發(fā)布。 < 返回索引頁 Python語言簡介 Python介紹及發(fā)展 介紹 Python 官方網(wǎng)站:https://www.python.org/, 大家可以到此處下...
摘要:詳情怎樣規(guī)避地獄作者先介紹什么是地獄,以及在開發(fā)過程中怎樣去規(guī)避地獄,一時爽性能問題火葬場。詳情其他亮點匯總開發(fā)者大會已于北京時間月日凌晨在美國山景城正式啟幕。 【前端】 1. JavaScript 的新數(shù)據(jù)類型:BigInt BigInt?是 JavaScript 中的一個新的數(shù)字基本(primitive)類型,可以用任意精度表示整數(shù)。使用?BigInt?可以安全地存儲和操作大整數(shù),...
摘要:詳情怎樣規(guī)避地獄作者先介紹什么是地獄,以及在開發(fā)過程中怎樣去規(guī)避地獄,一時爽性能問題火葬場。詳情其他亮點匯總開發(fā)者大會已于北京時間月日凌晨在美國山景城正式啟幕。 【前端】 1. JavaScript 的新數(shù)據(jù)類型:BigInt BigInt?是 JavaScript 中的一個新的數(shù)字基本(primitive)類型,可以用任意精度表示整數(shù)。使用?BigInt?可以安全地存儲和操作大整數(shù),...
摘要:詳情怎樣規(guī)避地獄作者先介紹什么是地獄,以及在開發(fā)過程中怎樣去規(guī)避地獄,一時爽性能問題火葬場。詳情其他亮點匯總開發(fā)者大會已于北京時間月日凌晨在美國山景城正式啟幕。 【前端】 1. JavaScript 的新數(shù)據(jù)類型:BigInt BigInt?是 JavaScript 中的一個新的數(shù)字基本(primitive)類型,可以用任意精度表示整數(shù)。使用?BigInt?可以安全地存儲和操作大整數(shù),...
閱讀 2958·2021-11-08 13:20
閱讀 1031·2021-09-22 15:20
閱讀 660·2019-08-30 15:53
閱讀 1964·2019-08-30 15:43
閱讀 1278·2019-08-29 17:21
閱讀 540·2019-08-29 12:15
閱讀 2375·2019-08-28 17:51
閱讀 3142·2019-08-26 13:26