python 3.6.5 3.6.9_python 内置函数 3.6版本

本文档提供了多个 Python 内置函数的使用示例,包括 bytearray 的不同初始化方式、callable 判断对象是否可调用、chr 转换整数为 ASCII 字符、classmethod 创建类方法、cmp 对象比较、compile 字符串编译、complex 创建复数等。
摘要由CSDN通过智能技术生成

>>>bytearray()

bytearray(b'')

>>> bytearray([1,2,3])

bytearray(b'\x01\x02\x03')

>>> bytearray('runoob', 'utf-8')

bytearray(b'runoob')

>>>

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

对于函数, 方法, lambda 函式, 类, 以及实现了 __call__ 方法的类实例, 它都返回 True。

>>>callable(0)

False

>>> callable("runoob")

False

>>> def add(a, b):

... return a + b

...

>>> callable(add) # 函数返回 True

True

>>> class A: # 类

... def method(self):

... return 0

...

>>> callable(A) # 类返回 True

True

>>> a = A()

>>> callable(a) # 没有实现 __call__, 返回 False

False

>>> class B:

... def __call__(self):

... return 0

...

>>> callable(B)

True

>>> b = B()

>>> callable(b) # 实现 __call__, 返回 True

True

chr() 用一个范围在 range(256)内的(就是0~255)整数作参数,返回一个对应的字符。返回值是当前整数对应的ascii字符。

>>>printchr(0x30),chr(0x31),chr(0x61)# 十六进制

01a

classmethod修饰符对应的函数不需要实例化,不需要 self 参数,但第一个参数需要是表示自身类的 cls 参数,可以来调用类的属性,类的方法,实例化对象等。返回函数的类方法

#!/usr/bin/python

# -*- coding: UTF-8 -*-

class A(object):

bar = 1

def func1(self):

print ('foo')

@classmethod

def func2(cls):

print ('func2')

print (cls.bar)

cls().func1() # 调用 foo 方法

A.func2() # 不需要实例化

func2

1

foo

cmp(x,y)函数用于比较2个对象,如果 x < y 返回 -1, 如果 x == y 返回 0, 如果 x > y 返回 1。 返回值: 如果 x < y 返回 -1, 如果 x == y 返回 0, 如果 x > y 返回 1。

compile()函数将一个字符串编译为字节代码。

>>> str = "3 * 4 + 5"

>>> a = compile(str,'','eval')

>>> eval(a)

17

complex()函数用于创建一个值为 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)

delattr 函数用于删除属性。

delattr(x, 'foobar') 相等于 del x.foobar

dict()函数用于创建一个字典。

>>>dict() # 创建空字典

{}

>>> 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}

>>>

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

>>>dir() # 获得当前模块的属性列表

['__builtins__', '__doc__', '__name__', '__package__', 'arr', 'myslice']

>>> dir([ ]) # 查看列表的方法

pythondivmod()函数把除数和余数运算结果结合起来,返回一个包含商和余数的元组(a // b, a % b)。

>>>divmod(7,2)

(3,1)

enumerate() 函数用于将一个可遍历的数据对象(如列表、元组或字符串)组合为一个索引序列,同时列出数据和数据下标,一般用在 for 循环当中。

Python 2.3. 以上版本可用,2.6 添加 start 参数。

>>>seasons = ['Spring', 'Summer', 'Fall', 'Winter']

>>> list(enumerate(seasons))

[(0, 'Spring'), (1, 'Summer'), (2, 'Fall'), (3, 'Winter')]

>>> list(enumerate(seasons, start=1)) # 小标从 1 开始

[(1, 'Spring'), (2, 'Summer'), (3, 'Fall'), (4, 'Winter')]

>>>seq = ['one', 'two', 'three']

>>> for i, element in enumerate(seq):

... print i, seq[i]

...

0 one

1 two

2 three

>>>

eval()函数用来执行一个字符串表达式,并返回表达式的值。

>>> eval( '3 * x' )

21

>>> eval('pow(2,2)')

4

execfile()函数可以用来执行一个文件。

>>>execfile('hello.py')

runoob

file() 函数用于创建一个 file 对象,它有一个别名叫 open(),更形象一些,它们是内置函数。参数是以字符串的形式传递的。

>>>f = file('test.txt')

>>> f.read()

'RUNOOB1\nRUNOOB2\n'

filter() 函数用于过滤序列,过滤掉不符合条件的元素,返回由符合条件元素组成的新列表。

该接收两个参数,第一个为函数,第二个为序列,序列的每个元素作为参数传递给函数进行判,然后返回 True 或 False,最后将返回 True 的元素放到新列表中。

def is_odd(n):

return n % 2 == 1

newlist = filter(is_odd, [1, 2, 3, 4, 5, 6, 7, 8, 9, 10])

print(newlist)

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

Python2.6 开始,新增了一种格式化字符串的函数 str.format(),它增强了字符串格式化的功能。

基本语法是通过 {} 和 : 来代替以前的 % 。

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

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

'hello world

>>> "{1} {0} {1}".format("hello", "world") # 设置指定位置

'world hello world'

print("网站名:{name}, 地址 {url}".format(name="菜鸟教程", url="www.runoob.com"))

# 通过字典设置参数

site = {"name": "菜鸟教程", "url": "www.runoob.com"}

print("网站名:{name}, 地址 {url}".format(**site))

# 通过列表索引设置参数

my_list = ['菜鸟教程', 'www.runoob.com']

print("网站名:{0[0]}, 地址 {0[1]}".format(my_list)) # "0" 是必须的

class AssignValue(object):

def __init__(self, value):

self.value = value

my_value = AssignValue(6)

print('value 为: {0.value}'.format(my_value)) # "0" 是可选的

frozenset([iterable])返回一个冻结的集合,冻结后集合不能再添加或删除任何元素。iterable -- 可迭代的对象,比如列表、字典、元组等等。

>>>a = frozenset(range(10)) # 生成一个新的不可变集合

>>> a

frozenset([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])

>>> b = frozenset('runoob')

>>> b

frozenset(['b', 'r', 'u', 'o', 'n']) # 创建不可变集合

>>>

getattr()函数用于返回一个对象属性值。

>>>class A(object):

... bar = 1

...

>>> a = A()

>>> getattr(a, 'bar') # 获取属性 bar 值

1

globals()函数会以字典类型返回当前位置的全部全局变量。

>>>a='runoob'

>>> print(globals()) # globals 函数返回一个全局变量的字典,包括所有导入的变量。

{'__builtins__': , '__name__': '__main__', '__doc__': None, 'a': 'runoob', '__package__': None}

hasattr()函数用于判断对象是否包含对应的属性。

>>>class A(object):

... bar = 1

...

>>> a = A()

>>> getattr(a, 'bar') # 获取属性 bar 值

1

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

>>>hash('test') # 字符串

2314058222102390712

>>> hash(1) # 数字 原样返回

1

>>> hash(str([1,2,3])) # 集合

1335416675971793195

>>> hash(str(sorted({'1':1}))) # 字典

7666464346782421378

help()函数用于查看函数或模块用途的详细说明。

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

x -- 10进制整数

id([object])函数用于获取对象的内存地址。#object -- 对象。

>>>a = 'runoob'

>>> id(a)

4531887632

python input() 相等于eval(raw_input(prompt)),用来获取控制台的输入。

raw_input() 将所有输入作为字符串看待,返回字符串类型。而 input() 在对待纯数字输入时具有自己的特性,它返回所输入的数字的类型( int, float )。

int()函数用于将一个字符串或数字转换为整型。

isinstance() 函数来判断一个对象是否是一个已知的类型,类似 type()。

isinstance() 与 type() 区别:

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

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

如果要判断两个类型是否相同推荐使用 isinstance()。

issubclass()方法用于判断参数 class 是否是类型参数 classinfo 的子类。

classA:

passclassB(A):passprint(issubclass(B,A))# 返回 True

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

以下是 iter() 方法的语法:

iter(object[,sentinel])

参数

object -- 支持迭代的集合对象。

sentinel -- 如果传递了第二个参数,则参数 object 必须是一个可调用的对象(如,函数),此时,iter 创建了一个迭代器对象,每次调用这个迭代器对象的__next__()方法时,都会调用 object。

打开模式

返回值

迭代器对象。

实例

>>>lst=[1,2,3]>>>foriiniter(lst):

...print(i)...12

3

Pythonlen()方法返回对象(字符、列表、元组等)长度或项目个数。

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

注:元组与列表是非常类似的,区别在于元组的元素值不能修改,元组是放在括号中,列表是放于方括号中。

locals() 函数会以字典类型返回当前位置的全部局部变量。

对于函数, 方法, lambda 函式, 类, 以及实现了 __call__ 方法的类实例, 它都返回 True。

返回字典类型的局部变量。

实例

以下实例展示了 locals() 的使用方法:

>>>defrunoob(arg):# 两个局部变量:arg、z...z=1...print(locals())...

>>>runoob(4){'z':1,'arg':4}# 返回一个名字/值对的字典

long()函数将数字或字符串转换为一个长整型。

x -- 字符串或数字。

base -- 可选,进制数,默认十进制。

>>>long()0L>>>long(1)1L>>>long('123')123L

map() 函数语法:

map(function,iterable,...)

>>>defsquare(x):# 计算平方数...returnx**2...

>>>map(square,[1,2,3,4,5])# 计算列表各个元素的平方[1,4,9,16,25]>>>map(lambdax:x**2,[1,2,3,4,5])# 使用 lambda 匿名函数[1,4,9,16,25]# 提供了两个列表,对相同位置的列表数据进行相加>>>map(lambdax,y:x+y,[1,3,5,7,9],[2,4,6,8,10])[3,7,11,15,19]

max()方法返回给定参数的最大值,参数可以为序列。

min()方法返回给定参数的最小值,参数可以为序列。

next()返回迭代器的下一个项目。

oct()函数将一个整数转换成8进制字符串。

pow()方法返回 xy(x的y次方) 的值。

python range() 函数可创建一个整数列表,一般用在 for 循环中。

python raw_input() 用来获取控制台的输入。

raw_input()将所有输入作为字符串看待,返回字符串类型。

注意:input() 和 raw_input() 这两个函数均能接收 字符串 ,但 raw_input() 直接读取控制台的输入(任何类型的输入它都可以接收)。而对于 input() ,它希望能够读取一个合法的 python 表达式,即你输入字符串的时候必须使用引号将它括起来,否则它会引发一个 SyntaxError 。

除非对 input() 有特别需要,否则一般情况下我们都是推荐使用 raw_input() 来与用户交互。

注意:python3 里 input() 默认接收到的是 str 类型。

reduce() 函数会对参数序列中元素进行累积。

函数将一个数据集合(链表,元组等)中的所有数据进行下列操作:用传给reduce中的函数 function(有两个参数)先对集合中的第 1、2 个元素进行操作,得到的结果再与第三个数据用 function 函数运算,最后得到一个结果。

>>> 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()用于重新载入之前载入的模块。

>>>import sys

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

'ascii'

>>> reload(sys) # 使用 reload

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

>>> sys.getdefaultencoding()

'utf8'

>>>

reload会重新加载已加载的模块,但原来已经使用的实例还是会使用旧的模块,而新生产的实例会使用新的模块;

repr()函数将对象转化为供解释器读取的形式。返回一个对象的 string 格式。

>>> dict = {'runoob': 'runoob.com', 'google': 'google.com'};

>>> repr(dict)

"{'google': 'google.com', 'runoob': 'runoob.com'}"

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值