安裝
輸入輸出
print('text')
'hi,我是%s,我%d歲了'%('wang',20)
print('abc','def','ghi')
inputname = input('輸出資訊') inputname型別為str
注釋資料型別
不變物件不需宣告
整數浮點數
字串布林(truefalse and or not運算)
空值none
變數可變物件需宣告
列表(陣列)
len(list)獲取長度
list[-n]獲取倒數第n個
list.insert(index,'hello')指定index插入
list.pop()刪除末尾 pop(index)刪除index
list.sort()
元組tuple = (1,2,3)
一旦定義不可改變
字典dict =
dict['add'] = 4
'add' in dict 輸出true
dict.get('add','notfound')找不到輸出notfound
集合s =set([a,b,c])print(s)
接收乙個list
集合不可重複,確定,無序,互異
s.set(key)新增
s.remove(key)刪除
條件if用法
if i<5:print('hello world')elif i>10:print('hello world')else:print('hello world')
迴圈for迴圈
list =[a,b,c]for i inlist:print(i)
i依次為a,b,c
while迴圈
while i<5:print(i++)
i=i+1
break
continue
函式def fun(a,b,c=3):print(a+b+c)
fun(4,5)
fun(4,5,6)
需傳入2到3個引數,否則為錯
預設引數必須指向固定,否則會記錄上一次的結果
def fun(*number):
#可變引數,number變為陣列
引數組合
順序:必選引數,預設引數,可變引數,命名關鍵字引數,關鍵字引數
*args是可變引數,接受乙個tuple, **kw是關鍵字引數,接受乙個dict
關鍵字引數需要加*作為分隔符
def f1(a, b, c=0, *args, **kw):
def f2(a, b, c=0, *, d, **kw):
高階特性
切片(list,tuple)
l[m:n]左閉右開
l[-m]倒數第m個元素
l[:n]預設為0開始取
l[m:]取到最後(包含)
l[m:n:5]每隔五個取乙個
迭代對於陣列 for i ,value in enumerate(list) (迭代index和value)
對於字典 for k in dict:(迭代key) for v in dict。values():(迭代value) for k,v in dict.items():(迭代key,value)
fromcollections import iterable
#isinstance(unknown,iterable)
#判斷是不是迭代器物件,true or false
列表生成式
[x*x for x in range(1,10) if x>4] 自動生成,{}等都可以
生成器#[x for x in range(1,5)]變成(x for ix in range(1,5))生成器
#儲存演算法運算規律,需要的時候計算出來
#next(函式())即可一步一步呼叫
#最後報stopiteration錯誤
包含yield的函式是generator
從上次yield之後的語句開始執行
#通過捕獲stopiteration錯誤拿到return值
生成器不能像函式一樣執行,可以通過next()獲取乙個,通過for獲取所有
迭代器iterable for皆可
iterator iter(iterable)
高階函式
可以接受函式體作為引數,與js類似
r=map(f,[1,2,3]) r=reduce(f,[1,2,3]) r=filter(f,[1,2,3])
sorted([1,2,3],key=abs,reverse=true)#陣列 規則 反向
閉包函式體作為返回值
呼叫時才執行
匿名函式
f=lambda x,y:x*y
裝飾器@function
def func():
pass
@修飾符,將'函式名'作為@函式引數,生成的結果代替原來的函式,並執行。(所以裝飾器中必須返回'函式名')
函式__name__屬性,可以獲取函式名
@classmethod可傳cls,@staticmethod都是靜態
類和例項
__init__建構函式,可以引用類的例項傳值賦屬性
class student(object):
__init__(self,a):
print(a)
a=student('helolo world')
_開頭的變數或者函式不應該訪問,但是沒有機制限制,__開頭的不可被訪問,因為對外變成了『_類名__屬性『
可以通過內建函式給私有量設定查,改等
class dog(animal):#繼承
type()判斷型別 types模組types.functiontype判斷函式型別
instance()同上,另外還可以判斷是否是繼承而來的。
dir()列出方法的所有屬性和方法
getattr(),setattr(),hasattr()
物件導向
__slots__=('name','year')#tuple
表示可以定義的屬性(其餘是不可以定義的)
針對當前例項,對子類無用
子類定義__slots__才可以有效繼承父親的
@property屬性限制
class student(object):
@property
def score(self):returnself._store
@property.setter
def score(self,value):
#限制條件
self._store=value
s=student()
s.store=99
錯誤處理
try except finally
except exception as e:
io處理
f=open('檔名',『r』)#讀方式開啟檔案 二進位制rb 寫w或wb
str=f.read()#一次讀取所有,可用數字限定最多讀取個位元組(readline()一行,readlines()返回行列表)
f.close()
with open() as f:
f.read()#自動保持關閉,不用close()
stringio和bytesio
fromio import stringio
f=stringio()
f.write('hello')
f.getvalue()#獲取寫入的
#在記憶體中讀寫。類似文字操作fromio import byteio
f=byteio()
f.write('hello'.encode('utf-8'))
f.close()
#必須關閉,防止丟失
os模組
json模組
import json
json_str=""json.loads(json_str)
#轉化為json(dict)格式
:結尾的以縮排(四個空格)作為**塊
python大小寫敏感
資料型別:整數浮點數(科學計數法)字串(r''表示不轉義\轉義\n換行\t製表)布林值truefalse
/除//地板除%取餘
對數大小無限制,超出即無窮大
unicode utf-8
ord('中')表示獲取數字表示
chr(數字)轉換對應的字
isinstance(unknown,type)判斷型別
pass補全格式,不做任何操作
in,not in
sys.path匯入模組查詢的路徑
enumerate()將陣列轉換為索引對,用於遍歷取索引
python的set
a=[1,3,5]
b=[1,2,3]
#並集,set(a).union(b)set(a) | set(b) [1,2,3,5]
#交集,set(a).intersection(b)set(a) & set(b) [3]
#差集,set(a).difference(b)set(a)-set(b) [5]
#對稱差集,set(a).symmetric_difference(b)set(a) ^ set(b) [5,2]
python3 6基礎學習記錄(一)
python 3.6 基礎學習記錄 一 1.需要注意空格 2.用 注釋 3.使用print後加end 4 多行語句可用 表示 5 與 表示沒區別,三個單引號可以多個字串 6 input使用 7 if while等迴圈語句條件後需加 表結束 8使用import和import.from python中單...
python3 6基礎學習記錄 四)
函式 返回值 描述 abs x 返回數字的絕對值,如abs 10 返回 10 ceil x 返回數字的上入整數,如math.ceil 4.1 返回 5 cmp x,y 如果 x y 返回 1,如果 x y 返回 0,如果 x y 返回 1。python 3 已廢棄 使用 使用 x y x替換。exp...
python3 6 爬蟲例子
importurllib.request importre importos importurllib.erroraserror url 請求 request urllib.request.request url 爬取結果 response urllib.request.urlopen reques...