學習一門技術仍是推薦從官方教程學起,其餘資料做爲輔助html
官網:https://www.python.org/java
python3官方教程:https://docs.python.org/zh-cn/3/tutorial/index.htmlpython
PATH變量增長python安裝目錄,例如C:\Users\Administrator\AppData\Local\Programs\Python\Python37windows
環境變量設置好後執行python進入解釋器,若是打印解釋器版本等信息證實安裝成功數組
解釋器支持交互式的代碼執行,咱們能夠直接在解釋器命令行錄入代碼並執行獲得結果。例如:app
建立test.py文件並錄入如下代碼less
#!/usr/bin/python3 print("Hello, World!")
執行test.py文件輸出執行結果。函數
PyCharm是JetBrains公司旗下的python集成開發工具。java開發時就常用IDEA因此值得信賴。工具
官網地址:https://www.jetbrains.com/pycharm/學習
在官網下載安裝包,目前咱們只要下載免費的社區版便可。
windows環境的安裝沒有什麼特別。在安裝時咱們能夠選擇是否創建快捷方式和菜單項、是否關聯.py文件、是否建立環境變量
添加一個已安裝的編譯器
咱們能夠經過右上角功能區,執行或debug項目
+ - * / | 加減乘除 |
|
// | 除法取整 | 23//8 = 2 |
% | 除法取餘 | 23%8 = 7 |
** | 冪值計算 | 5**3 = 125 |
j | 複數虛部表示 | 3+5j |
= | 變量賦值符號 |
<,>,== | 小於,大於,等於 | |
<=,>=,!= | 小於等於,大於等於,不等於 | |
in | 包含 | input = 'yes' if input in ('y','ye','yes'): print('input suceess') else: print('input error') |
‘...’或「...」 | 表示一個字符串 | |
\ | 轉義字符。如\n表明回車 | |
r"..." | 字符串前加r表示忽略轉義字符 | print(r"c:\name") |
"""...""" 或'''...''' |
三引號表示一個段落 | ''' produces the following output ''' |
+ | 字符串鏈接符。 | |
相鄰字符串 | 多個相鄰字符串會自動鏈接。可是這種方式只支持吃字符串變量和表達式要使用+ | print("I ""like ""python")輸出I like python |
* | 字符串重複符 | print("python"*3)輸出pythonpythonpython |
字符數組 | 字符串也是一個字符列表,咱們能夠經過下標獲取某個字符 | string = "Python" print(string[2]) # 輸出 t # 從右面取值 print(string[-2]) # 輸出 o # 取中間一部分(前包後不包) print(string[1:3]) # 輸出 yt # 從頭開始 print(string[:3]) # 輸出 Pyt # 一直到結束 print(string[-3:]) # 輸出 hon |
len() |
計算字符串長度 |
len( "Python")等於6 |
[... , ...] | 列表是用中括號括起,用逗號分割的一組數據。 一般狀況列表中的數據類型都是一致的,可是不一致也是容許的。 |
[1, 2.4, '32131', [1, 2, 3]] |
列表索引 | 列表可使用[標號]進行索引。 | num = [4,10,13,14,23,26,10] # 從左取值 print(num[2]) # 輸出 13 # 從右取值 print(num[-2]) # 輸出 26 # 取中間一部分(前包後不包) print(num[1:3]) # 輸出 [10, 13] # 從頭開始 print(num[:3]) # 輸出 [4, 10, 13] # 一直到結束 print(num[-3:]) # 輸出 [23, 26, 10] |
+ | 列表連接符 | num = num + [66,88,99] print(num) # 輸出 [4, 10, 13, 14, 23, 26, 10, 66, 88, 99] |
append(...) |
添加新內容 | num.append(101) print(num) # 輸出 [4, 10, 13, 14, 23, 26, 10, 101] |
= | 賦值,能夠經過賦值改變列表內容。 | letters = ['a', 'b', 'c', 'd', 'e', 'f', 'g'] letters[2:5] = ['C', 'D', 'E'] print(letters) # 輸出 ['a', 'b', 'C', 'D', 'E', 'f', 'g'] letters[2:5] = [] print(letters) # 輸出 ['a', 'b', 'f', 'g'] letters[:] = [] print(letters) # 輸出 [] |
len() |
計算列表長度 | |
列表副本 | 列表賦值時傳遞的是列表引用,如word1=word在word1作出變化時也會影響到word。 若是但願複製一個副本可使用word1=word[:] |
word1 = word # 複製引用 word1 = word[:] # 複製副本 word1 = word[2:5] # 複製部分副本 |
{'a':1,'b':2} | 字典相似於java的map用於存儲鍵值對 | |
縮進 | 標識代碼模塊至關於java的{},同一層 級的代碼縮進數量必須一致。 | if 1==1: print("true") else: print("false") |
\ | Python語句中通常以新行做爲語句的結束符,拼接多行語句時使用多行連接符。 | total = item_one + \ item_two + \ item_three |
# | 註釋。python沒有多行註釋 | |
None | 空置,至關於java的null。 |
empty = None # 空置 number = 100 # 數字 string = "python" # 字符串 list = [1,3.14,"python"] # 列表 tuple = (1,3.14,"python") # 元組 dictionary = {'a':1,'b':3.14,'c':"python"} # 字典
a, b = 0, 1
a, b = b, a+b # 先計算 b 再計算 a+b 而後將b賦值給a將a+b賦值給b #至關於 temp_a = b temp_b = a+b a = temp_a b = temp_b
判斷語句由if、elif、else組成
x = 0 if x == 0: print("X is equal to zero") elif x < 0: print("X is less than zero") elif x > 0: print("X is greater than zero") else: print("Unable to determine")
i = 0 while i<10: print(i, end=(',')) i+=1 else: print("End of the cycle") # 輸出結果:0,1,2,3,4,5,6,7,8,9,End of the cycle
while的else表示,在循環條件結果爲false時執行。
for常被用來遍歷一個列表。(字符串也是一個字符列表)
# 循環輸出列表 word = ["January","February","March","April","May","June","July","August","September","October","November","December"] for w in word: print(w,len(w),end=(',')) # 輸出結果:January 7,February 8,March 5,April 5,May 3,June 4,July 4,August 6,September 9,October 7,November 8,December 8,
# 循環輸出字符串 string = "Python" for s in string: print(s,end=(',')) # 輸出結果:P,y,t,h,o,n,
# 循環指定次數 for i in range(10): print(i,end=(',')) # 輸出結果:0,1,2,3,4,5,6,7,8,9,
range()函數用於生成不可變的數字序列(並非列表),一般用於循環for循環中的特定次數。
# else字句 for i in range(10): print(i, end=(',')) else: print("End of the cycle") # 輸出結果:0,1,2,3,4,5,6,7,8,9,End of the cycle
for循環的else表明循環遍歷完成時執行此內容。
# 跳出循環 for i in range(10): if i==5: break print(i,end=(',')) # 輸出結果:0,1,2,3,4,
# 結束本次循環 for i in range(10): if i == 5: continue print(i, end=(',')) # 輸出結果:0,1,2,3,4,6,7,8,9,
pass語句什麼也不作,用於佔位。
使用def關鍵字定義函數
def output(s): ''' 將對象輸出到控制檯 :param s: 輸出對象 :return: 無返回值 ''' print(s) output("I like python")
函數的參數傳遞與java類似,傳遞的是對象的引用。
函數的第一句三引號部分爲文檔字符串(DocStrings),添加文檔字符串是一個良好的習慣。文檔字符串至關於java的方法註釋,方便往後維護。
# 重命名函數 op = output op("I like python")
# 函數的返回值 def sum(a,b): ''' 求兩個數的和 :param a: 數a :param b: 數b :return: a+b的和 ''' return a+b print(sum(666,888))
return返回函數的返回值。沒有return的函數返回None。
定義參數時能夠設置默認值,無默認值的參數調用時是必輸的,有默認值的參數調用時能夠不輸入使用默認值。
# 參數默認值 def sum(a=1,b=2): ''' 求兩個數的和 :param a: 數a :param b: 數b :return: a+b的和 ''' return a+b print(sum(666,888)) # 結果:1554 print(sum(666)) # 結果:668 print(sum()) # 結果:3
默認值是在定義時進行賦值的,因此要清楚賦值時賦值的是數據仍是引用,這樣才能準確的判斷參數以後的變化狀況。
函數能夠經過 關鍵字參數 的形式來調用,形如 keyword = value
# 關鍵字參數 def sum(a,b): ''' 求兩個數的和 :param a: 數a :param b: 數b :return: a+b的和 ''' return a+b print(sum(a=666,b=888)) # 結果:1554
這種方式在通常狀況下是沒有必要的,可是若是使用可變參數時就能體現出它的做用了
# 以關鍵字參數形式傳遞可變參數 def output(a,**keywords): print("a is " + a ,end=',') for keyword in keywords: print(keyword + " is " + keywords[keyword],end=',') output("one",b="two",c="three",d="four") # 結果:a is one,b is two,c is three,d is four,
使用可變參數可接收一組未定義的參數
# 可變參數列表 def output(a,*args): print(a ,end=',') for arg in args: print(arg,end=',') output("one","two","three","four") # 結果:one,two,three,four,
參數也可使用列表或字典的方式傳入
# 經過列表傳遞入參 def output(a,b): print("a is " + a ,end=',') print("b is " + b) args=['one','two'] output(*args) # 結果:a is one,b is two
# 經過字典傳遞入參 def output(a,b): print("a is " + a ,end=',') print("b is " + b) dic={'a':'three','b':'four'} output(**dic) # 結果:a is three,b is four
用於快速生成一個匿名函數
# 使用匿名函數進行數學計算 sum = lambda a,b:a+b print(sum(5,6)) # 結果:11
# 做爲返回值返回匿名函數 def make_incrementor(n): return lambda x: x + n f = make_incrementor(42) print(f(5)) # 結果:47
函數的第一句三引號部分爲文檔字符串(DocStrings),添加文檔字符串是一個良好的習慣。文檔字符串至關於java的方法註釋,方便往後維護。
文檔字符串能夠經過__doc__默認變量取出。
def output(s): ''' 將對象輸出到控制檯 :param s: 輸出對象 :return: 無返回值 ''' print(s) output(output.__doc__) # 結果: # 將對象輸出到控制檯 # :param s: 輸出對象 # :return: 無返回值
'__main__'
是頂級代碼執行的名稱。當從單獨腳本或標準輸入執行代碼時,模塊的__name__ 值將被設置爲__main__。
因此咱們能夠經過判斷__name__ == "__main__"來斷定是否爲獨立腳本執行,若是是的話就執行main函數。
if __name__ == "__main__": # execute only if run as a script main()
這裏執行的並不是必須是main()函數,任意函數均可執行。
編碼風格不是語言自己強制限制的,可是一個良好的編碼習慣能讓代碼的閱讀和修改都變得比較輕鬆。
a = f(1, 2) + g(3, 4
固然python有不少自動檢查代碼的工具,使用這些工具可以幫助咱們發現不符合規範的地方,培養良好的編碼習慣。
例如Pylint(推薦)、Pychecker、pyflakes、flake八、mypy等