摘要:你好,特別注意定義編碼格式的這一行代碼必須放在第一行或者第二行,一般如果第一行是提示位置的代碼,那么定義編碼格式的這一行就必須放在第二行,否則依然會(huì)提示錯(cuò)誤。基本功能是進(jìn)行成員關(guān)系測(cè)試和刪除重復(fù)元素。
一、Hello,Python!
試水 test.py
print "你好,Python!" #python 2.x python ("你好,Python!") #python 3.x
很不幸,第一個(gè)test.py就遇到了字符錯(cuò)誤!
nodedeMacBook-Pro:pytest node$ python ./test.py File "./test.py", line 1 SyntaxError: Non-ASCII character "xef" in file ./test.py on line 1, but no encoding declared; see http://python.org/dev/peps/pep-0263/ for details
解決方案:在以后的每一個(gè)需要顯示漢字的python文件中, 可以采用如下方法在 #!/usr/bin/python的下一行加上一句話來(lái)定義編碼格式,以u(píng)tf-8編碼為例。
#!/usr/bin/python #coding:utf-8 1??| #-*-coding:utf-8 -*- 2??| #vim: set fileencoding:utf-8 3?? print "你好,Python!"
***特別注意:定義編碼格式的這一行代碼必須放在第一行或者第二行, 一般如果第一行是提示python位置的代碼, 那么定義編碼格式的這一行就必須放在第二行,否則依然會(huì)提示錯(cuò)誤。
轉(zhuǎn)自:https://www.cnblogs.com/Karry...
js代碼塊一般使用{}包裹,Python則是使用縮進(jìn),但是所有代碼塊語(yǔ)句必須包含相同的縮進(jìn)空白數(shù)量
多行語(yǔ)句# 使用斜杠( )將一行的語(yǔ)句分為多行顯示 total = item_one + item_two + item_three # 語(yǔ)句中包含 [], {} 或 () 括號(hào)就不需要使用多行連接符 days = ["Monday", "Tuesday", "Wednesday", "Thursday", "Friday"]引號(hào)
Python 可以使用引號(hào)( " )、雙引號(hào)( " )、三引號(hào)( """ 或 """ ) 來(lái)表示字符串,其中三引號(hào)可以由多行組成,編寫多行文本的快捷語(yǔ)法,常用于文檔字符串(類似js的模板字符串"``"),在文件的特定地點(diǎn),被當(dāng)做注釋。
word = "word" sentence = "這是一個(gè)句子。" paragraph = """這是一個(gè)段落。 包含了多個(gè)語(yǔ)句"""注釋
python中單行注釋采用 # 開頭。多行注釋使用三個(gè)單引號(hào)(""")或三個(gè)雙引號(hào)(""")。
同一行顯示多條語(yǔ)句Python可以在同一行中使用多條語(yǔ)句,語(yǔ)句之間使用分號(hào)(;)分割
import sys; x = "runoob"; sys.stdout.write(x + " ")輸出
print 默認(rèn)輸出是換行的,如果要實(shí)現(xiàn)不換行需要在變量末尾加上逗號(hào) ,
#!/usr/bin/python # -*- coding: UTF-8 -*- x="a" y="b" # 換行輸出 print x print y print "---------" # 不換行輸出 print x, print y, # 不換行輸出 print x,y
結(jié)果
a b --------- a b a b多個(gè)語(yǔ)句構(gòu)成代碼組
縮進(jìn)相同的一組語(yǔ)句構(gòu)成一個(gè)代碼塊,我們稱之代碼組。
import 與 from...import類似 js 的import
# python import sys #導(dǎo)入 sys 模塊 from sys import argv,path #導(dǎo)入 sys 模塊的 argv,path 成員 from sys import #導(dǎo)入 sys 模塊的所有成員 # js import sys from sys import sys as _sys from sys import { argv,path } from sys三、變量類型 變量聲明和賦值
Python 中的變量賦值不需要類型聲明,但是必須先賦值
每個(gè)變量在內(nèi)存中創(chuàng)建,都包括變量的標(biāo)識(shí),名稱和數(shù)據(jù)這些信息。
每個(gè)變量在使用前都必須賦值,變量賦值以后該變量才會(huì)被創(chuàng)建。
等號(hào)(=)用來(lái)給變量賦值。
等號(hào)(=)運(yùn)算符左邊是一個(gè)變量名,等號(hào)(=)運(yùn)算符右邊是存儲(chǔ)在變量中的值。
counter = 100 # 賦值整型變量 miles = 1000.0 # 浮點(diǎn)型 name = "John" # 字符串
多個(gè)變量賦值
# Python允許你同時(shí)為多個(gè)變量賦值 a = b = c = 1 # 也可以為多個(gè)對(duì)象指定多個(gè)變量 a, b, c = 1, 2, "john"標(biāo)準(zhǔn)數(shù)據(jù)類型
Python2.x有五個(gè)標(biāo)準(zhǔn)的數(shù)據(jù)類型,Python3.x新增一個(gè)數(shù)據(jù)類型:
Numbers(數(shù)字)數(shù)字?jǐn)?shù)據(jù)類型用于存儲(chǔ)數(shù)值。Python支持四種不同的數(shù)字類型:int(有符號(hào)整型)、long(長(zhǎng)整型[也可以代表八進(jìn)制和十六進(jìn)制],long 類型只存在于 Python2.X 版本中,在 2.2 以后的版本中,int 類型數(shù)據(jù)溢出后會(huì)自動(dòng)轉(zhuǎn)為long類型。在 Python3.X 版本中 long 類型被移除,使用 int 替代)、float(浮點(diǎn)型)、complex(復(fù)數(shù))
創(chuàng)建Number對(duì)象var1 = 1;var2 = 10
通過(guò)使用del語(yǔ)句刪除單個(gè)或多個(gè)對(duì)象的引用del var; del var_a, var_b
數(shù)值的除法包含兩個(gè)運(yùn)算符:/ 返回一個(gè)浮點(diǎn)數(shù),// 返回一個(gè)整數(shù) 10 // 3結(jié)果為 3
在混合計(jì)算時(shí),Python會(huì)把整型轉(zhuǎn)換成為浮點(diǎn)數(shù) 18 / 6 +2結(jié)果為 5.0
String(字符串),字符串或串(String)是由數(shù)字、字母、下劃線組成的一串字符
從字符串中獲取一段子字符串的話,可以使用 [頭下標(biāo):尾下標(biāo)] 來(lái)截取相應(yīng)的字符串,其中下標(biāo)是從 0 開始算起,可以是正數(shù)或負(fù)數(shù),下標(biāo)可以為空表示取到頭或尾。
str = "Hello World!" print str # 輸出完整字符串 print str[0] # 輸出字符串中的第一個(gè)字符 print str[2:5] # 輸出字符串中第三個(gè)至第六個(gè)之間的字符串 print str[2:] # 輸出從第三個(gè)字符開始的字符串 print str * 2 # 輸出字符串兩次 print str + "TEST" # 輸出連接的字符串result:
Hello World! H llo llo World! Hello World!Hello World! Hello World!TESTPython 列表截取可以接收第三個(gè)參數(shù),參數(shù)作用是截取的步長(zhǎng)
>>> str = "abcdefg" >>> str[1:4:2] "bd" >>> str[1:4:3] "b" >>> str[1:4:1] "bcd" >>> str[1:6:2] "bdf" >>> str[1:6:1] "bcdef"綜上述實(shí)驗(yàn),我認(rèn)為這樣理解比較合適,第二參數(shù)默認(rèn)為字符串的長(zhǎng)度-1,作用為規(guī)定字符串截取的截止位置;第三個(gè)參數(shù)默認(rèn)為1,作用為跳過(guò)n-1個(gè)字符,n-1為0即參數(shù)為1時(shí)步長(zhǎng)為0
List(列表) ,列表用 [ ] 標(biāo)識(shí),是 python 最通用的復(fù)合數(shù)據(jù)類型(其實(shí)就類似于其他語(yǔ)言的數(shù)組)
列表中值的切割也可以用到變量 [頭下標(biāo):尾下標(biāo)] ,就可以截取相應(yīng)的列表,從左到右索引默認(rèn) 0 開始,從右到左索引默認(rèn) -1 開始,下標(biāo)可以為空表示取到頭或尾。
list = [ "runoob", 786 , 2.23, "john", 70.2 ] tinylist = [123, "john"] print list # 輸出完整列表 print list[0] # 輸出列表的第一個(gè)元素 print list[1:3] # 輸出第二個(gè)至第三個(gè)元素 print list[2:] # 輸出從第三個(gè)開始至列表末尾的所有元素 print tinylist * 2 # 輸出列表兩次 print list + tinylist # 打印組合的列表result:
["runoob", 786, 2.23, "john", 70.2] runoob [786, 2.23] [2.23, "john", 70.2] [123, "john", 123, "john"] ["runoob", 786, 2.23, "john", 70.2, 123, "john"]
Tuple(元組),元組是另一個(gè)數(shù)據(jù)類型,類似于 List(列表)。元組用 () 標(biāo)識(shí)。內(nèi)部元素用逗號(hào)隔開。但是元組不能二次賦值,相當(dāng)于只讀列表。
tuple = ( "runoob", 786 , 2.23, "john", 70.2 ) tinytuple = (123, "john") print tuple # 輸出完整元組 print tuple[0] # 輸出元組的第一個(gè)元素 print tuple[1:3] # 輸出第二個(gè)至第四個(gè)(不包含)的元素 print tuple[2:] # 輸出從第三個(gè)開始至列表末尾的所有元素 print tinytuple * 2 # 輸出元組兩次 print tuple + tinytuple # 打印組合的元組result:
("runoob", 786, 2.23, "john", 70.2) runoob (786, 2.23) (2.23, "john", 70.2) (123, "john", 123, "john") ("runoob", 786, 2.23, "john", 70.2, 123, "john") # 注意元祖不可以修改 tuple = ( "runoob", 786 , 2.23, "john", 70.2 ) list = [ "runoob", 786 , 2.23, "john", 70.2 ] tuple[2] = 1000 # 元組中是非法應(yīng)用 list[2] = 1000 # 列表中是合法應(yīng)用
Dictionary(字典),字典(dictionary)是除列表以外python之中最靈活的內(nèi)置數(shù)據(jù)結(jié)構(gòu)類型。列表是有序的對(duì)象集合,字典是無(wú)序的對(duì)象集合。兩者之間的區(qū)別在于:字典當(dāng)中的元素是通過(guò)鍵來(lái)存取的,而不是通過(guò)偏移存取。字典用"{ }"標(biāo)識(shí)。字典由索引(key)和它對(duì)應(yīng)的值value組成。(說(shuō)白了列表是數(shù)組,字典是對(duì)象)
dict = {} dict["one"] = "This is one" dict[2] = "This is two" tinydict = {"name": "john","code":6734, "dept": "sales"} print dict["one"] # 輸出鍵為"one" 的值 print dict[2] # 輸出鍵為 2 的值 print tinydict # 輸出完整的字典 print tinydict.keys() # 輸出所有鍵 print tinydict.values() # 輸出所有值result:
This is one This is two {"dept": "sales", "code": 6734, "name": "john"} ["dept", "code", "name"] ["sales", 6734, "john"]
Set(集合,Python3.x新增)集合(set)是由一個(gè)或數(shù)個(gè)形態(tài)各異的大小整體組成的,構(gòu)成集合的事物或?qū)ο蠓Q作元素或是成員?;竟δ苁沁M(jìn)行成員關(guān)系測(cè)試和刪除重復(fù)元素??梢允褂么罄ㄌ?hào) { } 或者 set() 函數(shù)創(chuàng)建集合,注意:創(chuàng)建一個(gè)空集合必須用 set() 而不是 { },因?yàn)?{ } 是用來(lái)創(chuàng)建一個(gè)空字典。
數(shù)據(jù)類型轉(zhuǎn)換創(chuàng)建格式
# 第一種方式 parame = {value01,value02,...} parame = {} # 這種方式創(chuàng)建一個(gè)空字典而不是空集合 # 第二種方式 parame = set(value) parame = set() # 使用這種方式創(chuàng)建一個(gè)空集合實(shí)例
>>basket = {"apple", "orange", "apple", "pear", "orange", "banana"} >> print(basket) # 這里演示的是去重功能 {"orange", "banana", "pear", "apple"} >> "orange" in basket # 快速判斷元素是否在集合內(nèi) True >> "crabgrass" in basket False >> # 下面展示集合的基本操作 ··· >> student = {"Jackey", "Rose", "Jerrey", "Hans", "Tom"} >> student.add("Jack") # 添加(單個(gè))元素,add >> student {"Jackey", "Rose", "Jerrey", "Hans", "Jack", "Tom"} >> student.update({"Lily","Jams"}) # 添加(多個(gè))元素,update >> student {"Jams", "Jackey", "Rose", "Jerrey", "Hans", "Lily", "Jack", "Tom"} >> student.remove("Lily") # 移除(單個(gè))元素,如果元素不存在,則會(huì)發(fā)生錯(cuò)誤 {"Jams", "Jackey", "Rose", "Jerrey", "Hans", "Jack", "Tom"} >> student.discard("Tiffny") # 移除(單個(gè))元素,如果元素不存在,不會(huì)發(fā)生錯(cuò)誤 >> student {"Jams", "Jackey", "Rose", "Jerrey", "Hans", "Jack", "Tom"} >> # 計(jì)算集合的個(gè)數(shù) >> len(student) 7 >> # 判斷元素是否在集合中存在 >> "Jackey" in student True >> "Nancy" in student False >> # 下面展示兩個(gè)集合間的運(yùn)算. ... >> a = set("abracadabra") >> b = set("alacazam") >> a {"a", "r", "b", "c", "d"} >> a - b # 集合a中包含而集合b中不包含的元素 {"r", "d", "b"} >> a | b # 集合a或b中包含的所有元素 {"a", "c", "r", "d", "b", "m", "z", "l"} >> a & b # 集合a和b中都包含了的元素 {"a", "c"} >> a ^ b # 不同時(shí)包含于a和b的元素 {"r", "d", "b", "m", "z", "l"}
int(x [,base]),將x轉(zhuǎn)換為一個(gè)整數(shù)
long(x [,base] ),將x轉(zhuǎn)換為一個(gè)長(zhǎng)整數(shù)
float(x),將x轉(zhuǎn)換到一個(gè)浮點(diǎn)數(shù)
complex(real [,imag]),創(chuàng)建一個(gè)復(fù)數(shù)
str(x),將對(duì)象 x 轉(zhuǎn)換為字符串
repr(x),將對(duì)象 x 轉(zhuǎn)換為表達(dá)式字符串
eval(str),用來(lái)計(jì)算在字符串中的有效Python表達(dá)式,并返回一個(gè)對(duì)象
tuple(s),將序列 s 轉(zhuǎn)換為一個(gè)元組
list(s),將序列 s 轉(zhuǎn)換為一個(gè)列表
set(s),轉(zhuǎn)換為可變集合
dict(d),創(chuàng)建一個(gè)字典。d 必須是一個(gè)序列 (key,value)元組。
frozenset(s),轉(zhuǎn)換為不可變集合
chr(x),將一個(gè)整數(shù)轉(zhuǎn)換為一個(gè)字符
unichr(x),將一個(gè)整數(shù)轉(zhuǎn)換為Unicode字符
ord(x),將一個(gè)字符轉(zhuǎn)換為它的整數(shù)值
hex(x),將一個(gè)整數(shù)轉(zhuǎn)換為一個(gè)十六進(jìn)制字符串
oct(x),將一個(gè)整數(shù)轉(zhuǎn)換為一個(gè)八進(jìn)制字符串
if condition_1: statement_block_1 elif condition_2: statement_block_2 else: statement_block_3五、循環(huán)語(yǔ)句 while 循環(huán)
可以使用 else 語(yǔ)句,在 while … else 在條件語(yǔ)句為 false 時(shí)執(zhí)行 else 的語(yǔ)句塊
while 判斷條件: 語(yǔ)句 else: 語(yǔ)句 # 例子 count = 0 while count < 5: print (count, " 小于 5") count = count + 1 else: print (count, " 大于或等于 5")for 語(yǔ)句
for循環(huán)可以遍歷任何序列的項(xiàng)目,如一個(gè)列表或者一個(gè)字符串
forrange(x,y,z)函數(shù)in : else: # 例子 sites = ["Baidu", "Google","Runoob","Taobao"] for site in sites: if site == "Runoob": print("菜鳥教程!") break print("循環(huán)數(shù)據(jù) " + site) else: print("沒(méi)有循環(huán)數(shù)據(jù)!") print("完成循環(huán)!")
如果你需要遍歷數(shù)字序列,可以使用內(nèi)置range()函數(shù)。它會(huì)生成數(shù)列。x為初始值,y為結(jié)束值(可以不填),z為步長(zhǎng)(可以不填),x,y,z均可以為負(fù)數(shù)
>>>for i in range(5,9) : print(i) # return 5 6 7 8 >>> >>>for i in range(0, 10, 3) : print(i) 0 3 6 9 >>>break和continue語(yǔ)句及循環(huán)中的else子句
break 語(yǔ)句可以跳出 for 和 while 的循環(huán)體。如果你從 for 或 while 循環(huán)中終止,任何對(duì)應(yīng)的循環(huán) else 塊將不執(zhí)行;continue語(yǔ)句被用來(lái)告訴Python跳過(guò)當(dāng)前循環(huán)塊中的剩余語(yǔ)句,然后繼續(xù)進(jìn)行下一輪循環(huán);循環(huán)語(yǔ)句可以有 else 子句,它在窮盡列表(以for循環(huán))或條件變?yōu)?false (以while循環(huán))導(dǎo)致循環(huán)終止時(shí)被執(zhí)行,但循環(huán)被break終止時(shí)不執(zhí)行。
pass 語(yǔ)句Python pass是空語(yǔ)句,是為了保持程序結(jié)構(gòu)的完整性。
pass 不做任何事情,一般用做占位語(yǔ)句,如下實(shí)例
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/43903.html
摘要:起博主是電信行業(yè)的碼農(nóng),在工作單位也搞搞單元測(cè)試和了什么。目前對(duì)技術(shù)很感興趣,嘗試新的領(lǐng)域里面也試試看這次要用的方式要實(shí)現(xiàn)一個(gè)簡(jiǎn)單畫圖板功能,支持和。配置文件里面主要就是一個(gè)對(duì)象,根據(jù)注釋提示調(diào)整下即可。 起 博主是電信行業(yè)的碼農(nóng),在工作單位也搞搞單元測(cè)試和TDD了什么。目前對(duì)Web技術(shù)很感興趣,嘗試新的領(lǐng)域里面也試試看TDD. 這次要用TDD的方式要實(shí)現(xiàn)一個(gè)簡(jiǎn)單畫圖板功能,支持C...
摘要:相比較財(cái)報(bào)這個(gè)振奮人心的消息,筆者更關(guān)注聯(lián)想凌拓的成立。目前聯(lián)想凌拓主要面對(duì)的也還只是中國(guó)市場(chǎng),未來(lái)聯(lián)想在全球范圍內(nèi)與的合作空間會(huì)有多大尚未可知。開年以來(lái),聯(lián)想可謂好事不斷,一掃去年被各路媒體口誅筆伐的陰霾。在聯(lián)想集團(tuán)剛剛發(fā)布的2018/19財(cái)年第三季度財(cái)報(bào)中,集團(tuán)營(yíng)業(yè)額增至971億人民幣,稅前利潤(rùn)也達(dá)到24.2億。其中,DCG業(yè)務(wù)(數(shù)據(jù)中心集團(tuán))營(yíng)業(yè)額繼續(xù)保持雙位數(shù)增長(zhǎng),同比增速達(dá)到31%...
摘要:亞馬遜最近成為云原生計(jì)算基金會(huì)的新成員與它對(duì)谷歌啟動(dòng)的這個(gè)容器項(xiàng)目實(shí)際貢獻(xiàn)的代碼不相稱。盡管早早進(jìn)入了市場(chǎng),儼然成了容器的代名詞,但谷歌的積聚的勢(shì)頭還是最猛,所有企業(yè)中將近表示,自己的容器編排戰(zhàn)略包括。 作者簡(jiǎn)介:Matt Asay是IT外媒《InfoWorld》的長(zhǎng)篇撰稿人,以前是名知識(shí)產(chǎn)權(quán)律師,目前是Adobe公司的移動(dòng)副總裁。本文表達(dá)的觀點(diǎn)僅代表其本人,而不代表其雇主。亞馬遜最近成為云...
閱讀 3215·2021-11-10 11:36
閱讀 3165·2021-11-02 14:39
閱讀 1745·2021-09-26 10:11
閱讀 5001·2021-09-22 15:57
閱讀 1703·2021-09-09 11:36
閱讀 2062·2019-08-30 12:56
閱讀 3504·2019-08-30 11:17
閱讀 1712·2019-08-29 17:17