之所以寫學習筆記,一是可以督促自己堅持學習;二是自己記憶力不好,做了筆記,以後忘記了,方便複習鞏固,所以,此筆記力求簡潔,便於以後速查。三是當作對自己表達能力的一種鍛鍊。
雖然自己目前工作中用到指令碼語言的機會不多,但是了解掌握一本指令碼語言還是很有必要的。
本學習筆記,是基於codecademy的python教程的,可以算是對它的翻譯和摘錄。
python是一門強大的,靈活的程式語言,可以用於網頁開發,桌面圖形使用者介面,建立遊戲等。python是高階的,解釋性的,物件導向的語言。
第一課 python 語法
1.1 變數宣告,非常簡單,就像自然語言一樣。如 a = 5,宣告乙個整形變數a,它的值是5。
1.2 資料型別:integer整型,floats浮點型,boolean布林型(true/false,python是大小寫敏感的),strings字串。
1.3 語句:python中語句是用空白符分隔的。對於函式,需要用4個空格來縮排**。
1.4 單行注釋: #開頭的行為注釋,會被直譯器忽略,不會影響**的執行。
1.5 多行注釋:當然可以每行都以#開頭來達到此目的,更簡便的方式是使用兩隊「三個雙引號」。例如: """you can write this in multiple lines""".
1.6 算術運算子:六個算術運算子, + - * / **指數運算子 %模運算子
第二課 字串 strings
2.1 字串是另乙個有用的資料型別。字串常量是指用單引號('')或者雙引號("")括起來的內容。
2.2 轉義字元: 反斜槓\(backslash) 如 \' , "i\'m a programmer\n".
2.3 利用下標訪問每個字元如下圖,"python"包含六個字元,下標從0開始,"python"[1] 得到的是 'y'
+---+---+---+---+---+---+
| p | y | t | h | o | n |
+---+---+---+---+---+---+
0 1 2 3 4 5
2.4 可以對字串操作的方法
len() 得到字串長度 , 如len("python")
str() 將內容轉換成string, 如str(3.14)
lower() upper() 將字串中所有字元變成小寫/大寫字元,如 "python".lower() "python".upper()
上面四個方法的操作方式不太一樣,因為lower()和upper()是string型別特有的方法,只能用於string型別,所以需要用.操作符;而len()和str()可以用於很多物件,不止string。
2.5 控制台輸出
print "string to console" 可以將字串顯示到控制台。
要列印多個字串可以用"+"號直接連線字串,對於字串與非字串要想連線起來,就需要將非字串型別顯式轉換為字串,這裡要用到前面提到的str()方法。
字串一旦建立號,它的內容是不能改變的,如果想輸出變化的內容怎麼辦呢?字串格式化(string formatting)能夠滿足這個需求。
字串格式化使用%符號,如 print "my name is %s, i live in %s" % (my_name, my_city)
需要使用者輸入內容時,用variable_name = raw_input('prompt')
判斷乙個string是否只包含字母,用isalpha()
第三課 條件判斷和流程控制
3.1 比較運算子1. equal to (==) 2. not equal to (!=) 3. less than (<) 4. less than or equal to (<=) 5. greater than (>) 6. greater than or equal to (>=)
3.2 邏輯運算子1. and 2. or 3.not 優先順序 not > and > or
3.3 條件語句需要注意的是和函式體的縮排一樣,這裡的條件語句體要四個空格縮排
if expression:do something
elif other expression:
do something
else:
do something
第四課 函式
函式是程式中一段用來執行某項特定任務的可以重複使用的**
4.1 函式的好處
1.不同的函式處理不同的任務,可以更好地組織**,如果**中有錯誤,易於找到和修復bug。
2.減少**的冗餘,增加復用性。
3.物件(objects)可以有自己的函式/方法。
4.d.r.y(dont repeat yourself) 幫助我們更容易地避免重複自己。
5.遞迴是乙個強大的工具,它允許多次執行同一段**甚至是呼叫自己。有些程式設計問題必須用遞迴才能解決。函式使實現遞迴成為可能。
4.2 函式的構成
函式有三部分構成
1.函式頭:包括 def關鍵字,函式名字,引數列表和冒號。
2.可選的文件字串(docstring):有三重引號包括,可以有多行的用來描述函式功能的注釋。
3.函式體:函式執行的**塊。像if/elif/else語句一樣,函式體需要四個空格縮排。
下面是乙個簡單函式的例子:
def spam():
"""print eggs! to console"""
print "eggs!"
4.3 變長引數(splat)
當不知道使用者將傳給函式多少個引數的時候,要用到變長引數,語法就是在引數名字前加乙個*號。
4.4 模組(module)
乙個模組是乙個包含你可以使用的變數和函式定義的檔案。當需要用到某個模組中的變數或者函式時,就需要import相應的模組 。
1.普通匯入:如import module1,這樣當使用module1中的函式func時需要使用點號分隔符,如module1.func。
2.函式匯入:允許只匯入某個模組中的某些特定的變數或者函式。語法如下:from module import function
3.萬能匯入:語法 from module import *
4.5 內建函式
1.max():引數可以是任意個數的,返回這些引數中的最大值。
2.min():返回一系列引數中的最小值。
3.abs():接收乙個引數,返回它的絕對值。
4.type():返回引數的型別資訊。
如:print type(42) ==>
print type(4.2) ==>
print type('spam') ==>
print type() ==>
print type((1,2)) ==>
第五課 列表和字典
列表相關的函式:
index()my_list.index("str") 返回"str"出現的第乙個下標
insert()my_list.insert(3, "str") 在my_list列表第3個下標位置插入"str",將之前下標位置為3及之後的元素依次後移一位。
remove()my_list.remove(value) 將移除my_list第乙個出現的value。
如果想對列表中的每乙個元素做一些操作,可以利用for迴圈:
for variable in list_name:(注意此處的":"號)
#do something
字典和列表類似,不過訪問字典中的值是通過查詢鍵(key)而非下標(index)。鍵(key)可以是字串或者數字。和列表一樣,字典也是可變的,這意味著字典在建立之後還是可以被修改的。這樣的優點之一是在列表建立之後,我們可以用如下形式向字典中新增鍵/值對: dict_name[new_key] = new_value
空字典定義: empty_dicgt ={}
從字典中移除乙個專案: deldict_name[key_name]
python教學筆記 python學習筆記(一)
1.eval 函式 eval是單詞evaluate的縮寫,就是 求.的值的意思。eval 函式的作用是把str轉換成list,dict,tuple.li 1 1,2,3 print eval li 1 di 1 print eval di 1 tu 1 2,4,6 print eval tu 1 執...
python學習筆記
coding utf 8 coding utf 8 應該像八股文一樣在每個指令碼的頭部宣告,這是個忠告 為了解決中文相容問題,同時你應該選擇支援 unicode 編碼的編輯器環境,保證在執行指令碼中的每個漢字都是使用 utf 8 編碼過的。cdays 5 exercise 3.py 求0 100之間...
Python 學習筆記
python 學習筆記 def run print running.def execute method method execute run result running.condition false test yes,is true if condition else no,is false ...