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