python_函數


數據類型轉換:

Python內置的常用函數還包括數據類型轉換函數,比如int()函數可以把其他數據類型轉換為整數:

 

>>> int('123')
123
>>> int(12.34)
12
>>> float('12.34')
12.34
>>> str(1.23)
'1.23'
>>> str(100)
'100'
>>> bool(1)
True
>>> bool('')
False

pass語句什么都不做,那有什么用?實際上pass可以用來作為占位符,比如現在還沒想好怎么寫函數的代碼,就可以先放一個pass,讓代碼能運行起來。

缺少了pass,代碼運行就會有語法錯誤。

關鍵字參數有什么用?它可以擴展函數的功能。比如,在person函數里,我們保證能接收到nameage這兩個參數,但是,如果調用者願意提供更多的參數,我們也能收到。試想你正在做一個用戶注冊的功能,除了用戶名和年齡是必填項外,其他都是可選項,利用關鍵字參數來定義這個函數就能滿足注冊的需求。

和可變參數類似,也可以先組裝出一個dict,然后,把該dict轉換為關鍵字參數傳進去:

extra = {}
def person(name, age, **extra):
    print('name:', name, 'age:', age, 'other:', extra)

person('jack',24, city = 'Beijing', job = 'stu', zipCode = 123)

打印:name: jack age: 24 other: {'city': 'Beijing', 'job': 'stu', 'zipCode': 123}

如果要限制關鍵字參數的名字,就可以用命名關鍵字參數

def checkName(name, age, *,city ='Nanjing',job):
    print('命名關鍵字參數:name:%s age:%s %s %s' % (name, age, city, job))

checkName('shb',28,job='stu')

打印:命名關鍵字參數:name:shb age:28 Nanjing stu

清除數據操作

a = [1, 2, 3, 4]
>>> print (a)
[1, 2, 3, 4]
>>> b = a.clear()
>>> print (b)
None

復制數據操作

>>> a = [1, 2, 3, 4]
>>> b = a.copy()
>>> print (b)
[1, 2, 3, 4]

獲取元素下標操作

>>> a = [1, 2, 3, 4]
>>> b = a.copy()
>>> print (b)
[1, 2, 3, 4]
>>> c = b.index(3)
>>> print (c)
2

插入元素操作

b.insert(2,'shb')
>>> print (b)
[1, 2, 'shb', 3, 4]

刪除列表最后一個元素,並返回該元素操作

>>> b.pop()
4
>>> print (b)
[1, 2, 'shb', 3]

刪除制定元素操作

[1, 2, 'shb', 3]
>>> b.remove('shb')
>>> print (b)
[1, 2, 3]

 find函數,在字符串中查找子串,返回值代表找到該數據的下標

title = 'shb is a superman'
>>> title.find('a')
7

find 函數指定起點和重點索引 查找

#title = 'shb is a superman'
>>> title.find('s',1,10)
5

.......后面還有很多有用的函數,不一一介紹。

 

小結

Python的函數具有非常靈活的參數形態,既可以實現簡單的調用,又可以傳入非常復雜的參數。

默認參數一定要用不可變對象,如果是可變對象,程序運行時會有邏輯錯誤!

要注意定義可變參數和關鍵字參數的語法:

*args是可變參數,args接收的是一個tuple;

**kw是關鍵字參數,kw接收的是一個dict。

以及調用函數時如何傳入可變參數和關鍵字參數的語法:

可變參數既可以直接傳入:func(1, 2, 3),又可以先組裝list或tuple,再通過*args傳入:func(*(1, 2, 3))

關鍵字參數既可以直接傳入:func(a=1, b=2),又可以先組裝dict,再通過**kw傳入:func(**{'a': 1, 'b': 2})

使用*args**kw是Python的習慣寫法,當然也可以用其他參數名,但最好使用習慣用法。

命名的關鍵字參數是為了限制調用者可以傳入的參數名,同時可以提供默認值。

定義命名的關鍵字參數在沒有可變參數的情況下不要忘了寫分隔符*,否則定義的將是位置參數。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM