学习Python基础--------3

集合操作

集合是一个无序的,不重复的数据组合,它的主要作用如下:

  去重,把一个列表变成集合,就自动去重

  关系测试,测试两组数据之前的交集,差集,并集等关系# Author:Zhiyu Su

list_1 = [1,4,5,7,3,6,7,9]
list_1 = set(list_1)          #转换为集合

list_2 = set([2,6,0,66,22,8,4,])
print(list_1,list_2)

‘‘‘
#交集   intersection
print(list_1.intersection(list_2))

#并集  union
print(list_1.union(list_2))

#差集 difference
print(list_1.difference(list_2))
print(list_2.difference(list_1))

#子集
list_3 = set([1,3,7])
print(list_3.issubset(list_1))  #判断是否是子集  list3是否是list1的子集
print(list_1.issuperset(list_3))   #判断是否是父集   list1是否是list3的父集

#对称差集
print(list_1.symmetric_difference(list_2))   #把俩个集合里面互相都没有的取出来
print(‘---------------------‘)

list_4 = set([5,6,7,8])
print(list_3.isdisjoint(list_4))  #判断是否有交集
#交集
print(list_1 & list_2)
#并集
print(list_2 | list_1)
#差集
print(list_1 -list_2) #in list1 but not in list
#对称差集
print(list_1 ^ list_2)
print(‘------------------‘)
#增
list_1.add(999)
list_1.update([888,777,555])
#使用remove()可以删除一项t.remove(‘h‘)

#set的长度len(s)

print(list_1.pop())#s随机删
x in s
测试 x 是否是 s 的成员  

x not in s
测试 x 是否不是 s 的成员  

s.issubset(t)
s <= t
测试是否 s 中的每一个元素都在 t 中  

s.issuperset(t)
s >= t
测试是否 t 中的每一个元素都在 s 中  

s.union(t)
s | t
返回一个新的 set 包含 s 和 t 中的每一个元素  

s.intersection(t)
s & t
返回一个新的 set 包含 s 和 t 中的公共元素  

s.difference(t)
s - t
返回一个新的 set 包含 s 中有但是 t 中没有的元素  

s.symmetric_difference(t)
s ^ t
返回一个新的 set 包含 s 和 t 中不重复的元素  

s.copy()
返回 set “s”的一个浅复制  
 

文件操作

  1. 打开文件,得到文件句柄并赋值给一个变量
  2. 通过句柄对文件进行操作
  3. 关闭文件

打开文件

#data = open(‘yesterday‘,encoding=‘utf-8‘).read()
f = open(‘yesterday2‘,‘a‘,encoding=‘utf-8‘) #文件句柄:文件的内存对象 文件名 字符集硬盘上的起始位置
#a = append 追加

f.write(‘when i was young i listen to the radio\n‘)#写入
data = f.read()           #read的读第二遍无法获取内容因为第一次读取之后光标到尾端
print(‘----read,‘,data)

f.close()   #关闭模式

文件打开模式

py3.0传输只能用二进制模式 (文件是以二进制编码不是二进制)

f = open(‘yesterday2‘,‘r‘,encoding=‘utf-8‘) #文件句柄 读f = open(‘yesterday2‘,‘w‘,encoding=‘utf-8‘) #文件句柄 写f = open(‘yesterday2‘,‘a‘,encoding=‘utf-8‘) #文件句柄 追加

f = open(‘yesterday2‘,‘r+‘,encoding=‘utf-8‘) #文件句柄 读写  读取一个文件然后在追加
f = open(‘yesterday2‘,‘w+‘,encoding=‘utf-8‘) #文件句柄 写读  创建一个文件再写入
f = open(‘yesterday2‘,‘w+‘,encoding=‘utf-8‘) #文件句柄 追加写
f = open(‘yesterday2‘,‘wb‘) #文件句柄 二进制读
f.write(‘hello binary\n‘.encode())  #二进制写入
f.close()

读取文件

print(f.readline())  #readline读取一行
for i in range(5):    #读取五行  print(f.readline())

print(f.readlines())  #文件里所有内容一列表形式打印出来

for line in f.readlines():#循环打印文件  print(line.strip())#打印时会出现空行 是读取文件时把每行的换行符打印

#循环不打印文件第10行
for index,line in enumerate(f.readlines()):   #文件全部获取到内存里 适合小文件读取    if index== 9:        print(‘----------‘)        continue    print(line.strip())
#高效版及时读写   迭代器
count = 0for line in f:       count += 1    if count == 9:        print(‘----------‘)        continue    print(line)

文件光标操作以及其他操作

f.seek(10)
f.truncate(15) #如果不写值就是清空,写值就是截断

print(f.tell())    #文件句柄指针
print(f.readline())
print(f.readline())
print(f.readline())
print(f.tell())  #读取指针,按字节算
f.seek(0)    #移动光标
print(f.readline())

print(f.encoding)  #打印文件的编码

print(f.flush())  #实时更新到硬盘里

print(f.fileno())#返回文件句柄的编号   当前打开的io接口

有关于flush 实时刷新的进度条

# Author:Zhiyu Su
import sys,time
for i in range(50):
    sys.stdout.write(‘/‘)
    sys.stdout.flush()
    time.sleep(0.1)

with语句

为了避免打开文件后忘记关闭,可以通过管理上下文with在py2.7以后同时打开多个文件

with open(‘log‘,‘r‘)as f:
  print(f.readline())

with open(‘log1‘)as obj1,open(‘log2‘)as obj2:  .....

字符编码和转码

1.在python2默认编码是ASCII, python3里默认是unicode

2.unicode 分为 utf-32(占4个字节),utf-16(占两个字节),utf-8(占1-4个字节), so utf-16就是现在最常用的unicode版本, 不过在文件里存的还是utf-8,因为utf8省空间udf-8英文连个字节中文三个字节

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

函数

函数是什么

定义: 函数是指将一组语句的集合通过一个名字(函数名)封装起来,要想执行这个函数,只需调用其函数名即可

特性:

  1. 减少重复代码
  2. 使程序变的可扩展
  3. 使程序变得易维护
时间: 2024-08-10 23:27:25

学习Python基础--------3的相关文章

Python基础课:一起学习python基础题

python最近老火了,万能开发语言,很多小伙伴们要么初学,要么从别的开发语言转过来的,如果你能把下面几道基础题不费劲的写出来,基础应该可以打80分,可以进行进阶的学习了,如果下面的题目如果做不出来,拜托不要耽误时间,赶快打好基础,勿在浮沙筑高台. 题目出给新鸟打基础的,实现答案的方法千千万,如果老鸟有更厉害的答案就不要喷了,先谢谢了. 还有新鸟先不要看答案,不要看答案,不要看答案,(重要的事情说三遍)自己先去解,用自己最简单的想法去实现,能用python自带的方法就不要自己造轮子. 好啦,开始

学习python基础规则

前面应该是记流水账的方式,毕竟学习的内容不多无法产出什么有效的内容. 这两天从开始下载Python开始学习,一路顺畅冒的问题,直到开始学习python的游戏规则,严格缩进.注释及‘’的使用等感觉还不错,多看几遍都可以记下来,但是没实操过还是有点记忆较差. python对象,也就是列表等使用规则和特征用导图的方式记忆效果不错: 后面的运算符和语句也是这样这样学习记忆: 你要问我记忆效果怎么样?我的回答是:目前只能理解其中的含义和基础规则,还谈不到复杂的应用上!这些游戏规则打算边实践边应用. 当前学

Python学习--Python基础语法

第一个Python程序 交互式编程 交互式编程不需要创建脚本文件,是通过 Python 解释器的交互模式进来编写代码. linux上你只需要在命令行中输入 Python 命令即可启动交互式编程,提示窗口如下: Window上在安装Python时已经已经安装了默认的交互式编程客户端,提示窗口如下: 在Python提示符中输入一下文本,然后按回车查看运行结果: print 'hello world'; 输出: hello world 脚本式编程 让我们来写一个简单的Python脚本,所有的Pytho

Python学习 - python基础

目录: 一. Python的安装 二. Hello World程序 三. 变量 四. 注释 五. 用户输入 六. 流控语句之 if 判断 七. 流控语句之 for 循环 八. 流控语句之 while 循环 一.  Python的安装 windows 1. 通过官网下载Python安装包: https://www.python.org/downloads/2. 安装下载的包, 一路next. 安装过程中可自定义安装路径等...3. 为计算机添加安装目录到环境变量, 以 安装路径 -> "C:

学习python基础环境

linux开发环境 一.在windows上安装vmware workstation 百度搜索vmware workstation下载并安装 在虚拟化vmware工具上安装centos系统 并使用putty远程登录centos (自带有python2.7) 二.在windows环境安装python并配置python的环境变量  PATH后追加python所在目录 三.下载一个notepad++ 或者 sublime并简单使用 # _*_ coding:utf-8 _*_ #用户登录 user=ra

学习Python基础---3.1

编程方法大概分三种 1.面向对象 2.面向过程 3.函数式编程 这三种编程方法都有自己的特点 面向对象      类    class 面向过程      过程  def 函数式编程   函数  得分 函数的定义 : 数学函数的定义:一般的,在一个变化过程中,如果有两个变量x和y,并且对于x的么一个确定的值,y都有唯一确定的值相对应,那么我们就把x称为自变量,y是x的函数.自变量x的取值范围叫做这个函数的定义域 编程语言中定义:函数式逻辑结构化和过程化的一种编程方法 #python中函数的定义方

学习Python基础--------4

python装饰器 定义:本质是函数,(装饰其他函数)就是为其他函数添加附加功能 原则:1.不能修改被装饰的函数源代码 2.不能修改被装饰的函数的调用 def test1(): pass def test2(): pass 这是两个函数想为两个函数添加打印功能,那就在写一个打印函数然后再调用 def logger(): print('logging') def test1(): pass logger() def test2(): pass logger()test1()test2() 装饰器通

学习Python基础--------5模块

主要内容 模块介绍 time和datetime模块 random os sys shutil json和picle shelve xml处理 hashlib re正则表达式 模块介绍1.定义 模块:用来从逻辑上组织python(变量,函数,类,逻辑,实现一个功能), 本质就是.py结尾的python文件(文件名test.py模块名test) 包:用来从逻辑上来组织模块的,本质就是一个目录(必须带有以个__init__.py文件) 2.导入方法 from . import test1 #从当前目录

廖雪峰网站—学习python基础知识(二)

1.list """ Python内置的一种数据类型是列表:list. list是一种有序的集合,可以随时添加和删除其中的元素. """ classmates = ['Michael', 'Bob', 'Mary'] print('classmates', classmates) print('len(classmates)= ', len(classmates)) print('classmates[0]=', classmates[0]) p