python3.6基础知识_python的基础知识
安裝
https://www.python.org/ftp/python/3.6.3/python-3.6.3-amd64.exe
輸入輸出
print('text')
'hi,我是%s,我%d歲了'%('Wang',20)
print('abc','def','ghi')
inputName = input('輸出信息')? inputName類(lèi)型為str
注釋
#
數(shù)據(jù)類(lèi)型
不變對(duì)象不需聲明
整數(shù)
浮點(diǎn)數(shù)
字符串
布爾(TrueFalse and or not運(yùn)算)
空值None
變量
可變對(duì)象需聲明
列表(數(shù)組)
len(list)獲取長(zhǎng)度
list[-n]獲取倒數(shù)第n個(gè)
list.append('world')末尾添加
list.insert(index,'hello')指定index插入
list.pop()刪除末尾? pop(index)刪除index
list.sort()
元組
tuple = (1,2,3)
一旦定義不可改變
字典
dict = {'wang':1,'li':2,'qun':3}
dict['add'] = 4
'add' in dict 輸出true
dict.get('add','notfound')找不到輸出notfound
集合
s =set([a,b,c])print(s)
{a,b,c}
接收一個(gè)list
集合不可重復(fù),確定,無(wú)序,互異
s.set(key)添加
s.remove(key)刪除
條件
if用法
if i<5:print('Hello World')elif i>10:print('Hello World')else:print('Hello World')
循環(huán)
for循環(huán)
list =[a,b,c]for i inlist:print(i)
i依次為a,b,c
while循環(huán)
while i<5:print(i++)
i=i+1
break
continue
函數(shù)
def fun(a,b,c=3):print(a+b+c)
fun(4,5)
fun(4,5,6)
需傳入2到3個(gè)參數(shù),否則為錯(cuò)
默認(rèn)參數(shù)必須指向固定,否則會(huì)記錄上一次的結(jié)果
def fun(*number):
#可變參數(shù),number變?yōu)閿?shù)組
參數(shù)組合
順序:必選參數(shù),默認(rèn)參數(shù),可變參數(shù),命名關(guān)鍵字參數(shù),關(guān)鍵字參數(shù)
*args是可變參數(shù),接受一個(gè)tuple, **kw是關(guān)鍵字參數(shù),接受一個(gè)dict
關(guān)鍵字參數(shù)需要加*作為分隔符
def f1(a, b, c=0, *args, **kw):
def f2(a, b, c=0, *, d, **kw):
高級(jí)特性
切片(list,tuple)
L[m:n]左閉右開(kāi)
L[-m]倒數(shù)第m個(gè)元素
L[:n]默認(rèn)為0開(kāi)始取
L[m:]取到最后(包含)
L[m:n:5]每隔五個(gè)取一個(gè)
迭代
對(duì)于數(shù)組 for i ,value in enumerate(list) (迭代index和value)
對(duì)于字典 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)
#判斷是不是迭代器對(duì)象,True or False
列表生成式
[x*x for x in range(1,10) if x>4]? 自動(dòng)生成,{}等都可以
生成器
#[x for x in range(1,5)]變成(x for ix in range(1,5))生成器
#保存算法運(yùn)算規(guī)律,需要的時(shí)候計(jì)算出來(lái)
#next(函數(shù)())即可一步一步調(diào)用
#最后報(bào)StopIteration錯(cuò)誤
包含yield的函數(shù)是generator
從上次yield之后的語(yǔ)句開(kāi)始執(zhí)行
#通過(guò)捕獲StopIteration錯(cuò)誤拿到return值
生成器不能像函數(shù)一樣執(zhí)行,可以通過(guò)next()獲取一個(gè),通過(guò)for獲取所有
迭代器
Iterable? ?for皆可
Iterator? ?iter(iterable)
高階函數(shù)
可以接受函數(shù)體作為參數(shù),與js類(lèi)似
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)#數(shù)組 規(guī)則 反向
閉包
函數(shù)體作為返回值
調(diào)用時(shí)才執(zhí)行
匿名函數(shù)
f=lambda x,y:x*y
裝飾器
@function
def func():
pass
@修飾符,將'函數(shù)名'作為@函數(shù)參數(shù),生成的結(jié)果代替原來(lái)的函數(shù),并執(zhí)行。(所以裝飾器中必須返回'函數(shù)名')
函數(shù)__name__屬性,可以獲取函數(shù)名
@classmethod可傳cls,@staticmethod都是靜態(tài)
類(lèi)和實(shí)例
__init__構(gòu)造函數(shù),可以引用類(lèi)的實(shí)例傳值賦屬性
class Student(object):
__init__(self,a):
print(a)
A=Student('helolo world')
_開(kāi)頭的變量或者函數(shù)不應(yīng)該訪(fǎng)問(wèn),但是沒(méi)有機(jī)制限制,__開(kāi)頭的不可被訪(fǎng)問(wèn),因?yàn)閷?duì)外變成了‘_類(lèi)名__屬性‘
可以通過(guò)內(nèi)置函數(shù)給私有量設(shè)置查,改等
class Dog(Animal):#繼承
type()判斷類(lèi)型? types模塊types.FunctionType判斷函數(shù)類(lèi)型
instance()同上,另外還可以判斷是否是繼承而來(lái)的。
dir()列出方法的所有屬性和方法
getattr(),setattr(),hasattr()
面向?qū)ο?/p>
__slots__=('name','year')#tuple
表示可以定義的屬性(其余是不可以定義的)
針對(duì)當(dāng)前實(shí)例,對(duì)子類(lèi)無(wú)用
子類(lèi)定義__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
錯(cuò)誤處理
try except finally
except Exception as e:
IO處理
f=open('文件名',‘r’)#讀方式打開(kāi)文件? 二進(jìn)制rb? 寫(xiě)w或wb
str=f.read()#一次讀取所有,可用數(shù)字限定最多讀取個(gè)字節(jié)(readline()一行,readlines()返回行列表)
f.close()
with open() as f:
f.read()#自動(dòng)保持關(guān)閉,不用close()
StringIO和BytesIO
fromio import StringIO
f=StringIO()
f.write('hello')
f.getvalue()#獲取寫(xiě)入的
#在內(nèi)存中讀寫(xiě)。類(lèi)似文本操作fromio import ByteIO
f=ByteIO()
f.write('hello'.encode('utf-8'))
f.close()
#必須關(guān)閉,防止丟失
os模塊
json模塊
import json
json_str="{'age':20,"score":88,"name":"Bob"}"json.loads(json_str)
#轉(zhuǎn)化為json(dict)格式
:結(jié)尾的以縮進(jìn)(四個(gè)空格)作為代碼塊
python大小寫(xiě)敏感
數(shù)據(jù)類(lèi)型:整數(shù)浮點(diǎn)數(shù)(科學(xué)計(jì)數(shù)法)字符串(r''表示不轉(zhuǎn)義\轉(zhuǎn)義\n換行\(zhòng)t制表)布爾值TrueFalse
/除//地板除%取余
對(duì)數(shù)大小無(wú)限制,超出即無(wú)窮大
Unicode Utf-8
ord('中')表示獲取數(shù)字表示
chr(數(shù)字)轉(zhuǎn)換對(duì)應(yīng)的字
isinstance(unknown,type)判斷類(lèi)型
pass補(bǔ)全格式,不做任何操作
in,not in
sys.path導(dǎo)入模塊查找的路徑
enumerate()將數(shù)組轉(zhuǎn)換為索引對(duì),用于遍歷取索引
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]
#對(duì)稱(chēng)差集,set(a).symmetric_difference(b)set(a) ^ set(b) [5,2]
總結(jié)
以上是生活随笔為你收集整理的python3.6基础知识_python的基础知识的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 女生熬夜会瘦吗
- 下一篇: python实现最小二乘法的线性回归_最