def
關鍵字聲明,用 return
關鍵字返回值。def my_function(x, y, z=1.5):
if z > 1:
return z * (x + y)
else:
return z / (x + y)
可以同時擁有多條return語句,如果達到函數末尾時沒有遇到return,則返回None。(和c語言是不一樣的)
函數可以有一些位置參數(不指定默認值)和關鍵字參數(指定默認值)。
但是,關鍵字參數必須位於位置參數(如果有的話)之後。
my_function(5, 6, z=0.7)
my_function(3.14, 7, 3.5)
my_function(10, 20)
my_function(x=5, y=6, z=7)
my_function(y=6, x=5, z=7)
函數可以訪問兩種不同作用域中的變量:全局(global)和局部(local)。
Python有一種更科學的,用於描述變量作用域的名稱,即命名空間(namespace)。
任何在函數中賦值的變量,默認都是被分配到局部命名空間的。
局部命名空間是在函數被調用時創建的,函數參數會立即填入該命名空間。
global
關鍵字把函數中的參數聲明為全局變量。python
def f():
a = 5
b = 6
c = 7
return a, b, c
a, b, c = f()
def f():
a = 5
b = 6
c = 7
return {
'a' : a, 'b' : b, 'c' : c}
return_value = f()
re
模塊。In [171]: states = [' Alabama ', 'Georgia!', 'Georgia', 'georgia', 'FlOrIda', 'south carolina##', 'West virginia?']
import re
def clean_strings(strings):
result = []
for value in strings:
value = value.strip()
value = re.sub('[!#?]', '', value)
value = value.title()
result.append(value)
return result
(1)strip()方法
strip() 方法用於移除字符串頭尾指定的字符(默認為空格或換行符)或字符序列。
返回值:修改之後的字符序列。
注意:該方法只能刪除開頭或是結尾的字符,不能刪除中間部分的字符。
(2)sub()方法
sub()方法用來進行查詢和替換,sub()方法的格式為:
re.sub(pattern, repl, string, count=0, flags=0)
pattern:表示正則中的模式字符串;
repl:表示要替換的字符串(即匹配到pattern後替換為repl),也可以是個函數;
string:表示要被處理(查找替換)的原始字符串;
count:可選參數,表示要替換的最大次數,而且必須是非負整數,該參數默認為0,即所有的匹配都會替換;
flags:可選參數,表示編譯時用的匹配模式(如忽略大小寫、多行模式等),數字形式,默認為0。
(3)title()方法
title()方法的功能:將字符串中所有單詞的首個字母轉化為大寫,其他字母均轉化為小寫。
【特別注意】若在字符串中遇到標點符號、空格、數字等其他非字母元素,則非字母元素後的第一個字母轉化為大寫,其他字母轉化為小寫。
map 是 python 的內置函數,會根據提供的函數對指定的序列做映射。
map() 函數的格式是:
map(function, iterable,...)
第一個參數接受一個函數名。後面的參數接受一個或多個可迭代的序列,返回的是一個集合。
把函數依次作用在list中的每一個元素上,得到一個新的list並返回。注意:map函數不改變原list,而是返回一個新list。
del square(x):
return x ** 2
map(square,[1,2,3,4,5])
# 結果如下:
[1,4,9,16,25]
map(None,[2,4,6],[3,2,1])
# 結果如下
[(2,3),(4,2),(6,1)]
Python支持一種匿名函數,這種函數僅由單條語句組成,該語句的結果就是返回值。
通過lambda關鍵字定義,代表“正在聲明的是一個匿名函數”。
def short_function(x):
return x * 2
equiv_anon = lambda x: x * 2
def apply_to_list(some_list, f):
return [f(x) for x in some_list]
ints = [4, 0, 1, 5, 6]
apply_to_list(ints, lambda x: x * 2)
相當於:[x *2 for x in ints]
def func(x,y):
return x+y
# 相當於下面的lambda
lambda x,y: x+y
In [177]: strings = ['foo', 'card', 'bar', 'aaaa', 'abab']
In [178]: strings.sort(key=lambda x: len(set(list(x))))
In [179]: strings
Out[179]: ['aaaa', 'foo', 'abab', 'bar', 'card']
T = (123, 'Google', 'Runoob', 'Taobao')
L1 = list(T)
print ("列表元素 : ", L1)
S="Hello World"
L2=list(S)
print ("列表元素 : ", L2)
###############################################
列表元素 : [123, 'Google', 'Runoob', 'Taobao']
列表元素 : ['H', 'e', 'l', 'l', 'o', ' ', 'W', 'o', 'r', 'l', 'd']
set() 函數創建一個無序不重復元素的集合。
可進行關系測試,刪除重復數據,還可以計算交集、差集、並集等,返回新的集合對象
sort(*, key=None, reverse=False)
key
函數的使用:將其應用於每個列表項,並根據他們的函數值對列表進行升序或者降序排序。reverse
設置反向標志,設置為升序和降序排序。