python内置函数

送分小仙女□ 提交于 2020-04-07 05:25:35

今天主要内容:

1.昨日补充

2.内置函数

3.匿名函数

 

 

1.关于生成器如何产生值,有三种方法,

1)生成器调.__next__()

2)用for循环

3)用list(ge)

 

2.内置函数

2.1 迭代器生成器相关

range() 函数可创建一个整数对象,一般用在for 循环中

next :内部实际使用了__next__方法,返回迭代器的下一个项目

iter():函数用来生成迭代器

2.2 基础类型相关

bool: 用于将给定参数转换为布尔类型,如果没有参数,返回 False。

int: 函数用于将一个字符串或数字转换为整型(这里注意如果是转换字符型的话,那么是把后面小数点去掉)

示例:

f = 1.25
i = int(f)
print(i)

"""
运行结果是
1
"""

float:函数用于将整数和字符串转换成浮点数。

 进制转换(3):

    bin:将十进制转换成二进制并返回。

    oct:将十进制转化成八进制字符串并返回。

    hex:将十进制转化成十六进制字符串并返回。

print(bin(10),type(bin(10)))  # 0b1010 <class 'str'>
print(oct(10),type(oct(10)))  # 0o12 <class 'str'>
print(hex(10),type(hex(10)))  # 0xa <class 'str'>abs :函数返回数字的绝对值。

 divmod:计算除数与被除数的结果,返回一个包含商和余数的元组(a // b, a % b)。

 round:保留浮点数的小数位数,默认保留整数。关于round取两位数不准确的问题,可以使用

类似下面格式化的输出

float('%.2f' % b)或者
from decimal import Decimals = Decimal('5.000').quantize(Decimal('0.00'))print(s)

 pow:求x**y次幂。(三个参数为x**y的结果对z取余)

示例:

tu = divmod(10,3)
print(tu)  ##这个函数是求两个参数的除数和余数


f = 4.3567
print(round(f,2))###这里是取小数点后两位,注意round的问题

print(pow(2,3))  #求2的3的min

 

sum :对可迭代对像进行求各计算(可设置初始值)

max:返回可迭代对像的最大值

min:返回可迭代对像的最值

sum 这里要注意的是,可以传入初始值,比如sum(lst,100) 这里要表示的是lst列表里面的值相加后,再加100.

max 和min要注意的是可以传入key值,这个key值可以接授函数赋值,当传入的是函数时max或者min会迭代这个可迭代对像,然后对每一个获取的迭代值传入函数,获取返回值,然后对比返回值,获取最大值,然后返回给当时的key.

示例:

f = [1,2,3]
print(sum(f,1000))
lst = [(1,20),(30,2),(20,100)]
print(max(f))
print(max(lst,key=lambda x:x[1]))

 

2.3和数据结构相关

list:将一个可迭代对象转化成列表(如果是字典,默认将key作为列表的元素)。

tuple:将一个可迭代对象转化成元祖(如果是字典,默认将key作为元祖的元素)。

 

reversed:将一个序列翻转,并返回此翻转序列的迭代器注意这里返回的是迭代器

slice:构造一个切片对象,用于列表的切片。

示例:

lst = [1,4,90,70,101]
for i in reversed(lst):
    print(i)
lst = [1,4,90,70,101]# for i in reversed(lst):#     print(i)s_ob= slice(1,4)print(lst[s_ob])

str:将数据转化成字符串

format:与具体数据相关,用于计算各种小数,精算等。

bytes:用于不同编码之间的转化。注意这里只能由unicode转为utf-8,不能由utf-8转为unicode

示例:

s = "abc中国"
s1 = bytes(s,encoding="utf-8")
print(s1)

ord:输入字符找该字符编码的位置

chr:输入位置数字找出其对应的字符

ascii:是ascii码中的返回该值,不是就返回/u...

 

repr:返回一个对象的string形式(原形毕露)。

这个是能显示字符串的双引号,

如下示例:

# %r  原封不动的写出来
# name = 'taibai'
# print('我叫%r'%name)

# repr 原形毕露
# print(repr('{"name":"alex"}'))
# print('{"name":"alex"}')
name = 'taibai'

 数据集合(3)

    dict:创建一个字典。

    set:创建一个集合。

    frozenset:返回一个冻结的集合,冻结后集合不能再添加或删除任何元素。

  相关内置函数(8)

     len:返回一个对象中元素的个数。

    sorted:对所有可迭代的对象进行排序操作。

s = "136745"
f = sorted(s) #sorted最后返回的是列表
print(f)

"""
执行结果如下:
['1', '3', '4', '5', '6', '7']
"""

enumerate:枚举,返回一个枚举对象。这个主要是返回元组,元组的内容是序号和迭代内容组成.

 

for i in enumerate([1,2,3],100):   #这个用法值得注意,是在序号基础上再加后面的初始值
    print(i)


"""
运行结果如下:
(100, 1)
(101, 2)
(102, 3)
"""

all:可迭代对象中,全都是True才是True

any:可迭代对象中,有一个True 就是True

示例如下:

print(all([1,"33",6]))
print(any([3,'',"dd"]))

zip  函数用于将可迭代的对像作为参数.将对像中对应元素打包成一个个元组.然后返回由这些元组组成的列表.如果各个迭代器的元素个数不一致,则返回列表长度与最短的对像相同

l = [1,2,3]
f = ["a","b","c"]
p = zip(f,f)
print(p)
for i in p:
    print(i)

"""
执行结果如下:
<zip object at 0x000000F505093408>
('a', 'a')
('b', 'b')
('c', 'c')
"""

filter:过滤·。

filter 过滤 通过你的函数,过滤一个可迭代对象,返回的是True示例:
s = filter(lambda x:x == 2,[1,2,3])
for i in s :
    print(i)

"""
执行结果是2
"""

 

map:会根据提供的函数对指定序列做映射。

这个类似于列表表达式的循环模式,

示例如下:

f = map(lambda x:x**2,[1,2,3])
for i in f :
    print(i)

 

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!