Python入門學習過程(47)

今天學了個知識點:1.如何編寫注釋,該編寫什么樣的注釋。2.python之禪。3.列表是什么。4.訪問列表元素。5.索引從0而不是1開始。6.使用列表中的各個值。

python大大的圖

圖片發自簡書App

我的圖

圖片發自簡書App

1.如何編寫注釋,該編寫怎樣的注釋。

在python中,注釋用(#)標識,井號后面的內容都會被python解釋器忽略。這里有兩個問題:(1)# -*- coding: utf-8 -*-為什么會起作用。(2)真的是所有的井號都會被忽略嗎,有沒有特例。

(1)我們都知道# -*- coding: utf-8 -*-是聲明文件編碼的注釋,它必須要放在第一行或者第二行,有了這一句話我們才能在里面寫中文。否則python會默認使用ASCII編碼,寫中文時會報錯。其實不僅是允許寫中文,要寫其他的語言也是可以的,這一句話讓python容納多種字符。這一句話是有作用的,事實上python任然會忽略這句代碼,但是它卻可以作為“黑客”或者解決問題的方法來指定文件的格式。

(2)哈哈,如果井號在單引號或者雙引號里面當然就直接輸出了呀。一般單引號或者雙引號里面的句子不長,我們要寫注釋的話也會寫在它們的后面。但是在三引號里一般是用作注釋的,三引號表示換行,里面會有很多內容,會使用井號來注釋,而且井號里面的注釋內容會被直接輸出。而且由于三引號具有換行的特性,它自己可以變成注釋,只要你不把它輸出。不知道大家是否還記得這個圖

圖片發自簡書App

編寫注釋的主要目的是闡述代碼要做什么,以及是如何做的。清晰簡潔的注釋便于自己檢查代碼,也便于別人讀懂你的代碼。

2.python之禪

只需在解釋器中執行命令import this,python就會把編碼的一系列原則告訴我們。

Beautiful is better than ugly.優美勝于丑陋(Python 以編寫優美的代碼為目標)

Explicit is better than implicit.明了勝于晦澀(優美的代碼應當是明了的,命名規范,風格相似)

Simple is better than complex.簡潔勝于復雜(優美的代碼應當是簡潔的,不要有復雜的內部實現

Complex is better than complicated.復雜勝于凌亂(如果復雜不可避免,那代碼間也不能有難懂的關系,要保持接口簡潔)

Flat is better than nested.扁平勝于嵌套(優美的代碼應當是扁平的,不能有太多的嵌套)

Sparse is better than dense.間隔勝于緊湊(優美的代碼有適當的間隔,不要奢望一行代碼解決問題)

Readability counts.可讀性很重要(優美的代碼是可讀的)

Special cases aren't special enough to break the rules.Although practicality beats purity.即便假借特例的實用性之名,也不可違背這些規則(這些規則至高無上)

Errors should never pass silently.Unless explicitly silenced.不要包容所有錯誤,除非你確定需要這樣做(精準地捕獲異常,不寫 except:pass 風格的代碼)

In the face of ambiguity, refuse the temptation to guess.當存在多種可能,不要嘗試去猜測

There should be one-- and preferably only one --obvious way to do it.而是盡量找一種,最好是唯一一種明顯的解決方案(如果不確定,就用窮舉法)

Although that way may not be obvious at first unless you're Dutch.雖然這并不容易,因為你不是 Python 之父(這里的 Dutch 是指 Guido )

Now is better than never.Although never is often better than *right* now.做也許好過不做,但不假思索就動手還不如不做(動手之前要細思量)。你可以將余生都用來學習python和編程的紛繁難懂之處,但這樣你什么項目都完不成。不要企圖編寫完美無缺的代碼;先編寫行之有效的代碼,再決定是對其做進一步改進還是轉而去編寫新代碼。

If the implementation is hard to explain, it's a bad idea.If the implementation is easy to explain, it may be a good idea.如果你無法向人描述你的方案,那肯定不是一個好方案;反之亦然(方案測評標準)

Namespaces are one honking great idea -- let's do more of those!命名空間是一種絕妙的理念,我們應當多加利用(倡導與號召)

3.列表是什么

列表由一系列按特定順序排列的元素組成。列表中可以加入任何元素,其中的元素之間也可以沒有任何關系。鑒于列表通常包含多個元素,給列表指定一個表示復數的名稱(如letters、digits或names)是個不錯的主意。在python中,用方括號([ ])來表示列表,并用逗號來分隔其中的元素。

當然我們也可以不直接把一個完整的列表寫出來。我們可以定義一個空列表,再一點一點的往里面加元素(用列表名.append()),最后打印列表時的結果是一樣的

圖片發自簡書App
圖片發自簡書App

4.訪問列表元素

列表是有序集合,因此要訪問列表的任何元素,只需將該元素的位置或索引告訴python即可。要訪問列表元素,可指出列表的名稱,再指出元素的索引,并將其放在方括號內。從列表bicycles中提取第一款自行車print(bicycles[0]),當請求獲取列表元素時,python只返回該元素,而不包括方括號和引號,非常簡潔。當然我們也可以對輸出的內容規范其格式。還記得我們在第二章學了三種修改字符串大小寫的方法,分別是:print(bicycles[0].title()),print(bicycles[0].upper())和print(bicycles[0].lower())。

圖片發自簡書App
圖片發自簡書App

我們需要注意的是這些修改大小寫的方法只能針對列表中的元素,不能針對整個列表。因為列表并沒有這些屬性

圖片發自簡書App
圖片發自簡書App

5.索引從0而不是1開始

在python中,第一個列表元素的索引為0,而不是1。第二個列表元素的索引為1。根據這種簡單的計數方式,要訪問列表的任何元素,都可將其位置減1,并將結果作為索引。python為訪問最后一個列表元素提供了一種特殊語法。通過講索引指定為-1,可讓python返回最后一個列表元素。這種語法很有用,因為你經常需要在不知道列表長度的情況下訪問最后的元素。這種約定也適用于其他負數索引,例如,索引-2返回倒數第二個列表元素,索引-3返回第三個列表元素,以此類推。如果我現在想返回列表的倒數第二個元素,我可以有如下兩種寫索引的方式

圖片發自簡書App
圖片發自簡書App

最終它們的結果都是

圖片發自簡書App

如果我現在想返回最后兩個列表元素,我可以有兩種寫索引的方式

圖片發自簡書App
圖片發自簡書App

最終它們的結果都是

圖片發自簡書App

6.使用列表中的各個值

對于理解for循環里的內容,我們需要有一點補充知識。函數len()用于返回字符串、列表、字典、元組等長度。函數range()返回一個列表,列表里寫的是各個元素的索引。

圖片發自簡書App
圖片發自簡書App

這個for循環說的是,我們循環列表中每個元素的索引(range(len(bicycles))),打印出這個元素(bicycles[i])和雙引號內的=>以及這個元素對應的索引(i)

for循環的第二種寫法我嘗試了用列表去寫,我想的是原來我們的i代表的是數字,現在我們的i代表列表里的元素。我們最后打印的結果只要保證=>的左邊是元素,右邊是數字就好了。但是這么寫右邊的數字如果不寫循環是沒有辦法單個輸出的。

圖片發自簡書App

于是我參考了Candice Hu同學的建議,寫了一個字典,用for循環對字典里的value和key進行輸出

圖片發自簡書App
圖片發自簡書App

可像使用其他變量一樣使用列表中的各個值。例如,你可以使用拼接根據列表中的值來創建消息。

圖片發自簡書App

最后兩行代碼嘗試從列表中提取第一款自行車,并使用這個值來創建一條消息。我們使用bicycles[0]的值生成了一個句子,并將其存儲在變量message中,輸出是一個簡單的句子,其中包含列表中的第一款自行車

圖片發自簡書App

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 228,119評論 6 531
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 98,382評論 3 415
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事?!?“怎么了?”我有些...
    開封第一講書人閱讀 176,038評論 0 373
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 62,853評論 1 309
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 71,616評論 6 408
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 55,112評論 1 323
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,192評論 3 441
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 42,355評論 0 288
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 48,869評論 1 334
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 40,727評論 3 354
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 42,928評論 1 369
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,467評論 5 358
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,165評論 3 347
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 34,570評論 0 26
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 35,813評論 1 282
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 51,585評論 3 390
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 47,892評論 2 372

推薦閱讀更多精彩內容

  • http://python.jobbole.com/85231/ 關于專業技能寫完項目接著寫寫一名3年工作經驗的J...
    燕京博士閱讀 7,602評論 1 118
  • 文/Bruce.Liu1 1.Python前世今生 1.1.Python歷史 Python的創始人: Guido ...
    BruceLiu1閱讀 11,847評論 3 119
  • 一 Python彩蛋import this Python有個彩蛋,比如在交互模式下輸入import this,便會...
    o舞夜醉貓_閱讀 550評論 1 0
  • 白蓮花/翟德生 潔白的白蓮花 靜靜地盛開在水中央 微風飄來 淡淡的荷香 沒有蜻蜓來點水 只有紅魚戲荷塘 何妨 閑云...
    翟德生閱讀 427評論 6 30
  • 《溫暖在心上》 ——農村攻堅脫貧之歌 作詞:盧木鳥 作曲:姜 山 演唱:涓 子 編曲:姜 山 混編:阿 影 曲風...
    華狐發布閱讀 433評論 0 0