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類型為str
注釋
#
數據類型
不變對象不需聲明
整數
浮點數
字符串
布爾(TrueFalse and or not運算)
空值None
變量
可變對象需聲明
列表(數組)
len(list)獲取長度
list[-n]獲取倒數第n個
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}
接收一個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="{'age':20,"score":88,"name":"Bob"}"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的基础知识的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 女生熬夜会瘦吗
- 下一篇: python实现最小二乘法的线性回归_最