python學習中遇到的函式

2021-10-23 21:07:47 字數 3565 閱讀 5016

最近在維護公升級工具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()。

語法:isinstance(object, classinfo)

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