Python学习之路:基础知识之内置函数

Posted studying-du

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python学习之路:基础知识之内置函数相关的知识,希望对你有一定的参考价值。

1.迭代器相关

  • iter( )获取迭代器
  • next( )获取迭代对象
 1 lst = [白蛇传, 骷髅叹, 庄周仙游]
 2 
 3 it = lst.__iter__()
 4 print(it.__next__())
 5 print(it.__next__())
 6 print(it.__next__())
 7 
 8 # it = iter(lst)  # 内部封装的就是__iter__
 9 # print(next(it))
10 # print(next(it))
11 # print(next(it))  # 内部封装的就是__next__

2.内存相关

  • id( )获取到对象的内存地址
  • hash( )获取到对象的哈希值(int, str, bool, tuple)
1 lst = [白蛇传, 骷髅叹, 庄周仙游]
2 
3 print(id(lst))
4 print(hash(123))

3.数字相关

 1 print(bin(5))  # 5的2进制  0b 二进制
 2 
 3 print(oct(8))  # 0o八进制
 4 
 5 print(hex(16))  # 0x十六进制
 6 
 7 print(abs(32))  # 绝对值
 8 
 9 print(divmod(10, 3))  # 计算商和余数
10 
11 print(round(3.15))  # 四舍五入
12 
13 print(pow(2, 4))  # 求次幂
14 
15 print(sum([1, 3, 4], 6))  # 求和
16 
17 print(min([1, 3, 4]))  # 求最小值
18 
19 print(max([1, 3, 4]))  # 求最大值

4.字符串相关

 1 # 反转
 2 lst = [1, 3, 4]
 3 ll = reversed(lst)
 4 print(list(ll))
 5 
 6 # 切片
 7 lst = [马化腾, 码云, 马大帅, 马超]
 8 s = slice(1, 3, 2)  # 从1切到3,每两个出一个
 9 print(lst[s])
10 print(lst[1:3:2])
11 
12 s = 你好啊,不要睡了,我也困!
13 print(memoryview(s.encode(utf-8)))  # 函数返回给定参数的内存查看对象
14 
15 print(ord(a))  # 查看字母a的编码位置
16 print(chr(20013)) # 根据编码位置返回相应的字符 17 18 print(周杰伦说:"昆凌难看") 19 print("周杰伦说:"昆凌难看"") # 转义 20 print(repr("周杰伦说:"昆凌难看"")) # repr原样输出字符串 21 print(r"周杰伦说:"昆凌难看"") # 原样输出字符串 22 print(repr("周杰伦说")) 23 # c: 在字符串中是转义字符 24 # 换行 25 # 制表符 26 # \ 27 # " ‘ 28 # ‘ ‘

 

 1 # eval 执行字符串类型的代码
 2 
 3 s = "5 + 5"
 4 ret = eval(s)  #动态执行一个代码片段,侧重点在返回上
 5 print(ret)
 6 
 7 a = "{‘name‘:‘汪峰‘, ‘age‘: ‘48‘}"
 8 d = eval(a)  # 还原回字典,列表
 9 print(d[name])
10 
11 
12 # exec()执行一段代码
13 
14 s = "a = 10"
15 exec(s)  # 执行代码
16 print(a) # pycharm里的报错信息不一定是对的

5.逻辑相关

print(all([True, 1, 1, 1]))  # add的意思
print(any([False, 0, 1]))  # or的意思

6.其他

compile() 编译一段代码

 

1 s = "for i in range(10): print(i)"
2 c = compile(s, "", "exec")
3 exec(c)
4 
5 
6 s = "5+9"
7 c = compile(s, "", "eval")
8 ret = eval(c)
9 print(ret)

zip() 打包数据

1 lst1 = [甜蜜蜜, 往事只能回味, 难忘今宵, 枫红的回忆, 十年]
2 lst2 = [邓丽君, 韩宝仪, 李谷一, 王宝强]
3 lst3 = [2000, 3000, 5, 120]
4 a = zip(lst1, lst2, lst3)  # 水桶效用,# 十年没有对应位置的数据,略过不做记录
5 print(__iter__ in dir(a))  # 可迭代的
6 for i in a:
7     print(i)  # 十年没有对应的数据,略过不做记录

7.sorted

语法:sorted(iterable,key=None,reverse=False)  

iteralbe-->接可迭代对象

key-->指定排序规则

reverse-->是否逆序,默认为False不逆序,逆序时令为True

 1 lst = [1, 3, 2, 5, 4]
 2 lst.sort()  #列表独有的方法
 3 print(lst)
 4 
 5 # sorted是通用的方法
 6 """
 7 lst = [1,3,2,5,4]
 8 lst2 = sorted(lst)
 9 print(lst)    #原列表不会改变
10 print(lst2)   #返回的新列表是经过排序的
11 lst3 = sorted(lst,reverse=True)
12 print(lst3)   #倒叙
13 
14 """
15 dic = {1: a, 3: c, 2: b}
16 print(sorted(dic))   # 字典排序返回的就是排序后的key
17 
18 # 和函数组合使用
19 # 定义一个列表,然后根据一元素的长度排序
20 lst = [天龙八部,西游记,红楼梦,三国演义]
21 # 计算字符串的长度
22 def func(s):
23     return len(s)
24 print(sorted(lst,key=func))
25 
26 # 和lambda组合使用
27 lst = [天龙八部, 西游记, 红楼梦, 三国演义]
28 print(sorted(lst, key=lambda s: len(s)))
29 
30 lst = [{id: 1, name: alex, age: 18},
31     {id: 2, name: wusir, age:17},
32     {id: 3, name: taibai, age: 16}, ]
33 # 按照年龄对学生信息进行排序
34 print(sorted(lst, key=lambda e: e[age]))

8.filter

语法:ilter(function,iterable)

function-->用来筛选的函数,在filter中会自动的把iterable中的元素传递给function,然后根据function返回的True或者False来判断是否保留此项数据。

iterable-->可迭代对象。

 1 lst = [张无忌, 张铁林, 是可信]
 2 
 3 # 定义一个函数,这个函数在应用filter时传入
 4 
 5 def func(el):
 6     if el[0] == :
 7         return False
 8     else:
 9         return True
10 
11 
12 f = filter(func, lst)  
13 print(__iter__ in dir(f))
14 
15 for e in f:
16     print(e)

9.map

语法: map(function,iterable) 可以对可迭代对象中的每一个元素进映射,分别取执行function

1 lst = [1, 3, 4, 5]
2 
3 
4 def func(el):
5     return el ** 2
6 m = map(func, lst)  # 把后面的可迭代对象中的每一个元素传递给map函数
7 print(list(m))  # 用list输出可迭代对象

 

以上是关于Python学习之路:基础知识之内置函数的主要内容,如果未能解决你的问题,请参考以下文章

《Python学习之路 -- Python基础之切片》

学习PYTHON之路, DAY 4 - PYTHON 基础 4 (内置函数)

Python学习之路6?函数,递归,内置函数

《Python学习之路 -- Python基础之装饰器》

python开发之路-LuffyCity

PYTHON学习之路_PYTHON基础