python之内置函数

时间:2021-01-07 22:26:30


作用域相关 *****

  • globals(): 返回一个字典:包含全部的全局变量。
  • locals() :返回一个字典:包含的是当前作用域的所有的变量
python之内置函数python之内置函数
# b = 2
# def func():
#     a = 1
#     print(locals())
#     print(globals())
#
# func()
View Code

字符串类型代码的执行 eval, exec, compile 不建议使用***
eval: 执行字符串类型的代码,并返回最终结果

python之内置函数python之内置函数
1 s1 = '1+2+3'
2 print(s1) #1+2+3
3 print(eval(s1),type(eval(s1))) # 6 <class 'int'>
4 s2 = "{'name':'alex'}"
5 print(eval(s2),type(eval(s2)))  # {'name': 'alex'} <class 'dict'>
View Code

exec:执行字符串类型的代码,不返回结果。 代码流

python之内置函数python之内置函数
1 s3 = '''for i in range(3):
2     print(i)
3 '''
4 # print(exec(s3))
5 exec(s3)
View Code

compile: 将字符串类型的代码编译。代码对象能够通过eval或exec进行求值

 


输入输出相关 input ,print *****

  • input: 函数接受一个标准输入数据,返回为string类型
  • print:打印输出
python之内置函数python之内置函数
 1 print(*[1,2,3])  # 1 2 3
 2 def func2(*args): # 函数的定义:*聚合
 3     print(*args)  # (*(1,2,3))  函数的执行: *打散 print(1,2,3)
 4 
 5 
 6 func2(1,2,3)   # 1 2 3
 7 
 8 # sep 打印多个内容时 分隔符默认是空格
 9 print(1,2,3,sep='|')  #1|2|3
10 # end 默认换行
11 print(1, end=' ')
12 print(222)
13 # file
14 with open('t1', encoding='utf-8',mode='w') as f:
15     print(666,file=f)
View Code


内存相关hash id ***
hash:获取一个对象(可哈希对象:int,str, bool, tuple)的哈希值
id:获取该对象的内存地址
hash()
字典:会将你所有的key在内存中转化成id

python之内置函数python之内置函数
1 dic = {'name':'alex', 'sdkfdsg':'123'}
2 print(hash('name'))  # 对于字符串的内存地址为,等长度的地址
3 print(hash('hsdfjsdj'))
4 print(hash(1))
5 print(hash(888))  # 对于数字就返回888
View Code

文件操作相关 *****
  open:函数用于打开一个文件,创建一个 file 对象,相关的方法才可以调用它进行读写。
模块相关__import__ ***
  __import__:函数用于动态加载类和函数 。
帮助**
  help:函数用于查看函数或模块用途的详细说明

print(help(list))

  


调用相关***
  callable:函数用于检查一个对象是否是可调用的。
如果返回True,object仍然可能调用失败;但如果返回False,调用对象ojbect绝对不会成功。

python之内置函数python之内置函数
1 name = 'alex'
2 def func1():
3     pass
4 print(callable(name))  # False
5 print(callable(func1)) # True
View Code

查看内置属性 ***
  dir:函数不带参数时,返回当前范围内的变量、方法和定义的类型列表;带参数时,返回参数的属性、方法列表。如果参数包含方法__di
该方法将被调用。如果参数不包含__dir__(),该方法将最大限度地收集参数信息。

name = 'alex'
print(dir(name))

  

range:函数可创建一个整数对象,一般用在 for 循环中。
python2x:range(3)--->[0, 1, 2]
xrange(3)--->迭代器
python3x:range(3)--->range(0, 3) 可迭代对象
  next:内部实际使用了__next__方法,返回迭代器的下一个项目。
 iter:函数用来生成迭代器(讲一个可迭代对象,生成迭代器)。

 

进制转换:

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

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

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

print(bin(100)) # 0b1100100
print(oct(100))  # 0o144
print(oct(7))  # 0o7
print(oct(8))  # 0o10
print(hex(100))  # 0x64
print(hex(10))  # 0xa

  

数学运算:

    abs:函数返回数字的绝对值。

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

    round:保留浮点数的小数位数,默认保留整数。

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

print(divmod(12,5))
print(round(3.141592653,5))
print(pow(2,5))
print(pow(2,5,12))

  

    sum:对可迭代对象进行求和计算(可设置初始值)。

    min:返回可迭代对象的最小值(可加key,key为函数名,通过函数的规则,返回最小值)。

    max:返回可迭代对象的最大值(可加key,key为函数名,通过函数的规则,返回最大值)。

python之内置函数python之内置函数
 1 print(min([1,-2,3,-8,101], key=abs)) # 导入函数
 2 
 3 
 4 l = [('alex',1000),('taibai',18),('wuris',500)]  # 求出最小年龄的元组
 5 # 方法一:
 6 # min1 = min([i[1] for  i in l])
 7 # for i in l:
 8 #     if i[1]==min1:
 9 #         print(i)
10 
11 # 方法二:
12 def func(x):
13     return x[1]
14 print(min([('alex',1000),('taibai',18),('wuris',500)], key=func))
15 '''
16 1. 他会将iterable的每一个元素当作函数的参数传进去
17 2. 他会按照返回值去比较大小。
18 3. 返回的是遍历的元素 x
19 '''
20 
21 dic2 = {'a':3,'b':2,'c':1}
22 # def func3(x):
23 #     return dic2[x]
24 # print(min(dic2,key=func3))
25 
26 def func4(x):
27     return x[1]
28 print(min(dic2.items(),key=func4))
求最小值

 

列表和元祖(2)
list:将一个可迭代对象转化成列表(如果是字典,默认将key作为列表的元素)。
tuple:将一个可迭代对象转化成元祖(如果是字典,默认将key作为元祖的元素)。
相关内置函数(2)
reversed:将一个序列翻转,并返回此翻转序列的迭代器。 字典不能翻转*****
slice:构造一个切片对象,用于列表的切片。***

python之内置函数python之内置函数
 1 l1 = [1, 2, 4, 5, 6]
 2 print(reversed(l1))  # 得到的是迭
 3 s1 = 'qwer'
 4 for i in reversed(s1):
 5     print(i)
 6 字典不能翻转
 7 l1 = [i for i in range(10)]
 8 l2 = l1[:5:2]
 9 l3 = [i for i in range(10, 2
10 sli_obj = slice(0, 5, 2)
11 print(l3[sli_obj])
12 l4 = ['a', 'b', 'c', 'd', 'e
13 print(l4[sli_obj])
View Code

字符串相关(9)

str:将数据转化成字符串。
format:与具体数据相关,用于计算各种小数,精算等。**

python之内置函数python之内置函数
1 print(format('test', '<20'))  # 左对齐
2 print(format('test', '>20'))  # 右对齐
3 print(format('test', '^20'))  # 居中
View Code

bytes:unicode --->bytes 类型 ****

python之内置函数python之内置函数
1 a1 = '太白'
2 print(a1.encode('utf-8'))  # b'\xe5\xa4\xaa\xe7\x99\xbd'
3 print(a1.encode('utf-8').decode('utf-8'))  #太白
4 a1 = '太白'
5 b1 = bytes(a1, encoding='utf-8')
6 print(b1)
View Code

ord:输入字符找该字符编码的位置 unicode **
chr:输入位置数字找出其对应的字符 **
ascii:是ascii码中的返回该值,不是就返回他在Unicode的位置(16进制) **

python之内置函数python之内置函数
1 print(ord('a'))
2 print(ord(''))
3 print(chr(97))
4 print(chr(20013))
5 print(ascii('a'))
6 print(ascii(''))   # '\u4e2d'
View Code

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

python之内置函数python之内置函数
1 print(repr('alex, x'))
2 print(repr("{'alex': 'sb'}"))
3 '''
4 repr()  jason pickle 序列化模块 特殊字符串,python字符串的区别
5 '''
View Code

格式化输出%rr

python之内置函数python之内置函数
1 msg = 'alex 是%s 的人' % ('德高望重')
2 print(msg)
3 # 格式化输出%rr
4 msg = 'alex 是%r 的人' % ('德高望重')
5 print(msg)
View Code

dict:创建一个字典。
set:创建一个集合。
frozenset:返回一个冻结的集合,冻结后集合不能再添加或删除任何元素。
相关内置函数(8)
len:返回一个对象中元素的个数。
sorted:对所有可迭代的对象进行排序操作。*****

python之内置函数python之内置函数
 1 l1 = [1, 6, 3, 7, 7, 3, 8, 0]
 2 # l1.sort()  # 原列表改变
 3 # print(l1)
 4 print(sorted(l1))  # 形成了新列表
 5 print(l1)  # 原列表不变
 6 l2 = [(1, 1000), (2, 18), (4, 250), (3, 500)]
 7 print(sorted(l2))  # 按照元组第一个元素排序
 8 def func(x):
 9     return x[1]
10 print(sorted(l2, key=func))  # 按照元组第二个元素排序
View Code

enumerate:枚举,返回一个枚举对象。
all:可迭代对象中,全都是True才是True ***多做条件判断

any:可迭代对象中,有一个True 就是True ***多做条件判断

python之内置函数python之内置函数
1 l1 = [1, '', 5]
2 print(all(l1))
3 l2 = [1, 2, 5]
4 print(all(l2))
5 #
6 print(any(l1))
7 print(any(l2))
View Code

zip:函数用于将可迭代的对象作为参数,将对象中对应的元素打包成一个个元组,
然后返回由这些元组组成的列表。如果各个迭代器的元素个数不一致,则返回列表长度与最短的对象相同。
拉链方法 将多个iter纵向组成一个元组(以最短为准)*****

python之内置函数python之内置函数
1 l1 = [1, 2, 3, 4, 5, 6]
2 tu1 = ('alex', '太白', 'wusir', '女神',)
3 dic = {'name': '日天', 'age': 28, 'hobby': 'tea', 'job': 'IT'}
4 print(zip(l1, tu1, dic))  # 迭代器
5 for i in zip(l1, tu1, dic):
6     print(i)
View Code

filter:过滤·。迭代器 *****

python之内置函数python之内置函数
1 l1 = [i for i in range(10)]
2 def func(x):
3     return x % 2 ==0
4 print(list(filter(func, l1)))
View Code

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

python之内置函数python之内置函数
1 l1 = [1, 2, 3, 4]
2 def func(x):
3     return x**2
4 print(list(map(func, l1)))
5 print([i**2 for i in l1])
6 print([pow(i, 2) for i in l1])
View Code

 

*****

print() sum reversed

key :min max sorted filter zip

 

匿名函数 lambda 表达式 一行函数

普通函数 有且只有返回值的才可以用匿名函数进行简化。 一行函数

函数名 = lambda 函数的参数:函数的返回值
func = lambda x:x*2
def func(x):
    return x*2

  

func = lambda x,y:x+y
print(func(2,3))

# 匿名函数 不单独使用,多与内置函数结合

dic={'k1':10,'k2':100,'k3':30}
#1,利用内置函数匿名函数将dic按照值进行排序。
print(dict(sorted(dic.items(), key=lambda x:x[1])))

l1 = [1,5,7,4,8]
# 利用内置函数匿名函数 计算列表的每个数的2倍。
print(list(map(lambda x:x*2,l1)))

l2 = [5,8,11,9,15]
# 利用内置函数匿名函数,将值大于10的留下来。
print(list(filter(lambda x:x>10,l2)))


# lambda 返回值可以放三元运算
func2 = lambda x: x if x > 2 else x * 2