Python基础知识大全:集合用法、文件操作、字符编码转换、函数

开发 后端
人工智能时代,该学学python了!既然确定学习Python了,那么就要一步一步从基础开始学习嘛~!

[[253867]]

人工智能时代,该学学python了!

既然确定学习Python了,那么就要一步一步从基础开始学习嘛~!

下面我们来看看基础知识

集合(Set)及其函数

集合是一个无序的、无重复元素的序列。

  1. list = {1, 3, 6, 5, 7, 9, 11, 3, 7} # 定义集合方式一 
  2. list1 = set([1, 3, 6, 5, 7, 9, 11, 3, 7]) # 定义集合方式二 
  3. list2 = set() # 定义一个空集合 
  4. print(list1, list) # 打印后可看到,集合中的元素已自动去重 
  5. print(3 in list) # 判断一个元素是否在集合中,返回bool值 
  6. print(20 not in list1) # 判断一个元素是否不在集合中,返回bool值 
  7. list1.add(99) # 新增元素 
  8. list1.update([10, 20, 30, 2]) # 新增多项 
  9. list1.remove(3) # 删除一个元素,若元素不存在则报错 
  10. print(list1.discard(8)) # 删除一个元素,若元素不存在则不做任何操作 
  11. print(len(list1)) # 计算集合中元素的个数 
  12. print(list1.pop()) # 从集合中随机弹出一个元素 
  13. list.clear() # 清空集合 

集合的运算

  1. list1 = set([1, 3, 6, 5, 7, 9, 11, 3, 7]) 
  2. list2 = set([2, 4, 6, 8, 3, 5]) 
  3. print(list1, list2) 
  4. # 交集 
  5. print(list1.intersection(list2)) 
  6. print(list1 & list2) 
  7. # 并集 
  8. print(list1.union(list2)) 
  9. print(list1 | list2) 
  10. # 差集 
  11. print(list1.difference(list2)) 
  12. print(list1 - list2) 
  13. # 对称差集 
  14. print(list1.symmetric_difference(list2)) 
  15. print(list1 ^ list2) 
  16. # 是否为子集 是否为父集 
  17. list3 = set([9, 11]) 
  18. print(list3.issubset(list1)) 
  19. print(list1.issuperset(list3)) 
  20. # 若两个集合的交集为空 返回true 
  21. list4 = set([20, 30]) 
  22. print(list1.isdisjoint(list4)) 
  23. print(list1.isdisjoint(list2)) 

文件(File)操作

在开发中经常会有读写文件的需求,相关的代码实现如下:

文件的打开模式

Python基础知识大全:集合用法、文件操作、字符编码转换、函数

 

文件的读操纵、写操作、追加操作、按行读取文件

  1. read 直接读文件全文 
  2. f = open('test''r', encoding='utf-8') # 文件句柄 
  3. data = f.read() 
  4. print(data) 
  5. # write 向文件中写 
  6. f = open('test1''w', encoding='utf-8'
  7. f.write('我爱北京天安门, 
  8. 天安门上太阳升') 
  9. # append 在文件***追加内容 
  10. f = open('test1''a', encoding='utf-8'
  11. f.write('呀呼嘿'
  12. # loop 按行读取文件 
  13. # high bigger 将文件作为迭代器 读一行打印一行 内存中只缓存一行 
  14. f = open('test''r', encoding='utf-8'
  15. count = 0 
  16. for l in f: 
  17.  if count == 9: 
  18.  print('----------'
  19.  count += 1 
  20.  continue 
  21.  print(l.strip()) 
  22.  count += 1 
  23. # low loop 将文件内容全部读取至内存,效率低 
  24. f = open('Sonnet''r', encoding='utf-8'
  25. for index, line in enumerate(f.readlines()): 
  26.  if index == 9: 
  27.  print('------------'
  28.  continue 
  29.  print(line.strip()) 

文件的函数

  1. f = open('test''r', encoding='utf-8') # 文件句柄 读模式打开文件 
  2. print(f.tell()) # 获取当前光标位置 
  3. print(f.readline()) 
  4. print(f.readline()) 
  5. print(f.tell()) 
  6. print(f.readline()) 
  7. f.seek(10) # 跳转光标到第10个字符 
  8. print(f.readline()) 
  9. print(f.encoding) # 获取文件编码 
  10. print(f.fileno()) # i don't know what it is 
  11. print(f.isatty()) # 判断文件是否是tty终端 
  12. print(f.readable()) # 判断文件是否是可读 
  13. print(f.writable()) # 判断文件是否是可写 
  14. print(f.seekable()) # 判断文件是否是可跳转光标 (tty不可跳转 
  15. f.flush() # 当用写模式打开文件时 并不是写一句系统就会调用一次io 若需要及时刷新硬盘中的文件内容 可以调用该函数 
  16. f.close() # 关闭文件 
  17. print(f.closed) # 判断文件是否关闭 

文件的修改

  1. # 文件的修改 直接修改文件本身比较困难 可以将修改写入另一个文件中 如有需求可以再写回文件本身 
  2. f = open('test''r', encoding='utf-8'
  3. f_new = open('test.bak''w', encoding='utf-8'
  4. for line in f: 
  5.  if '我曾千万次梦见' in line: 
  6.  line = line.replace('我曾千万次梦见''我不想千万次梦见'
  7.  f_new.writelines(line) 
  8. f.close() 
  9. f_new.close() 

一个进度条实例 用于理解flush函数的机制 该实例可以实现进度条效果

  1. import sys 
  2. import time 
  3. f = open('Sonnet1''w', encoding='utf-8') # 文件句柄 写模式打开文件 会新建一个文件 若同名文件存在 则直接覆盖 
  4. for i in range(10): 
  5.  sys.stdout.write('#'
  6.  sys.stdout.flush() 
  7.  time.sleep(0.2) 

字符编码转换

字符编码转换最重要的一点就是,切记unicode是编码之间的中转站,若unicode不是目标编码或者原始编码,那么任何两个编码相互转换都需要经过unicode(见下图)。

需要注意的是,python的默认编码是ASCII,python3的默认编码是unicode。

在python3中encode,在转码的同时还会把string变成bytes类型,decode在解码的同时还会把bytes变回string。

Python基础知识大全:集合用法、文件操作、字符编码转换、函数 

函数

函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段。

函数能提高应用的模块性,和代码的重复利用率。python提供了许多内建函数(如print());也可以自己创建函数,即用户自定义函数。

定义一个有自己想要功能的函数,需要遵循以下规则:

  • 函数代码块以 def 关键词开头,后接函数标识符名称和圆括号 ()
  • 任何传入参数和自变量必须放在圆括号中间,圆括号之间可以用于定义参数。
  • 函数的***行语句可以选择性地使用文档字符串——用于存放函数说明。
  • 函数内容以冒号起始,并且缩进。
  • return [表达式] 结束函数,选择性地返回一个值给调用方。不带表达式的return相当于返回 None。

待补充知识:函数的参数、变量作用域、递归、高阶函数。

责任编辑:庞桂玉 来源: 今日头条
相关推荐

2010-07-16 11:22:31

Perl

2021-03-13 10:14:59

Python定义函数Python基础

2010-07-23 13:16:07

Perl

2022-03-30 08:37:32

Python函数编程自定义函数

2010-03-18 15:16:37

Linux操作系统

2010-03-18 14:52:05

Linux操作系统

2010-03-18 15:07:13

Linux操作系统

2023-07-30 09:50:51

Bash字符串

2010-03-31 13:08:20

Oracle 基础知识

2009-08-24 17:07:09

C# 泛型

2010-04-13 18:24:14

Unix操作系统

2018-02-01 14:15:00

Python函数

2019-07-18 16:32:06

Python函数数据

2011-03-31 14:46:29

MySQL数据库备份

2010-04-13 14:00:10

Unix文件

2021-01-23 12:47:19

MySQL数据库Go语言

2010-04-07 15:59:29

Unix操作系统

2024-01-07 19:54:51

2021-05-27 07:12:19

Python函数装饰器

2010-01-25 11:55:41

MySQL数据库备份数据库安全
点赞
收藏

51CTO技术栈公众号