最近在維護公升級工具wana,由於這個工具對效率要求不明顯,所以使用python開發,而此前我對python並沒有太過深入的學習與使用,故這裡將學習過程中遇到的有趣知識點總結如下
enumerate() 函式用於將乙個可遍歷的資料物件(如列表、元組或字串)組合為乙個索引序列,同時列出資料和資料下標,一般用在 for 迴圈當中。語法:
以下是 enumerate() 方法的語法:
enumerate(sequence, [start=0]
)
引數:
sequence– 乙個序列、迭代器或其他支援迭代物件。
start– 下標起始位置。
返回值:
返回 enumerate(列舉) 物件。
例項:
>>
>seq =
['one', 'two', 'three'
]>>
>
for i, element in enumerate(seq):
... print i, element
...
0 one
1 two
2 three
用於列印乙個類的相關資訊。
class
cat:
"""定義乙個貓類"""
def__init__
(self, new_name, new_age)
:"""在建立完物件之後 會自動呼叫, 它完成物件的初始化的功能"""
self.name = new_name
self.age = new_age # 它是乙個物件中的屬性,在物件中儲存,即只要這個物件還存在,那麼這個變數就可以使用
def__str__
(self)
:"""返回乙個物件的描述資訊"""
# print(num)
return
"名字是:%s , 年齡是:%d"
%(self.name, self.age)
defintroduce
(self)
:print
("名字是:%s, 年齡是:%d"
%(self.name, self.age)
)# 建立了乙個物件
tom = cat(
"湯姆",30
)print
(tom)
#會列印__str__的return
list
sinstance() 函式來判斷乙個物件是否是乙個已知的型別,類似 type()。
isinstance() 與 type() 區別:語法:isinstance(object, classinfo)如果要判斷兩個型別是否相同推薦使用 isinstance()。
object – 例項物件。
classinfo – 可以是直接或間接類名、基本型別或者由它們組成的元組。
assert(斷言)用於判斷乙個表示式,在表示式條件為 false 的時候觸發異常。
import numpy as np
a=np.random.rand(5)
print
(a)[
0.64061262
0.8451399
0.965673
0.89256687
0.48518743
]print
(a[-1]
)###取最後乙個元素
[0.48518743
]print
(a[:-1
])### 除了最後乙個取全部
[0.64061262
0.8451399
0.965673
0.89256687
]print
(a[::-
1])### 取從後向前(相反)的元素
[0.48518743
0.89256687
0.965673
0.8451399
0.64061262
]print
(a[2::
-1])
### 取從下標為2的元素翻轉讀取
[0.965673
0.8451399
0.64061262
]
用於字串,檢查字串是否是以指定子字串開頭,如果是則返回 true,否則返回 false。如果引數 beg 和 end 指定值,則在指定範圍內檢查。
str
="this is string example....wow!!!"
;print
str.startswith(
'this');
print
str.startswith(
'is',2
,4);
print
str.startswith(
'this',2
,4);
以上例項輸出結果如下:
true
true
false
python中定義函式時,若想在函式內部對函式外的變數進行操作,就需要在函式內部宣告其為global。
x =
1def
func()
: x =
2func(
)print
(x)輸出:1
x =1
deffunc()
:global x
x =2func(
)print
(x)輸出:2
simplify()函式位於sympy模組,用於化簡表示式。舉例如下:
from sympy import
*x = symbols(
'x')
y = symbols(
'y')
z =(x**
3+ x**
2- x -1)
/(x**2+
2*x +1)
simplify(z)
輸出 x-
1
程式開發中有大量的if else 語句,其中又有很大一部分類似:x = c if a else b ,這樣的邏輯,常規語句書寫:
#當 a = true , x =c
#當 a = false , x = b
if a :
x = c
else
: x = b
略顯複雜,因此主流程式語言都有一種「三目運算子」的語法,同樣python也有,上述**就可以修改為:
x = c if a else b
PB學習中遇到的函式
1 getcurrentdirectory 2 fileopen filename 引數filename string型別,指定要開啟檔案的名稱,其中可以包含路徑 引數filemode filemode列舉型別,可選項,指定檔案開啟方式。有效取值為 linemode 預設值,行模式 streammo...
python學習中遇到的幾個報錯
1.d cd d ai learn daima knn e python34 python.exe import knn group,labels knn.creatdataset knn.myclass 0,0 group,labels,3 報錯 1.importerror no module n...
python學習中遇到問題
首先本人python版本為2.7 一 在python 中使用中文時,需要在 第一行加入 coding utf 8語句,它就是第一行唯一的一句,不要加其他東西,特別注意該語句之前不要有空格。二 在使用theano包時,會報typeerror cannot convert type tensortype...