Python 给我们内置了大量功能函数, 官方文档上列出了 69 个, 有些是我们是平时开发中经常遇到的, 也有一些函数很少被用到, 这里列举被开发者使用最频繁的 8 个函数以及他们的详细用法
大家在学 python 的时候肯定会遇到很多难题, 以及对于新技术的追求, 这里推荐一下我们的 Python 学习扣 qun:784758214, 这里是 python 学习者聚集地!! 同时, 自己是一名高级 python 开发工程师, 从基础的 python 脚本到 web 开发, 爬虫, django, 数据挖掘等, 零基础到项目实战的资料都有整理. 送给每一位 python 的小伙伴! 每日分享一些学习的方法和需要注意的小细节
print()
print 函数是你学 Python 接触到的第一个函数, 它将对象输出到标准输出流, 可将任意多个对象打印出来, 函数的具体定义:
print(*objects, sep='', end='\n', file=sys.stdout, flush=False)
objects 是可变参数, 所以你可以同时将任意多个对象打印出来
- >>> print(1,2,3)
- 1 2 3
默认使用空格分隔每个对象, 通过指定 sep 参数可以使用逗号分隔
- >>> print(1,2,3, sep=',')
- 1,2,3
对象默认输出的是标准输出流, 你也可以将内容保存到文件中
- >>> print(1,2,3, sep=',', file=open("hello.txt", "w"))
- isinstance()
可以用? isinstance? 函数判断某个对象是否属于某个类的实例, 函数的定义
isinstance(object, classinfo)
classinfo 既可以是单个类型对象, 也可以是由多个类型对象组成的元组, 只要 object 的类型是元组中任意一个就返回 True, 否则返回 False
- >>> isinstance(1, (int, str))
- True
- >>> isinstance("", (int, str))
- True
- >>> isinstance([], dict)
- False
- range()
range 函数是个工厂方法, 用于构造一个从 [start, stop) (不包含 stop) 之间的连续的不可变的整数序列对象, 这个序列功能上和列表非常类似, 函数定义:
range([start,] stop [, step]) -> range object
start 可选参数, 序列的起点, 默认是 0
stop 必选参数, 序列的终点(不包含)
step 可选参数, 序列的步长, 默认是 1, 生成的元素规律是?
r[i] = start + step*i
生成 0~5 的列表
- >>>
- >>> range(5)
- range(0, 5)
- >>>
- >>> list(range(5))
- [0, 1, 2, 3, 4]
- >>>
默认从 0 开始, 生成 0 到 4 之间的 5 个整数, 不包含 5,step 默认是 1, 每次都是在前一次加 1
如果你想将某个操作重复执行 n 遍, 就可以使用 for 循环配置 range 函数实现
- >>> for i in range(3):
- ... print("hello python")
- ...
- hello python
- hello python
- hello python
步长为 2
- >>> range(1, 10, 2)
- range(1, 10, 2)
- >>> list(range(1, 10, 2))
- [1, 3, 5, 7, 9]
起点从 1 开始, 终点 10, 步长为 2, 每次都在前一个元素的基础上加 2, 构成 1 到 10 之间的奇数.
enumerate()
用于枚举可迭代对象, 同时还可以得到每次元素的下表索引值, 函数定义:
enumerate(iterable, start=0)
例如:
- >>> for index, value in enumerate("python"):
- ... print(index, value)
- ...
- 0 p
- 1 y
- 2 t
- 3 h
- 4 o
- 5 n
index 默认从 0 开始, 如果显式指定参数 start, 下标索引就从 start 开始
- >>> for index, value in enumerate("python", start=1):
- ... print(index, value)
- ...
- 1 p
- 2 y
- 3 t
- 4 h
- 5 o
- 6 n
如果不使用 enumerate 函数, 要获取元素的下标索引, 则需要更多的代码:
- def my_enumerate(sequence, start=0):
- n = start
- for e in sequence:
- yield n, e
- n += 1
- >>> for index, value in my_enumerate("python"): ? ?print(index, value)0 p1 y2 t3 h4 o5 n
- len
len 用于获取容器对象中的元素个数, 例如判断列表是否为空可以用 len 函数
- >>> for index, value in my_enumerate("python"):
- print(index, value)
- 0 p
- 1 y
- 2 t
- 3 h
- 4 o
- 5 n
并不是所有对象都支持 len 操作的, 例如:
- >>> len([1,2,3])
- 3
- >>> len("python")
- 6
- >>> if len([]) == 0:
- pass
除了序列对象和集合对象, 自定义类必须实现了?__len__? 方法能作用在 len 函数上
reversed()
reversed() 反转序列对象, 你可以将字符串进行反转, 将列表进行反转, 将元组反转
- >>> list(reversed([1,2,3]))
- [3, 2, 1]
- open()
open 函数用于构造文件对象, 构建后可对其进行内容的读写操作
open(file, mode='r', encoding=None)
读操作
- # 从当前路径打开文件 test.txt, 默认以读的方式
- >>>f = open("test.txt")
- >>>f.read()
- ...
有时还需要指定编码格式, 否则会遇到乱码
f = open("test.txt", encoding='utf8')
写操作
- >>>f = open("hello.text", 'w', encoding='utf8')
- >>>f.write("hello python"))
文件中存在内容时原来的内容将别覆盖, 如果不想被覆盖, 直接将新的内容追加到文件末尾, 可以使用? a? 模式
- f = open("hello.text", 'a', encoding='utf8')
- f.write("!!!")
- sorted()
sroted 是对列表进行重新排序, 当然其他可迭代对象都支持重新排放, 返回一个新对象, 原对象保持不变
- >>> sorted([1,4,2,1,0])
- [0, 1, 1, 2, 4]
来源: http://www.bubuko.com/infodetail-3065303.html