python 簡介
python是一門廣泛流行的動態語言。它不光可以寫后端,還可以寫web,圖像處理,做自動化運維,自動化測試,爬蟲,數據分析。
特點
- 純面向對象語言,萬物皆對象
- 支持面向過程和面向對象的編程范式
- 有著豐富的標準庫和第三方庫支持
- 良好的可擴展性,可以很容易的和其他語言進行交互
缺點
- 忘掉吧!
python主流種類
- CPython. 官方版, 使用C語言實現, 使用最為廣泛, 會將源代碼z轉換成字節碼(.pyc)運行
- JPython. 使用JAVA實現
- PyPy. 使用Python實現,為速度而優化
Python2 還是 Python3
因為linux系統自帶python2.x版本。所以在未來幾年還是主要使用版本。
但是3.x不管是從性能還是功能上,已經遠遠超越了2.x,python庫基本上都可以在3.下使用了。所以是時候學習3.x了。
What's new in Python3 ?
- print to print()
2.x: >>> print "hello world"
3.x: >>> print("hello world")
- raw_input() to input()
2.x: >>> raw_input(">")
3.x: >>> input(">")
- All is unicode
- 再也不用操心亂碼問題
- 數學運算
2.x:
>>> 1/2
0
3.x:
>>> 1/2
0.5
- 詳細信息請移步 WhatsNew
第一個程序
創建一個hello_world.py,內容如下
#/usr/bin/env python3
# -*- coding: utf-8 -*-
print("hello world")
第一行代碼指定使用哪個python解釋器,env會去找名叫python3的解釋器來執行代碼
第二行代碼指定了使用哪種編碼
執行代碼
$ python3 hello_world.py
hello world
縮進
Python的代碼既整潔又美觀,因為它使用縮進來表示層級關系。
推薦使用4個空格來代替Tab鍵。
#/usr/bin/env python3
# -*- coding: utf-8 -*-
if True:
print("Hello")
else:
print("World")
就是這么干凈,是不是更喜歡Python了呢!
基本數據類型
數據類型是重點,重點,重點
數字
int,整數
-3,-2,-1,0,1,2,3
float,包含小數
1.2,0.1
-
字符串
使用單引號或雙引號括起來的就是字符串。
'Hello',"World"
它們有什么區別:沒什么區別,看個人心情。
不過有個地方要注意一下
test1 = 'I'm boy'
test2 = "I'm boy"- 字符串格式化
- 在python中,拋棄字符串拼接 “+”
- 使用%s
- 字符串格式化
-
布爾型
- True
- False
- 0 == False,1 == True
- 列表
- 定義一個列表
new_list = [1,2,3,4]
- 列表操作
- 列表通過索引(下標)獲取數據,索引從0開始。如 new_list[0] 為1
- append(object) 往列表末尾添加元素
- clear() 清空列表所有元素
- copy() 淺拷貝
- count(value) 統計指定元素出現幾次
- index(value,[start,[stop]]) 查找指定元素第一次出現的下標
- insert(index,object) 將元素插入指定位置
- pop([index]) 默認刪除列表最后一個元素
- remove(value) 刪除第一次出現的元素
- sort() 對列表的元素進行排序
- extend(iterable) 將iterable中的元素添加到列表中
- 定義一個列表
- 元組
- 列表是可變的,而元組不可變
- 聲明一個元組
new_tuple = (0,1,2,3)
- 元組操作
- count()
- index()
- 字典
- 存儲的k-v鍵值對,查詢速度超級快
變量與賦值
什么是變量?它是一個代號,通過變量,可以調取真實數據。
先聲明一個字符串變量
name = 'wupeiqi'
說明:
- 先聲明一個變量名name
- 在內存中開辟一個空間,用來存儲字符串 'wupeiqi'
- 通過 ‘=’ 把name 指向到存儲 ‘wupeiqi’ 的內存地址
現在來打印變量name
print(name)
變量名命名規則
只能以字母或者下劃線開頭
由字母下劃線和數字組成
合法變量名 a_1, _a1
非法變量名 1_aPython關鍵字不能作為變量名,如 if else
盡量使用有意義的變量名
用戶交互
很多情況下,程序需要通過用戶的輸入來進行程序的走向。
比如程序不知道你的性別,所以就要用戶告訴程序。
Python3 使用 input()函數來獲取用戶輸入
sex = input("Are you are boy or girl? ")
流程控制
當知道了用戶輸入,就可以就此來做判斷。
條件判斷 if ... elif ... else
sex = input("Are you are boy or girl? ")
if sex == "boy":
print("去男廁")
elif sex == "girl":
print("去女廁")
else:
print("我也不知道你該去哪個廁所")
循環
這不行啊!如果用戶不小心輸錯性別,那不得后悔死啊!
所以就要用到循環來給用戶更多的機會
while 循環
while True:
sex = input("Are you are boy or girl? ")
if sex == "boy":
print("去男廁")
elif sex == "girl":
print("去女廁")
else:
print("我也不知道你該去哪個廁所")
這下好了,用戶總算可以找對廁所了。
然而,用戶又說了:為毛程序一直問我性別啊!輸對了還問,傻13啊
原來 while 的條件為 True,所以程序會一直運行。
那就讓程序知道為boy時退出(女生繼續玩,嘿嘿)
while True:
sex = input("Are you are boy or girl? ")
if sex == "boy":
print("去男廁")
exit() # exit() 退出程序
elif sex == "girl":
print("去女廁")
else:
print("我也不知道你該去哪個廁所")
for 循環
都說事不過三,不能老是犯錯誤吧!
所以加個次數限制,如果還是錯了,那真對不起了!
這里限制3次
for i in range(3):
sex = input("Are you are boy or girl? ")
if sex == "boy":
print("去男廁")
exit()
elif sex == "girl":
print("去女廁")
else:
print("我也不知道你該去哪個廁所")
print("你到底是男是女還是~~")
有兩個關鍵字可以控制循環
- break 跳出當前循環
- continue 跳出本次循環,繼續下一次循環
文件操作
打開文件hello_world.py
new_file = open('hello_world.py','r')
文件模式
- r, 只讀。
- w, 只寫。文件存在會覆蓋重寫,文件不存在會創建,
- a, 追加。文件存在會定位到文件末尾添加新內容,文件不存在會創建并寫入
- w+
一定要小心使用 w 模式,會抹掉文件內容的
讀取文件
- new_file.read() 一次性讀取所有內容
- new_file.readlines() 按行讀取所有內容,依次存儲在列表中
- new_file.readline() 一次讀取一行
寫入文件
new_file.write("xxx")
關閉文件句柄
new_file.close()
使用with ... as ... 的方式可在運行完代碼后自動close
with open('hello_world.py','r') as f:
print(f.read)
待補充
基礎很枯燥,很乏味。但卻是最重要的。
沒事多溫習下,發現遺漏的知識點再補充進來。