一、数字类型

1)整数 int 类型

    - bit_length()  # 查询以二进制表示一个数字的值所需的位数
- int.from_bytes(bytes,byteorder) # 返回给定字节数组所表示的整数。
- int.to_bytes(length,byteorder) # 返回表示整数的字节数组。

2)浮点数  float 类型

    - is_integer # 如果浮点数是整数,则返回True
collections:Python内建的一个集合模块,提供了许多有用的集合类。
- Counter # 是一个简单的计数器,例如,统计字符出现的个数:
- OrderedDict # 可以实现一个FIFO(先进先出)的dict,当容量超出限制时,先删除最早添加的Key:
- deque # 是为了高效实现插入和删除操作的双向列表,适合用于队列和栈:
- defaultdict # 使用dict时,如果引用的Key不存在,就会抛出KeyError。如果希望key不存在时,返回一个默认值,就可以用defaultdict:

二、集合

1)集合的意义,使用。便于计算

pythoners = ['张大炮','李二毛','王麻子','Lina','user']
linuxers = ['wxx','sbsb','逗比','张三疯','Lina','user']
pl = []
for name in pythoners:
if name in linuxers:
pl.append(name)
print(pl)

可以理解为2列表的交集运算。集合可以专门计算这样的类型

1)集合的运算

1、 |        合集          ==>  intersection
2、 & 交集 ==> union
3、 - 差集 ==> difference
4、^ 对称差集 ==> symmetric_difference
5、>,>= 父集 ==> issuperset
6、<,<= 子集
7、 == 等于运算
8、判断是否有共同部分    ==> isdisjoint  。有False,没有Frue
pythoners = {'张大炮','李二毛','王麻子','Lina','user'}
linuxers = {'wxx','sbsb','逗比','张三疯','Lina','user'}
# 求交集
print(pythoners & linuxers)
print(pythoners.intersection(linuxers))
# 求所有的元素,并集
print(pythoners | linuxers)
print(pythoners.union(linuxers))
# 差集
print(pythoners - linuxers)
print(pythoners.difference(linuxers))
# 对称差集
print(pythoners ^ linuxers)
print(pythoners.symmetric_difference(linuxers))
print(len(pythoners ^ linuxers))
# 等于运算 ==
s1 = {,,}
s2 = {,,}
print(s1 == s2)
# 父集
s1 = {,,}
s2 = {,}
print(s1 >= s2)
print(s1.issuperset(s2))
# 子集
print(s2 <= s1)
print(s2.issubset(s1))
# 判断是否有共同部分,有False,没有true
print(s1.isdisjoint(s2))

2)集合的方法

update          是否更新原数据
add 添加元素
discard 删除元素,没有返回值,不存在不报错
remove 删除元素,没有返回值,不存在报错
pop 随机删除,有返回值
clear 清空集合
s1 = {'a','b','c'}
s2 = {'b','d','f'}
s1.difference_update(s2) # 差集的结果赋值给了s1
print(s1)
s1 = {'a','b','c'}
s1.add('d')
print(s1)
s1.discard('aaa') # 删除,没有返回值,不存在不报错
print(s1) s1.pop() # 删除,随机删除,有返回值
s1.remove('d') # 删除,没有返回值,不存在报错
print(s1) s1 = {'a','b','c'}
s2 = {'b','d','f'}
s1.update({,,})
print(s1)
# 了解的内容
# s1.clear()
# s1.isdisjoint()
# s1.issubset()
# s1.issuperset() # 例题,去除下面的重复的内容
names = ['user','sbsb','Lina','Lina','user']
print(list(set(names)))
#小结:用集合去重,局限性很强
# 、不能保证原数据类型的顺序
# 、原数据中包含的元素必须全部为不可变类型

3)集合的特征

1、不可变类型
2、元素不能重复
3、无序

4)例题,去除下面列表重复的内容

l=[
{'name':'egon','age':18,'sex':'male'},
{'name':'alex','age':73,'sex':'male'},
{'name':'egon','age':20,'sex':'female'},
{'name':'egon','age':18,'sex':'male'},
{'name':'egon','age':18,'sex':'male'},
]
l=[
{'name':'egon','age':,'sex':'male'},
{'name':'alex','age':,'sex':'male'},
{'name':'egon','age':,'sex':'female'},
{'name':'egon','age':,'sex':'male'},
{'name':'egon','age':,'sex':'male'},
]
# 版本一
# s = set()
# new_l = []
# for d in l:
# values = (d['name'],d['age'],d['sex'])
# #print(values)
# if values not in s:
# s.add(values)
# new_l.append(d)
# print(new_l) # 版本二
# s = []
# new_l = []
# for d in l:
# if d not in s:
# s.append(d)
# new_l.append(d)
# print(new_l)
# 版本三
s = []
for d in l:
if d not in s:
s.append(d)
print(s)

示例

5)集合常用操作归纳 set 类型

    - set1 = set({, , 'barry'}) # 创建集合
- set2 = {, , 'barry'} # 创建集合
- add # 将元素添加到集合中。如果元素已经存在,这不起作用。
- del set1 # 删除集合- update # 迭代增加
- clear # 删除此集合中的所有元素
- remove # 删除一个元素
- pop # 随机删除一个元素
- issubset # 子集
- issuperset # 超集
- union # 并集。(| 或者 union)
- difference # 差集。(- 或者 difference)
- intersection # 交集。(& 或者 intersection)
- isdisjoint # 如果两个集合有一个空交点,则返回True
- intersection_update # 用它自己和另一个交集更新一个集合。
- difference_update # 删除另一个集合中本集合所拥有的所有元素
- symmetric_difference # 反交集。 (^ 或者 symmetric_difference)

三、字符编码

四、文件操作

1)文件操作的关键字 open

f=open(r'D:\oldboyedu\manth-01\day3\a.txt',mode='r',encoding='utf-8')  # 需要转义,前面需要加 r
date = f.read()
print(date)
f.close() # 回收操作系统打开的文件

对一个文件操作,结束时,需要close。但这样往往会忘记写。即用下面个方法

with open(r'D:\oldboyedu\manth-01\day3\a.txt',mode='r',encoding='utf-8') as f:
data = f.read()
print(data)
with open('a.txt',mode='r',encoding='utf-8') as f,\
open('set1.py',mode='r',encoding='utf-8') as f1:
data = f.read()
print(data)

2)文件的读模式 r

with open('a.txt',mode='r',encoding='utf-8') as f:
# print('第一次\n',f.read()) # read一次性把文件读取完,指针已经指向了文件末尾
# print('第二次', f.read()) # print(f.readline(),end='') # 一行一行的读取
# print(f.readline(),end='') for line in f:
print(line,end='') # print(f.readlines()) #读取一行,变成列表 ['你好\n', '哈哈哈给\n', '好的啊']

3)文件的写模式 w

# w 模式
# 、文件存在,则清空
# 、文件不存在,则创建
with open('b.txt',mode='w',encoding='utf-8') as f:
# f.write('你好啊,张山\n')
# f.write('你好啊,SB\n') info = ['你好啊,张山\n','你好啊,SB\n','圆润的走开,SB\n']
# for line in info:
# f.write(line)
f.writelines(info)
f.write('a\nb\nc\n')

4)只追加写模式  a

# a : 只追加写模式,
# 、文件不存在如果不存在则创建
# 、文件存在,指针直接移动到文件末尾
with open('b.txt',mode='a',encoding='utf-8') as f:
f.write('55555\n')
f.write('494\n')

5)控制文件读写单位的2种模式

1、t : 默认的模式,也就被省略了。 但局限性强,只能用于文本文件,像图片,视频,就无法改模式
2、b : 二进制模式,该模式下读写但都是bytes。该模式下不能指定encoding参数
二进制读取图片,视频
二进制读取图片,视频
with open('1.jpg',mode='rb') as f:
a = f.read()
print(a) # 二进制读取文本文件,解码获取显示内容
with open('a.txt',mode='rb') as f:
a = f.read()
print(a)
print(a.decode('utf-8'))
二进制写入文本文件需要编码存入文本文件
with open('a.txt',mode='wb') as f:
f.write('你好aagagagagwg啊sb\n'.encode('utf-8'))
f.write('你才wwwwwwsb\n'.encode('utf-8'))

6)复制文件

import sys,os
# print(sys.argv)
src_file_path = sys.argv[]
if not os.path.isfile(src_file_path):
print('文件不存在')
sys.exit()
dst_file_path = sys.argv[] with open(r'%s' %src_file_path,'rb') as read_f,\
open(r'%s' %dst_file_path,'wb') as write_f:
for line in read_f:
write_f.write(line)

7)文件内容修改

# 第一种覆盖写
# with open('a.txt','rt+',encoding='utf-8') as f:
# f.seek() # 移动的单位是字节
# f.write('[你是逗比]') # 覆盖写 # 第二种,读取文件的内容,修改字符串。第二次打开,以被赋值的字符串写入
# 缺陷,文件过大,机器卡死 # with open('a.txt','r',encoding='utf-8') as f:
# data = f.read()
# print(data)
# data=data.replace('武大郎','张全蛋')
# print(data)
# with open('a.txt','w',encoding='utf-8') as f:
# f.write(data) # 第二种,一行一行的写入新文件,删除旧文件,重命名新文件
import os
with open('b.txt','r',encoding='utf-8') as f,\
open('a.txt.swap','w',encoding='utf=8') as f_new:
for line in f:
if '武藤兰' in line:
line = line.replace('张全蛋','李狗蛋')
f_new.write(line)
os.remove('b.txt')
os.rename('a.txt.swap','b.txt')
												

python之初级篇2的更多相关文章

  1. python 面向对象初级篇

    Python 面向对象(初级篇) 概述 面向过程:根据业务逻辑从上到下写垒代码 函数式:将某功能代码封装到函数中,日后便无需重复编写,仅调用函数即可 面向对象:对函数进行分类和封装,让开发" ...

  2. Python 正则表达式入门(初级篇)

    Python 正则表达式入门(初级篇) 本文主要为没有使用正则表达式经验的新手入门所写. 转载请写明出处 引子 首先说 正则表达式是什么? 正则表达式,又称正规表示式.正规表示法.正规表达式.规则表达 ...

  3. Python开发【第七篇】:面向对象 和 python面向对象(初级篇)(上)

    Python 面向对象(初级篇)   51CTO同步发布地址:http://3060674.blog.51cto.com/3050674/1689163 概述 面向过程:根据业务逻辑从上到下写垒代码 ...

  4. 【转】Python 面向对象(初级篇)

    [转]Python 面向对象(初级篇) 51CTO同步发布地址:http://3060674.blog.51cto.com/3050674/1689163 概述 面向过程:根据业务逻辑从上到下写垒代码 ...

  5. 转载 Python 正则表达式入门(初级篇)

    Python 正则表达式入门(初级篇) 本文主要为没有使用正则表达式经验的新手入门所写.转载请写明出处 引子 首先说 正则表达式是什么? 正则表达式,又称正规表示式.正规表示法.正规表达式.规则表达式 ...

  6. python_way ,day7 面向对象 (初级篇)

    面向对象 初级篇   python支持 函数 与 面向对象   什么时候实用面向对象? 面向对象与函数对比 类和对象 创建类 class 类名 def 方法名(self,xxxx) 类里面的方法,只能 ...

  7. Python开发【第七篇】:面向对象 和 python面向对象进阶篇(下)

    Python开发[第七篇]:面向对象   详见:<Python之路[第五篇]:面向对象及相关> python 面向对象(进阶篇)   上一篇<Python 面向对象(初级篇)> ...

  8. Python 面向对象 (进阶篇)

    <Python 面向对象(初级篇)>文章介绍了面向对象基本知识: 面向对象是一种编程方式,此编程方式的实现是基于对 类 和 对象 的使用 类 是一个模板,模板中包装了多个“函数”供使用(可 ...

  9. python正则表达式入门篇

    文章来源于:https://www.cnblogs.com/chuxiuhong/p/5885073.html Python 正则表达式入门(初级篇) 本文主要为没有使用正则表达式经验的新手入门所写. ...

随机推荐

  1. 关于JavaScript全局作用域和函数作用域的拙见

    在类c的语言中,用{}引起来的部分称为块级作用域,而在JS中没有块级作用域 作用域:一个变量作用的范围:中Js中一共有两种作用: 全局作用域 - 直接编写在script标签中的JS代码,都在全局作用域 ...

  2. centos 6.9 NTP基准时间服务器配置

    时间服务器端 yum install ntp -y vim /etc/ntp.conf 增加允许客户端访问 restrict 192.168.0.0 mask 255.255.0.0 nomodify ...

  3. node搭建简单的本地服务器

    首先要安装node,方法很多,可以去网上找找,可以直接去官网下载安装,新版本的node是自带npm的: 安装好以后,新建一个js文件,名为server.js: let http = require(' ...

  4. Codeforces Beta Round #74 (Div. 2 Only)

    Codeforces Beta Round #74 (Div. 2 Only) http://codeforces.com/contest/90 A #include<iostream> ...

  5. Matches Game

    Matches Game http://poj.org/problem?id=2234 Time Limit: 1000MS   Memory Limit: 65536K Total Submissi ...

  6. Ionic后退刷新

    版本:Angular 1.5.3.Ionic1.3.2 一 禁用缓存,全页面刷新. 每次前进/ 后退时,控制器都会执行. 1 AngularJS ui-router路由禁用缓存 var app = a ...

  7. 在别家网站上执行自己的js代码(谷歌浏览器)(谷歌扩展程序)

    @参考文章1  @参考文章2 日前针对一家投标网站进行了程序干预,且一定程度的干预成功,把方法给大家提取分享出来,感谢上述两篇博文 测试网站:百度https://www.baidu.com/ 测试步骤 ...

  8. AngularJS——第7章 依赖注入

    第7章 依赖注入 AngularJS采用模块化的方式组织代码,将一些通用逻辑封装成一个对象或函数,实现最大程度的复用,这导致了使用者和被使用者之间存在依赖关系. 所谓依赖注入是指在运行时自动查找依赖关 ...

  9. how2j网站前端项目——天猫前端(第一次)学习笔记5

    收拾好心情,现在开始学习第5个页面——购物车页面! 一.结算按钮 这个还是比较简单的,我自己看着站长的样子模仿了一个: 有个地方不会做,就是全选前面的复选框,站长的框里面是白色的,我搞不来. 二.订单 ...

  10. jsplumb流程器使用2

    jsplumb默认注册在浏览器的窗口,为整个页面提供静态实例 1. 单独实例化的方法: var firstInstance = jsPlumb.getInstance(); 内部传入可定义对象   全 ...