Python 内置函数

 

abs(x)

函数返回x的绝对值

abs(-45)        #      45
abs(100.12)     #      100.12

all(iterable)

判断给定的可迭代参数 iterable 中的所有元素是否都为 TRUE,如果是返回 True,否则返回 False。(元素除了是 0、空、FALSE 外都算 TRUE)

all(['a', 'b', 'c', 'd'])     # True
all(['a', 'b', '', 'd'])      # False
all([0, 1,2, 3])             #False

any(iterable)

判断给定的可迭代参数 iterable 中的所有元素至少一个为True或非零,如果是返回 True,否则返回 False。(元素除了是 0、空、FALSE 外都算 TRUE)

any(['a', 'b', 'c', 'd'])  #True 
any(['a', 'b', '', 'd'])   #True 
any([0, '', False])        #False

chr(integer)

unichr(i)

返回字符编码在[0 255]中对应的字符。

print(chr(0x30), chr(0x31), chr(0x61))   # 十六进制:0 1 a
print(chr(48), chr(49), chr(97))         # 十进制:0 1 a

compile(source, filename, mode[, flags[, dont_inherit]])

将一个字符串编译为字节代码:

  • source -- 字符串
  • filename -- 代码文件名称,如果不是从文件读取代码则传递一些可辨认的值
  • mode -- 指定编译代码的种类。可以指定为 exec, eval, single

str = "for i in range(0,10): print(i)" 
c = compile(str,'','exec')   # 编译为字节代码对象 
exec(c) #0 1 2 3 4 5 6 7 8 9

 

str = "3 * 4 + 5"
a = compile(str,'','eval')
eval(a)    # 17

complex([real[,image]])创建一个值为 real + imag * j 的复数或者转化一个字符串为复数。如果第一个参数为字符串,则不需要指定第二个参数complex(1, 2) #(1 + 2j)
complex(1)    # (1 + 0j)
complex("1")  # (1 + 0j)
 
# 注意:这个地方在"+"号两边不能有空格,也就是不能写成"1 + 2j",应该是"1+2j",否则会报错
>>> complex("1+2j") # (1 + 2j)
dict(**kwarg)用于创建一个字典

dict(a='a', b='b', t='t')     # {'a': 'a', 'b': 'b', 't': 't'}


dict(zip(['one', 'two', 'three'], [1, 2, 3]))   # 映射函数方式来构造字典{'three': 3, 'two': 2, 'one': 1} 


dict([('one', 1), ('two', 2), ('three', 3)])    # 可迭代对象方式来构造字典{'three': 3, 'two': 2, 'one': 1}

divmod(x, y)

返回一个包含商和余数的元组(a // b, a % b)

divmod(7, 2)         #(3, 1)
divmod(1+2j,1+0.5j)  #((1+0j), 1.5j)

enumerate(sequence,[start=0])将一个可遍历的数据对象组合为一个索引序列,同时列出数据和数据下标

list(enumerate(seasons, start=1))       
# [(1, 'Spring'), (2, 'Summer'), (3, 'Fall'), (4, 'Winter')]

eval(expression)执行一个字符串表达式,并返回表达式的值

x = 7
eval( '3 * x' )     # 21
eval('pow(2,2)') #4

exec执行储存在字符串或文件中的Python语句,相比于 eval可以执行更复杂的 Python 代码。

x = 10

expr = """

          z = 30

          sum = x + y + z

           print(sum) """

def func():

          y = 20

          exec(expr)

           exec(expr, {'x': 1, 'y': 2})

           exec(expr, {'x': 1, 'y': 2}, {'y': 3, 'z': 4})

func()

filter(f, [x1, x2, x3, x4])

接收一个函数和一个序列,把传入的函数依次作用于每个序列中元素,然后根据返回值是True还是False决定保留还是丢弃该元素。 

def is_odd(n):
      return n % 2 == 1

list(filter(is_odd, [1, 2, 4, 5, 6, 9, 10, 15])) # 一个list中,删掉偶数,只保留奇数

 

def not_empty(s):
    return s and s.strip() 
list(filter(not_empty, ['A', '', 'B', None, 'C', '  '])) # 把一个序列中的空字符串删掉
 

hash(obj)

用于获取取一个对象(字符串或者数值等)的哈希值

hash('test')            # 字符串:2314058222102390712
hash(str([1,2,3]))      # 集合:1335416675971793195

hex(x) 将10进制整数转换成16进制,以字符串形式表示

hex(255)     #'0xff'

id(obj)

根据object返回唯一的整数标识

a=1
id(a)       #1873936880

input(prompt)

从标准输入返回字符串

 

isinstance(obj, cls)

判断一个对象是否是一个已知的类型,类似 type()

isinstance() 与 type() 区别:

  • type() 不会认为子类是一种父类类型,不考虑继承关系。

  • isinstance() 会认为子类是一种父类类型,考虑继承关系。

isinstance (2,int)        #True
isinstance (2,(str,int,list))    # 是元组中的一个返回True

map(f, iter1, iter2, ...)

根据提供的函数对指定序列做映射。返回包含每次 function 函数返回值的新列表

map(lambda x: x ** 2, [1, 2, 3, 4, 5])  #[1, 4, 9, 16, 25]
 
map(lambda x, y: x + y, [1, 3, 5, 7, 9], [2, 4, 6, 8, 10]) #[3, 7, 11, 15, 19]

iter();next()

返回迭代器的下一个项目

it = iter([1, 2, 3, 4, 5])
while True:
    try:
        x = next(it)
        print(x)
    except StopIteration:
        break

oct(x)

将一个整数转换成8进制字符串。

oct(10)    #'012'

ord(char)

它以一个字符(长度为1的字符串)作为参数,返回对应的 ASCII 数值,或者 Unicode 数值ord('a')    #97

pow(x, y)

返回x的y次方的值:pow() 参数作为整型,而 math 模块则会把参数转换为 float

math.pow(100, 2)    #10000.0
pow(100, 2)             #10000
print(*object,sep=' ',end='\n',file=sys.stdout)

 

  • objects -- 复数,表示可以一次输出多个对象。输出多个对象时,需要用 , 分隔。
  • sep -- 用来间隔多个对象,默认值是一个空格。
  • end -- 用来设定以什么结尾。默认值是换行符 \n,我们可以换成其他字符串。
  • file -- 要写入的文件对象。

print("aaa""bbb")  # aaabbb

print("aaa","bbb") # aaa bbb

 

print("www","baidu","com",sep=".") #www.baidu.com

range(start,stop[,step])

创建一个整数列表

range(0, 30, 5)  # 步长为 5 [0, 5, 10, 15, 20, 25]

reduce(f, iterable[,initializer])

函数会对参数序列中元素进行累积,f(f(f(x1, x2), x3), x4)

from functools import reduce

def add(x, y) :

     return x + y

reduce(add, [1,2,3,4,5]) # 计算列表和:1+2+3+4+5 15 

 

reduce(lambda x, y: x+y, [1,2,3,4,5]) # 使用 lambda 匿名函数 15

reload(module)

重新载入之前载入的模块:原来已经使用的实例还是会使用旧的模块,而新生产的实例会使用新的模块;

from imp import reload

import sys

sys.getdefaultencoding()         # 当前默认编码 'ascii'

reload(sys)

sys.setdefaultencoding('utf8')   # 设置编码 sys.getdefaultencoding()          # 'utf8'

list.reverse()

用于反向列表中元素,并改变实例本身

a = [1,2,3]

a.reverse()

a   # [3,2,1]

reversed(sequence)返回序列的反序迭代器,一般用在for循环

reversed([1,2,3])  #<list_reverseiterator object >

 

 for i in reversed([1,2,3]):

     print(i) # 3,2,1

round(x[,n])

返回浮点数x的四舍五入值

round(80.23456,3)   #80.235

round(100.000065,3) #100.0

sorted(iterable[,key[,reverse]]])

  • iterable -- 可迭代对象。
  • key -- 主要是用来进行比较的元素,只有一个参数,具体的函数的参数就是取自于可迭代对象中,指定可迭代对象中的一个元素来进行排序。
  • reverse -- 排序规则,reverse = True 降序 , reverse = False 升序(默认)

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

  • sort 是应用在 list 上的方法,sorted 可以对所有可迭代的对象进行排序操作。
  • list 的 sort 方法返回的是对已经存在的列表进行操作,无返回值,而内建函数 sorted 方法返回的是一个新的 list,而不是在原来的基础上进行的操作。

a = [5,7,6,3,4,1,2]

b = sorted(a) # 保留原列表

a           # [5, 7, 6, 3, 4, 1, 2]

b          #[1, 2, 3, 4, 5, 6, 7]

 

L=[('b',2),('a',1),('c',3),('d',4)]

sorted(L, key=lambda x:x[1])  # 利用key [('a', 1), ('b', 2), ('c', 3), ('d', 4)]

zip([iterable, ...])

将可迭代的对象作为参数,将对象中对应位置的元素打包成一个个元组,然后返回的是一个对象。如需展示列表,需手动 list() 转换。

a = [1,2,3]

b = [4,5,6]

c = [4,5,6,7,8]

zipped = zip(a,b)  # 打包为元组的列表 [(1, 4), (2, 5), (3, 6)]

zip(a,c)  # 元素个数与最短的列表一致 [(1, 4), (2, 5), (3, 6)]

zip(*zipped)  # 与 zip 相反,*zipped 可理解为解压,返回二维矩阵式 [(1, 2, 3), (4, 5, 6)]

 

nums = ['flower','flow','flight']
for i in zip(*nums):
    print(i)

('f', 'f', 'f')
('l', 'l', 'l')
('o', 'o', 'i')
('w', 'w', 'g')

open 文件操作

open(name[, mode[, buffering]])
  • name : 一个包含了你要访问的文件名称的字符串值。
  • mode : mode 决定了打开文件的模式:只读,写入,追加等。所有可取值见如下的完全列表。这个参数是非强制的,默认文件访问模式为只读(r)。
模式描述
r以只读方式打开文件。文件的指针将会放在文件的开头。这是默认模式。
rb以二进制格式打开一个文件用于只读。文件指针将会放在文件的开头。这是默认模式。
r+打开一个文件用于读写。文件指针将会放在文件的开头。
rb+以二进制格式打开一个文件用于读写。文件指针将会放在文件的开头。
w打开一个文件只用于写入。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。
wb以二进制格式打开一个文件只用于写入。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。
w+打开一个文件用于读写。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。
wb+以二进制格式打开一个文件用于读写。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。
a打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。
ab以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。
a+打开一个文件用于读写。如果该文件已存在,文件指针将会放在文件的结尾。文件打开时会是追加模式。如果该文件不存在,创建新文件用于读写。
ab+以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。如果该文件不存在,创建新文件用于读写。

file 对象方法

  • file.read([size]):从文件读取指定的字节数,如果未给定或为负则读取所有。

  • file.readline():读取整行,包括 "\n" 字符。

  • file.readlines([size]) :返回包含size行的列表, size 未指定则返回全部行。

  • for line in f: print line :通过迭代器访问。

  • f.write("hello\n"):如果要写入字符串以外的数据,先将他转换为字符串。

  • f.tell():返回一个整数,表示当前文件指针的位置(就是到文件头的比特数)。

  • f.seek(偏移量,[起始位置]):设置文件当前位置

    • 偏移量: 单位为比特,可正可负
    • 起始位置: 0 - 文件头, 默认值; 1 - 当前位置; 2 - 文件尾
  • f.close() 关闭文件

format 格式化输出

format 函数可以接受不限个参数,位置可以不按顺序。

"{} {}".format("hello", "world")    # 不设置指定位置,按默认顺序 'hello world'
"{0} {1}".format("hello", "world")  # 设置指定位置 'hello world' 
"{1} {0} {1}".format("hello", "world")  # 设置指定位置  'world hello world'

也可以设置参数:


print("网站名:{name}, 地址 {url}".format(name="python教程", url="www.python.com")) 
# 通过字典设置参数
site = {"name": "python教程", "url": "www.python.com"}
print("网站名:{name}, 地址 {url}".format(**site))
# 通过列表索引设置参数
my_list = ['python教程', 'www.python.com']
print("网站名:{0[0]}, 地址 {0[1]}".format(my_list))  # "0" 是必须的

也可以向 str.format() 传入对象:

class AssignValue(object):
    def __init__(self, value):
        self.value = value
my_value = AssignValue(6)
print('value 为: {0.value}'.format(my_value))  # "0" 是可选的

# value 为: 6

数字格式化

1. {}操作符

print("{:.2f}".format(3.1415926)) #3.14

数字

格式

输出

描述

3.1415926

{:.2f}

3.14

保留小数点后两位

3.1415926

{:+.2f}

+3.14

带符号保留小数点后两位

-1

{:+.2f}

-1.00

带符号保留小数点后两位

2.71828

{:.0f}

3

不带小数

5

{:0>2d}

05

数字补零 (填充左边, 宽度为2)

5

{:x<4d}

5xxx

数字补x (填充右边, 宽度为4)

10

{:x<4d}

10xx

数字补x (填充右边, 宽度为4)

1000000

{:,}

1,000,000

以逗号分隔的数字格式

0.25

{:.2%}

25.00%

百分比格式

1000000000

{:.2e}

1.00e+09

指数记法

13

{:10d}

        13

右对齐 (默认, 宽度为10)

13

{:<10d}

13

左对齐 (宽度为10)

13

{:^10d}

    13

中间对齐 (宽度为10)

11

'{:b}'.format(11)
'{:d}'.format(11)
'{:o}'.format(11)
'{:x}'.format(11)
'{:#x}'.format(11)
'{:#X}'.format(11)
1011
11
13
b
0xb
0XB

进制

  • ^, <, > 分别是居中、左对齐、右对齐,后面带宽度, : 号后面带填充的字符,只能是一个字符,不指定则默认是用空格填充。
  • + 表示在正数前显示 +,负数前显示 -;  (空格)表示在正数前加空格
  • b、d、o、x 分别是二进制、十进制、八进制、十六进制。

我们可以使用大括号 {} 来转义大括号

print ("{} 对应的位置是 {{0}}".format("python"))
# runoob 对应的位置是 {0}

2. % 操作符

%[(name)][flags][width].[precision]typecode
  •  (name) 为命名
  •  flags 可以有 +,-,' '或 0。+ 表示右对齐。- 表示左对齐。' ' 为一个空格,表示在正数的左侧填充一个空格,从而与负数对齐。0 表示使用 0 填充。
  •  width 表示显示宽度
  •  precision 表示小数点后精度

以下是类型码typecode:

%s    字符串 (采用str()的显示)
%r    字符串 (采用repr()的显示)
%c    单个字符
%b    二进制整数
%d    十进制整数
%i    十进制整数
%o    八进制整数
%x    十六进制整数
%e    指数 (基底写为e)
%E    指数 (基底写为E)
%f    浮点数
%F    浮点数,与上相同%g    指数(e)或浮点数 (根据显示长度)
%G    指数(E)或浮点数 (根据显示长度)
%%    字符"%"
print("%6.3f" % 2.3)# 2.300,2.300长度为5,故前面有一空格
print("%+10x" % 10)#  +a,x 为表示 16 进制,显示宽度为 10,前面有 8 个空格
print("%-5x" % -10)# -a ,%-5x 负号为左对齐,显示宽度为 5,故 -a 后面有 3 个空格

List列表

list() 方法用于将元组转换为列表

添加元素

list.append('ducati')    # 添加
list.insert(1,'ducati1')  # 插入

删除元素del list[0]  # 删除
e = list.pop(0)  # 删除
list.remove('ducati')    # 删除
获取索引位置

list.index('hello')      # 0

反转排序

cars.sort()    #   永久性排序
cars.sort(reverse=True)  # 永久性排序
cars.reverse()  # 永久反转

 

sorted(cars)    # 临时排序
sorted(cars,reverse=True)
sorted([36, 5, -12, 9, -21], key=abs) # [5, 9, -12, -21, 36]
sorted(['bob', 'about', 'Zoo', 'Credit'], key=str.lower) # ['about', 'bob', 'Credit','Zoo']

reversed(cars)  #临时反转

合并与复制list1.extend(list2)  # 列表合并
list2= list1[:] # 列表复制
转为字符串

number = [2,"hello",4,5]
print(",".join(map(str,number)))

 

dict字典

get()函数

字典有一个get()方法,它有两个参数:要取得其值的键,以及如果该键不存在时,返回的备用值。因为 picnicItems 字典中没有'egg'键,get()方法返回的默认值是 0

picnicItems = {'apples': 5, 'cups': 2}
'I am bringing ' + str(picnicItems.get('cups', 0)) + ' cups.' # 'I am bringing 2 cups.'
'I am bringing ' + str(picnicItems.get('eggs', 0)) + ' eggs.' # 'I am bringing 0 eggs.

字符计数器

word = 'brontosaurus'
d = dict()
for c in word:
    d[c] = d.get(c,0)+1
print(d) 
# {'a': 1, 'r': 2, 't': 1, 's': 2, 'b': 1, 'n': 1, 'o': 2, 'u': 2}

遍历字典

for key, value in user_0.items():   # 遍历字典
for key in user_0.keys():   # 遍历键
for key in sorted(user_0.keys()):   # 按顺序遍历键
for value in user_0.values():   # 遍历值

字典排序

dic = {"apple":10,
       "orange":20,
       "banana":5,
       "rotten tomato":1}
#   x[0]:第一个元素,第二个元素:x[1]
print(sorted(dic.items(), key=lambda x:x[1]))
print(sorted(dic.items(), key=lambda x:x[0]))
print(sorted(dic, key=dic.get))

合并字典

d1 = {'a':1}
d2 = {'a':3,'b':2}

d3 = {**d1,**d2}
d4 = dict(d1.items()|d2.items())
d1.update(d2)
# {'b': 2, 'a': 3}

Set集合

集合运算

#交集
ret = x.intersection(y)
ret = x & y
# 并集
ret = x.union(y)
ret = x | y
# 差集
ret = x.difference(y)
ret = x - y

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值