python3 6基礎知識 python的基礎知識

2021-10-11 02:44:25 字數 4607 閱讀 1518

安裝

輸入輸出

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...