做简单的网站首页,做sorry动图的网站,广西网络推广公司哪家好,手机连接电脑弹窗wordpresspython学习之最常用的内置函数
Python 内置函数总共有70余个#xff08;通常把内置类也统称为内置函数#xff09;#xff0c;覆盖面广#xff0c;功能强大。不过#xff0c;对于初学者在初级阶段#xff0c;掌握下面几个函数是当务之急。
(1) 控制台输出函数 print() …python学习之最常用的内置函数
Python 内置函数总共有70余个通常把内置类也统称为内置函数覆盖面广功能强大。不过对于初学者在初级阶段掌握下面几个函数是当务之急。
(1) 控制台输出函数 print()
print() 应该是每一个初学者首先接触到的函数也一定用得非常熟练。我们知道print() 函数一次可以打印多个对象打印对象可以是任意类型。此外print() 函数还有4个默认参数灵活运用方能得心应手。 print(*objects, sep’ ‘, end’\n’, filesys.stdout, flushFalse) objects – 零个或多个输出对象。输出多个对象时需要用半角逗号分隔sep – 用来间隔多个对象默认值是一个空格end – 用来设定以什么结尾。默认值是换行符 \n我们可以换成其他字符串file – 要写入的文件对象flush – 输出是否被缓存通常决定于 file但如果 flush 关键字参数为 True流会被强制刷新
(2) 控制台输入函数 input()
input() 函数常用于程序执行过程中接收用户输入的参数用户敲击回车键函数即返回用户输入的字符串但不包括回车符。因input() 函数本身具备IO阻塞的功能所以也可用于作为程序调试断点来使用。input() 函数没有默认参数但接受一个字符串作为输入提示信息。 nums input(请输入3个整数中间以空格分割回车结束输入)
请输入3个整数中间以空格分割回车结束输入3 4 5 6print(nums) # 请注意nums是一个字符串不是整数
3 4 5 6[int(item) for item in nums.split()] # 这样才可以把输入的字符串变成3个整数
[3, 4, 5, 6](3) 可迭代对象长度函数 len()
len() 函数也是初学者接触最早、最容易记住的函数之一len 是 length 简写该函数用于返回列表、元祖、字典、字符串等可迭代对象的长度或称为元素数量。至于什么是可迭代对象暂时可以不用深究随着学习的深入会逐步理解的。
(4) 序列生成器函数 range()
通常我们是在学习 for 循环的时候认识的 range() 函数。最初py2时代range() 函数返回的是一个列表因为太耗内存所以进入新时代py3时代之后range() 函数不再返回列表而是range类了。
(5) 格式化输出函数 format()
虽然这里提到的是 format() 函数但大多数情况下我更喜欢用%去做格式化输出。读者可以通过下面的例子体会一下两种格式化方法的差异。 下面给出用%去做格式化输出的常用符号速查表。
符号功能%d%i转换为带符号的十进制形式的整数%o转换为带符号的八进制形式的整数%x%X转换为带符号的十六进制形式的整数%e转化为科学计数法表示的浮点数e 小写%E转化为科学计数法表示的浮点数E 大写%f%F转化为十进制形式的浮点数%g智能选择使用 %f 或 %e 格式%G智能选择使用 %F 或 %E 格式%c格式化字符及其 ASCII 码%r使用 repr() 将变量或表达式转换为字符串%s使用 str() 将变量或表达式转换为字符串
(6) 排序函数 sorted()
排序是比较常见的需求。排序函数 sorted() 不会改变原有的数据结构而是返回一个新的排序结果。这一点和列表类的 sort() 方法不同。列表类的 sort() 方法改变了列表自身且无返回值。 sorted([3,2,7,1,5]) # 一维列表排序
[1, 2, 3, 5, 7]sorted([3,2,7,1,5], reverseTrue) # 一维列表排序逆序输出
[7, 5, 3, 2, 1](7) 文件操作函数 open()
文件读写是程序员最基本的技能之一必须熟练掌握。好在Python的文件操作非常简单很容易上手。通常文件读写时不管正常还是非正常结束一定要关闭文件——这需要捕获异常并进行处理。为了简化代码使之更加优雅我习惯使用 with - as 来操作文件。
打开文件有多种模式详见下表
mode参数参数概述参数功能r / rt只读模式默认只能获取文本内容不能写入rb二进制只读模式使用二进制获取文本内容 通常用于获取图片视频等非文本r读写追加用于读写文件指针放在内容开头rb二进制读写追加用于二进制读写文件指针放在内容开头w / wt只写模式用于写入内容会将原本的内容覆盖w只写追加用于写入内容会在原本的内容之后续写wb二进制只写模式用于写入二进制内容会将原本的内容覆盖 通常用于写入图片视频等非文本wb二进制只写追加用于写入二进制内容会在原本的内容之后续写 通常用于写入图片视频等非文本a / at读写追加用于读取或写入内容写入会在原本的内容之后续写 没有文本则创建文本ab二进制读写追加用于读取或写入二进制内容写入会在原本内容之后续写 没有文本则创建文本a读写追加用于读取或写入内容写入会在原本的内容之后续写 没有文本则创建文本ab二进制读写追加用于读取或写入二进制内容写入会在原本内容之后续写 没有文本则创建文本
下面的例子演示了如何将数据写入到csv文件又如何读出csv文件中的数据。 with open(rd:\csv_data.csv, w) as fp: # 写csv文件for line in [[0.468,0.975,0.446],[0.718,0.826,0.359]]:ok fp.write(%s\n%,.join([str(item) for item in line])) with open(rd:\csv_data.csv, r) as fp:print(fp.read())0.468,0.975,0.446
0.468,0.975,0.446 with open(rd:\csv_data.csv, r) as fp: # 读csv文件for line in fp.readlines():print(%s - %s - %s%tuple(line.strip().split(,)))0.468 - 0.975 - 0.446
0.468 - 0.975 - 0.446
12345678910111213141516(8) 类型相关函数 type()/isinstance()
对于初学者来说运行代码时出了问题是最头疼的事儿根本不知道发生了什么又该从何处入手。如果不是缩进错误或者找不到模块一类的初级错误那么查看变量的类型也许是最值得一试的调试方法。type() 就是用于查看对象类型的函数。 type(5)
class inttype(ssdf)
class strtype([])
class listtype(print)
class builtin_function_or_methodtype(range(5))
class range
12345678910但是有很多同学了解了 type() 之后喜欢用它来做类型判断这是不正确的。用于类型判断的函数是isinstance()请看 a [3,4,5]b (x, y)c dict()d pythonisinstance(a, list)
Trueisinstance(b, list)
Falseisinstance(c, (dict,str))
Trueisinstance(d, (dict,str))
Trueisinstance(b, (dict,str))
False
1234567891011121314(9) 特殊功能函数 enumerate()/zip()/map()/chr()/ord()
遍历列表、字符串等可迭代对象的时候如果我们想同时得到元素的索引序号enumerate() 函数就可以派上用场了。enumerate() 返回可迭代对象的索引和元素组成的元组的迭代对象所以不用担心该函数的效率和资源消耗情况放心使用好了。 for index, item in enumerate([True, False, None]):print(index, item, sep-)0-True
1-False
2-Nonefor index, item in enumerate(xyz):print(index, item, sep-)0-x
1-y
2-z
123456789101112zip() 函数也有一个经典的应用场景同时遍历多个列表。 a [x,y,z]b [3,4,5]for k, v in zip(a,b):print(k, v, sep-)x-3
y-4
z-5
12345678map() 函数可以理解为对列表中的每一个元素做一次计算这个计算由函数参数指定。这个作为参数的函数可以是普通的函数也可以是 lambda 匿名函数。我们以对列表中各元素开三次方为例演示一下man() 函数的用法。 def extract(x): # 开3次方return pow(x, 1/3) result map(extract, [7,8,9]) # 使用函数extract()对列表元素逐一开3次方返回一个迭代对象list(result) # 将迭代对象转为list
[1.912931182772389, 2.0, 2.080083823051904]list(map(lambda x:pow(x, 1/3), [7,8,9])) # 使用lambda函数更简洁
[1.912931182772389, 2.0, 2.080083823051904]
12345678chr() 函数返回 ascii 编码值对应的字符ord() 函数返回字符的 ascii 编码值 二者是互逆的操作。 chr(65)
Aord(Z)
90for i in range(26):print(chr(65i), sep, end)ABCDEFGHIJKLMNOPQRSTUVWXYZ
12345678(10) 数学函数 sum()/max()/min()/abs()/pow()/divmod()/round()
Python 内置的数学计算与统计函数不多但基本够用。不过如果你需要对数函数和三角函数的话你恐怕得导入 manth 模块标准模块或者其他模块了比如 numpy 等。需要提醒大家的是很多教科书说做开方运算就得导入 manth 模块其实内置函数 pow() 是既可以乘方也可以开方的。