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
设置反向标志,设置为升序和降序排序。