inrange函数_Python初学者必备的常⽤内置函数
本⽂纲要
Python 作为⼀门⾼级编程语⾔,为我们提供了许多⽅便易⽤的内置函数,节省了不少开发应⽤的时间。⽬前,Python 3.7 共有 69 个内置函数,⼀些是我们⽿熟能详的函数,另⼀些却不是很常见,这⾥主要介绍⼀些新⼿必备函数及其⽤法。
为了便于说明,我把这些内置函数粗略地分为六⼤类:
输⼊输出print() open() input()
迭代相关enumerate() zip()
序列属性sum() max() min() len()
操作序列sorted() reversed() range()
python新手代码练习
对象属性dir() id() isinstance() type()
映射类型eval() map() slice()
输⼊输出
print 函数将对象输出⾄控制台
print(*objects, sep=' ', end='', file=sys.stdout, flush=False)
*objects 为可变参数,可以接受任意多个对象。sep 参数表⽰输出对象之
间的分隔符,默认为空格。
>>> print('Python', 'Python')Python Python
分隔符为'*':
>>> print('Python', 'Python', sep = '*')Python*Python
格式化输出字符串的三种⽅式:
name = 'Python'fmt1 = f'Python:{name}'fmt2 = 'Python:{}'.format(name)fmt3 = 'Python:%s' %nameprint(fmt1)print(fmt2)print(fmt3)
open 函数打开⽂件并返回⽂件对象
open(file, mode='r', buffering=-1,encoding=None, errors=None, newline=None, closefd=True, opener=None)
file 为⽂件地址,mode 为打开⽂件的模式,默认为 'r',表⽰读取⽂件,常⽤的还有:'w' 表⽰写⼊⽂件、'b' 表⽰以⼆进制形式打开。
常⽤上下⽂管理器 with 打开⽂件,f.read( ) 读取全部内容,f.readline() 读取⼀⾏内容。
with open('', 'r')PythonPythonPythonPythonPythonPythonPythonPython as f:  text1 = f.read()with open('', 'r') as f:  text2 = ''  line = f.readline()  while 有时候,我们读取⽂件还会遇到乱码问题,可以指定编码格式:
当⽂件中有中⽂的时候,使⽤ 'utf-8' 编码会导致异常:UnicodeDecodeError: 'utf-8' codec can't decode byte 0xb8 in position 7:
invalid start byte
with open('', 'r',      encoding='utf-8') as f:  text1 = f.read()
这时候,我们可以尝试 'gb2312' 或者 'gbk' 编码来打开含有中⽂字符的⽂件。这时,便可以成功打开⽂件。
with open('', 'r',      encoding='gb2312') as f:  text1 = f.read()with open('', 'w',      encoding='gbk') as f:  f.write('Python')
input 函数获取控制台输⼊
input([prompt])
input 可接受字符串为参数,提⽰⽤户输⼊。
>>> s = input('Python:')Python:Python>>> s'Python'
迭代相关
enumerate 函数返回元素的序号与对应值
enumerate(iterable, start=0)
iterable 参数表⽰可迭代对象,start 参数是元素序号的起点,默认为 0。
enumerate 函数的等价形式如下:
def enumerate(sequence, start=0): n = start for elem in sequence:    yield n, elem    n += 1seq = ['P', 'y', 't', 'h', 'o', 'n']for i, elem in enumerate(seq):  print(i, elem zip 函数⽤于同时迭代多个对象
zip(*iterables)
*iterable 可以接受任意多个可迭代对象
a = ["**", '**', '**']
b = ['Python', 'Python', 'Python']
c = aprint('#'*20)for i, j, k in zip(a, b, c):  print(i, j, k)print('#'*20)
序列属性
序列最⼤值:max
序列最⼩值:min
序列的和: sum
序列长度: len
基本⽤法:向这四个函数中传⼊序列,可以得到对应属性。
import randomrandom.seed(21)seq = [random.randint(0, 100) for i in range(10)]print(seq)# [21, 53, 88, 53, 81, 36, 61, 27, 60, 65]print(max(seq))# 88print(min(se 作为内置函数,可以直接传⼊⽣成器(不需要括号)作为参数:
import randomrandom.seed(21)num = max(random.randint(0, 100) for i in range(10))print(num)# 88
可传⼊ key 参数,作为⽐较⼤⼩的依据,相当于把序列中每⼀个元素 item 先传⼊函数 key 中,将函数返回的数值作为判断对象⼤⼩的依
据。
def foo(x):  return 1. / xmax(seq, key = foo)# 21
对于我们⾃定义的类型,必须实现特殊⽅法,才能进⾏ len 等操作。
__len__ 代表:len 操作,__eq__ 代表:= 操作,__lt__ 代表 < 操作。
class foo:  def __init__(self, num, seq):      self.num = num      self.seq = seq          def __len__(self):      return len(self.seq)          def __eq__(self, other):      re 操作序列
range 函数⽣成序列
range(start, stop[, step])
start 可选参数,默认为 0 ,表⽰序列起点
stop 必选参数,表⽰序列终点,不包括终点
step 可选参数,序列的步长,默认为 1
>>> range(6)range(0, 6)>>> list(range(6))[0, 1, 2, 3, 4, 5]>>> list(range(0, 6, 2))[0, 2, 4]
range 函数⽣成的对象可以迭代,和列表很类似,_ 表⽰废弃变量(为了避免污染变量环境):
for _ in range(3): print('Python')
reversed 函数可以将序列逆置
reversed 可以将序列逆置,包括元组、字符串、列表。对于列表和字符串的逆置,使⽤ list[::-1] 或者slice()更加⽅便。
import randomrandom.seed(21)seq = [random.randint(0, 100) for i in range(10)]print(seq)# [21, 53, 88, 53, 81, 36, 61, 27, 60, 65]reversed(seq)print(list(re
字符串逆置:
>>> a = 'Python'>>> a[::-1]'Python'>>> ''.join(reversed('Python'))'Python'
sorted 函数可以对序列进⾏排序
sorted(iterable, *, key=None, reverse=False)
sorted 不同于 list.sort 操作(原地排序),返回⼀个新的有序序列,原序列保持不变。* 表⽰仅限关键字参数(keyword-only),也就是
说,key、reverse 参数只能通过关键字传参,⽽不能通过位置传参。reverve 参数表⽰逆置操作,key 与之前 len 中的 key 参数类似,是
函数排序的依据。
>>> sorted([9, 6, 2, 3, 6])[2, 3, 6, 6, 9]
对象属性
dir 函数返回属性列表
id 函数返回对象地址
isinstance 判断对象的类型
type 返回对象的类型
class foo:  pass>>> dir(foo)['__class__','__delattr__','__dict__','__dir__',......'__str__','__subclasshook__','__weakref__']# 创建实例>>> f = foo()>>> type(foo)__m 映射类型
eval 解除引号的束缚
map 应⽤函数于单个对象
slice ⽣成切⽚
eval 可以去除字符串的单引号,从⽽获取引号内部内容。下⾯的演⽰展⽰了,如何使⽤ eval 函数获取字符串中的字典:
>>> info = '{"name": "LiHua", "age": 12}'>>> eval(info){'name': 'LiHua', 'age': 12}>>> info_dict = eval(info)>>> type(info_dict)dict
map 将传进来的函数应⽤于序列中的每⼀个元素,并返回迭代器。
map(function, iterable, ...)
举例来说,map 就是对 seq 列表中的每⼀个元素 item 进⾏ int 操作(int(item))。匿名函数同理,就是对序列中的每⼀个元素进⾏加 2 的操作。
>>> seq = [1.5, 4.5, 9.1]>>> list(map(int, seq))[1, 4, 9]>>> list(map(lambda x: x + 2, seq))[3.5, 6.5, 11.1]
slice 函数为切⽚操作命名,使得切⽚操作更加清晰明了。
slice(start, stop[, step])
start 为起点,stop 为终点,step 为步长。使⽤该操作,使得截取有规律的⽂本内容变得很轻松。特别是长⽂本,使⽤ slice 函数更加清晰易懂。
>>> text = ' Python'>>> name = slice(0, 6)>>> text[name]Python >>> content = slice(6, 16)>>> text[content]Python
这篇⽂章到此结束了,⼤家可以趁热打铁,多多练习。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。