python内置函数表示2的10次幂_Python常见内置函数用法(二)

本文作者:孙雪丽

文字编辑:杨慧琳

技术总编:张学人重大通知!!!2019年6月22日至24日在河南郑州举行Stata编程技术特别训练营,招生工作已经圆满结束。另外爬虫俱乐部将于2019年7月5日至7月8日在武汉举行首期Python编程技术定制培训,仍在火热招生中,点击文章末尾查看原文,查看培训详细信息。

今天,我们接着《Python常见内置函数用法(一)》,继续为大家介绍Python常用的内置函数。

1、filter()函数

该函数用于过滤序列,过滤掉序列中不符合条件的元素,返回由符合条件元素组成的新序列。常见的序列有列表、元组、集合、字符串等。

语法:filter(function,iterable)

filter()函数接受两个参数,第一个参数为过滤函数,第二个参数为一个过滤序列或可迭代对象。filter()会将过滤函数依次作用于过滤序列中的每一个元素,返回一个由符合过滤函数的元素组成的可迭代对象。下面我们以两个简单的小例子来了解filter()函数的用法。

例1、筛选出1-10中的偶数def is_even(n): #定义一个判断奇偶数的过滤函数return n % 2 == 0even = list(filter(is_even, range(1,11)))even

程序中,range()函数创建了一个整数列表,这个列表从1开始(包括1),到11结束(不包括11),步长默认为1。filter()函数将range(1,11)中的数依次传入过滤函数is_even中,并将is_even函数中返回值为True的元素保留在filter对象中,最后通过list()函数将这一对象列表化。结果如下:

例2、筛选出首字母为p的单词import redef start_p(string): #定义过滤函数return re.findall('^p',string)st = ['apple','banana','pear','pineapple','orange','peach']fil = list(filter(start_p, st))fil

运行过程同例1,稍有不同的是filter()中的第二个参数为一个事先定义的过滤序列st,运行结果如下:

2、format()函数

format()是一种格式化字符串或数字的函数。它可以接收任意个参数,且各个参数的位置可随意。其特点是通过一对花括号”{}”调用format()中的各参数且可在花括号中设置调用参数的显示格式,从而实现一系列对字符串或数字的操作。我们首先介绍调用format()参数的几种方法,其次介绍如何设置调用参数的显示格式。

2.1 调用format()参数的方法

♦ 通过参数位置调用

顾名思义,通过参数位置进行调用的方法就是在花括号”{}”中输入所需参数在format()函数中的位置,参数位置从0开始。示例如下:'我叫{2},今年{1}岁,在{0}上学'.format('人民路小学',18,'喜小乐')

♦ 通过参数关键字调用

通过参数关键字调用的方法是指为format()函数中的各参数设置关键字,在调用时仅需在花括号”{}”中输入相应参数的关键字即可,此时参数的位置不再重要。示例如下:'我叫{name},今年{age}岁,在{school}上学'.format(school='人民路小学',age=18,name='喜小乐')

'我叫{2},今年{1}岁,在{0}上学'即所要输出的字符串,在这个字符串中,又通过{#}调用format()函数中第#号位置的参数。当花括号中不做任何设置时,会按照参数的默认顺序进行调用。'我叫{},今年{}岁,在{}上学'.format('人民路小学',18,'喜小乐')

♦ 通过映射列表调用

映射列表的做法是指,事先定义一个列表,将列表名称作为format()函数的参数,在花括号中调用时不仅要输入列表在参数中的位置,还需输入所调用内容在列表中的位置。示例如下:list1 = ['鸡小萌',18,'人民路中学']'{0},我叫{1[0]},今年{1[1]}岁,在{1[2]}上学'.format('大家好',list1)

♦ 通过映射字典调用

映射字典的做法同样需要事先定义一个字典,并将字典名称作为format()函数的参数,在花括号中输入字典中的key可调用相应的value值。示例如下:dict1 = {'name':'鸡小萌','age':18,'school':'人民路中学'}'我叫{name},今年{age}岁,在{school}上学'.format(**dict1)

2.2 设置调用参数的格式

我们不仅可以在花括号”{}”中调用参数,还可设置参数的显示格式。对于字符串参数,可以设置参数的对齐方式以及填充方式;对于数字参数,还可设置数字的精度与类型、显示格式(百分比格式、指数格式、正负号等)、进制转换等等。我们先来了解设置格式的常用符号:

^、 分别是居中、左对齐、右对齐,后面带宽度。

: 后面带填充字符,只能是一个字符,不指定的话默认为空格。

f 表示浮点数

.#f 设置浮点数的精度,#为一自然数。

d 表示十进制整数,将数字以10为基数进行输出

% 表示百分数,将数值乘以100输出,值后面会有一个百分号

e 表示幂符号,用科学计数法打印数字, 用’e’表示幂。

表示带符号输出。

接下来我们以示例来介绍上述符号的具体用法。

♦ 填充与对齐print('{:*^30}'.format('一年1班成绩表')) # :* 表示以*号填充,^30 表示居中对齐,且宽度为30print('{name:^10} {age:^10d} {grade:>10.2f}'.format(name='鸡小萌',age=16,grade=533.2588))print('{name:^10} {age:^10d} {grade:>10.2f}'.format(name='石敢当',age=17,grade=668.765))print('{name:^10} {age:^10d} {grade:>10.2f}'.format(name='喜小乐',age=18,grade=324.567))

以”{grade:>10.2f}”为例解释括号中数字及符号的含义:’grade’为所要调用的关键字参数;’:’ 指定填充方式,其后没有指定填充字符默认以空格填充;’>10’ 表示右对齐且宽度为10;’.2f’ 表示精度,保留两位有效数字,保留整数时可设置为’.0f’。

♦ 数字格式化输出

假定有如下三个列表:list1 = [2,31.48,0.43,1200000000]list2 = [1872,20.1,-0.87,234840000]list3 = [600606,7.83,-0.46,113000000]

分别代表了3支股票的部分信息,列表元素依次为股票代码、价格、收益率、市值。我们想要将其格式化输出,具体要求为:在不足6位的股票代码前补0;价格保留两位有效数字;收益率转化为百分比形式且保留收益率前的符号;市值转化为指数形式。代码如下:print('{:^6} {:^8} {:^8} {:^10}'.format('stkcd','price','Rit','value'))print('{0[0]:0>6} {0[1]:^8.2f} {0[2]:^ .1%} {0[3]:^15.2e}'.format(list1))print('{0[0]:0>6} {0[1]:^8.2f} {0[2]:^ .1%} {0[3]:^15.2e}'.format(list2))print('{0[0]:0>6} {0[1]:^8.2f} {0[2]:^ .1%} {0[3]:^15.2e}'.format(list3))

输出结果如下:

通过两个小例子大家对这些符号有没有一些初步的印象呢?设置显示格式的符号多且易混淆,还需要读者在实际操作中多运用才能深刻理解这些符号的含义。

3、hasattr()函数

hasattr()是一个判断对象中是否包含特定属性的内置函数,其语法为:

hasattr(object,name)

可见hasattr()函数有两个参数:object和name,它用于判断对象object中是否含有属性name,有则返回True,没有则返回False,且hasattr()函数实际上是调用getattr(object,name)函数通过捕捉Attribute Error进行判断的。如下例:class Example():name='xiaohua'def run(self):return 'HelloWord't = Example() #实例化一个对象print(hasattr(t, 'name')) #判断name属性是否存在print(hasattr(t, 'age')) #判断age属性是否存在print(hasattr(t, 'run')) #判断方法run是否存在

运行结果如下:

我们判断了对象t中是否包含属性name、age和方法run,显而易见判断结果为True、False、True。

对爬虫俱乐部的推文累计打赏超过1000元我们即可给您开具发票,发票类别为“咨询费”。用心做事,只为做您更贴心的小爬虫!

你可能感兴趣的:(python内置函数表示2的10次幂_Python常见内置函数用法(二))