深浅拷贝

set是一个无序且不重复的元素集合
访问速度快
天生解决重复问题
#!/usr/bin/env python3
# -*- coding:utf-8 -*-
#深浅拷贝
import copy
#浅拷贝
#copy.copy()
#深拷贝
#copy.deepcopy()
#赋值 #字符串,数字,无论深拷贝浅拷贝还是赋值,永远指向内存的一块地址
a1 = "fdkoslagj"
a2 = a1
print(id(a1))
print(id(a2)) #其他,元组,列表,字典
n1 = {"k1":"wu","k2":123,"k3":["alex",456]}
n2 = n1
print(id(n1))
print(id(n2))
#浅拷贝
n3 = copy.copy(n1)
print(id(n1))
print(id(n3)) print(id(n1["k3"]))
print(id(n3["k3"])) #深拷贝
n4 = copy.deepcopy(n1)
print(id(n1))
print(id(n4)) dic = {
"cpu":[80,],
"mem":[80,],
"dist":[80,]
} print('before',dic)
#深拷贝,迭代拷贝
new_dic1 = copy.deepcopy(dic)
#改变内容,原变量也会变
#new_dic2 = copy.copy(dic)
new_dic1['cpu'][0]=50
print(dic)
print(new_dic1)

交集 差集 元素计数 有序字典 默认字典

#!/usr/bin/env python3
# -*- coding:utf-8 -*- s1 = set([11,22,33])
s2 = set([22,44]) #在s1中除去s1与s2的交集
ret1 = s1.difference(s2)
#求s1和s2的差集
ret2 = s1.symmetric_difference(s2) ret3 = s2.symmetric_difference(s1)
ret4 = s2.difference(s1) print(ret1)
print(ret2)
print(ret3)
print(ret4) import collections
#元素计数 对字典
obj = collections.Counter('kdfjsalgjkdlsajg:j')
print(obj)
#取前四个
ret = obj.most_common(4)
print(ret)
for item in obj.elements():
#输出所有元素
print(item)
for k,v in obj.items():
#输出计数后的元素:个数
print(k,v) #有序字典 #将字典的key,保存在列表中 #有序字典
dic = collections.OrderedDict()
dic['k1']='v1'
dic['k2']='v2'
print(dic)
#将k1拿到最后
dic.move_to_end('k1')
print(dic)
'''
#要加参数
dic.pop('k1')
print(dic)
#移除最后一个
dic.popitem()
print(dic)
'''
dic.update({'k1':'v11','k10':'v10'})
print(dic) #默认字典,key值对应的是一个列表
dic = collections.defaultdict(list)
dic['k1'].append('alex')
print(dic)

可命名元组,自定义索引值 双向队列 循环右移 单项队列

#!/usr/bin/env python3
# -*- coding:utf-8 -*- import collections #可命名元组,自定义索引值
MytupleClass = collections.namedtuple('MytupleClass',['x','y','z'])
obj = MytupleClass(11,22,33)
print(obj.x,obj.y,obj.z) #双向队列
d = collections.deque()
d.append('1')
d.appendleft('10')
d.appendleft('1')
print(d)
r=d.count('1')
print(r)
d.extend(['xx','yy'])
print(d)
d.extendleft(['zz'])
print(d)
#循环右移
d.rotate(1)
print(d)
d.rotate(2)
print(d)
#单项队列
import queue
q = queue.Queue()
q.put('123')
print(q.qsize())
print(q.get())

邮箱测试

#!/usr/bin/env python3
# -*- coding:utf-8 -*-
'''
1.需要开启邮箱服务sendmail
2.邮箱服务器需要开启SMTP服务
'''
def sendmail():
try:
import smtplib
from email.mime.text import MIMEText
from email.utils import formataddr msg = MIMEText('邮件内容', 'plain', 'utf-8')
msg['From'] = formataddr(["发件人", 'pythonxiao@126.com'])
msg['To'] = formataddr(["收件人", '329275108@qq.com'])
msg['Subject'] = "邮件主题" server = smtplib.SMTP("smtp.126.com", 25)
server.login("pythonxiao@126.com", "xiaozhiqi2016")
server.sendmail('pythonxiao@126.com', [329275108@qq.com, ], msg.as_string())
server.quit()
except:
return "失败"
else:
return 'cc' ret = sendmail(msg)
if ret == 'cc':
print("发送成功")
else:
print("发送失败")

函数参数问题 默认参数 指定参数 参数为列表 字典

#!/usr/bin/env python3
# -*- coding:utf-8 -*- #默认参数放后边
def show(a1,a2=999):
print(a1,a2)
show(111) #指定参数
def show1(a1,a2):
print(a1,a2)
show1(a2=123,a1=999) #参数为列表
def show2(arg):
print(arg)
n=[11,22,33,44]
show2(n) # *arg 输出元组类型
def show3(*arg):
print(arg,type(arg))
show3(1,33,44,55) # **arg 输出字典类型
def show4(**arg):
print(arg,type(arg))
show4(n1=78) # *args **kwargs
def show5(*args,**kwargs):
print(args,type(args))
print(kwargs,type(kwargs))
show5(11,22,33,n1=88,alex='sb') #会将俩个都给*args
l = [11,33,55]
d = {'n1':88,'alex':'sb'}
show5(l,d) #可以用一下方式实现*args -->l,**kwargs -->d
show5(*l,**d)

 字符串格式化

#字符串格式化一
s1 = "{0} is {1}"
result = s1.format('alex','2b')
print(result) #字符串格式化二
s2 = "{name} is {acter}"
result = s2.format(name='alex',acter='sb')
print(result) #字符串格式化三
s3 ="{name} is {acter}"
d = {'name':'alex','acter':'shab'}
result = s3.format(**d)
print(result)

lambda,bool,all,any,Excel表处理 eval, filter,map,round,zip

#字符串格式化一
s1 = "{0} is {1}"
result = s1.format('alex','2b')
print(result) #字符串格式化二
s2 = "{name} is {acter}"
result = s2.format(name='alex',acter='sb')
print(result) #字符串格式化三
s3 ="{name} is {acter}"
d = {'name':'alex','acter':'shab'}
result = s3.format(**d)
print(result)

文件处理

r 只读模式(默认)
w 只写模式。(不可读:不存在则创建,存在则删除内容)
a 追加模式。(可读,不存在则创建,存在则则只追加内容)
"+" 表示可同时读写某个文件 r+可读写文件,可读可写,可追加
w+写读
a+ 同a "U"表示在读取时,可以将\r \n \r\n 自动转换成\n(与r或r+模式同使用)
rU
r+U "b"表示处理二进制文件,(如FTP擦送上传ISO镜像文件,Linux可忽略,Windows处理二进制文件时需标注)
rb
wb
ab
#写
f = open('test.log','w',encoding='utf-8')
f.write('xuxiaopao')
f.close()
#读 read(2)是按照字符拿的
f = open('test.log','r',encoding='utf-8')
ret = f.read(5)
print(ret)
f.close() #tell按照细节搞的,查看当前指针位置
f = open('test.log','r',encoding='utf-8')
print(f.tell())
f.read(5)
print(f.tell())
f.close() #seek 指定当前指针位置
f = open('test.log','r',encoding='utf-8')
f.seek(3) #2会出错 ,3正常
ret = f.read(3)
print(ret)
f.close() #truncate 只保留前边的东西,后边的不要
f = open('test.log','r+',encoding='utf-8')
f.seek(3)
#print(f.read())
f.truncate()
f.close()

  

python 【第三篇】函数基础的更多相关文章

  1. 进击python第三篇:基础

    基础拾遗 序列解包 例: >>>x,y,z=1,2,3 >>>print x,y,z 1 2 3 交换变量也是没问题 >>>x,y=y,x > ...

  2. Python专题三字符串的基础知识

    Python专题三字符串的基础知识 在Python中最重要的数据类型包括字符串.列表.元组和字典等.该篇主要讲述Python的字符串基础知识. 一.字符串基础 字符串指一有序的字符序列集合,用单引号. ...

  3. 前端第三篇---前端基础之JavaScript

    前端第三篇---前端基础之JavaScript 一.JavaScript概述 二.JavaScript的基础 三.词法分析 四.JavaScript的内置对象和方法 五.BOM对象 六.DOM对象 七 ...

  4. python的三个函数(eval、exec、complie)和python版RMI

    一.python的三个函数: 1.eval函数: 之前已经讲过了这个函数,该函数也类似于php的eval,例如下边这个例子 eval("os.system('id')") 但是有个 ...

  5. Python【第一篇】基础介绍

    一.本节主要内容 Python介绍 发展史 Python 2 or 3? 安装 Hello World程序 变量 用户输入 模块初识 .pyc文件 数据类型初识 数据运算 表达式if ...else语 ...

  6. 前端开发【第三篇: JavaScript基础】

    JavaScript是一门编程语言,浏览器内置了JavaScript语言的解释器,所以在浏览器上按照JavaScript语言的规则编写相应代码之,浏览器可以解释并做出相应的处理. 一.如何编写 1.J ...

  7. Python第三周 函数详解

    def 函数名(): """注释说明"""" 执行逻辑体 return 返回值 定义不带参数的函数 带参数的函数 默认参数 这个是 ...

  8. Python 第三篇(上):python文件基础操作、json模块、lambda、map、filter、reduce和函数位置参数

    python一切皆对象,linux一切皆文件,python操作文件是很常见的O/I操作,其内置来open()函数可以完成文件的基本操作: 一:使用内置open()函数操作文件,基本语法如下: with ...

  9. Python 第三篇(下):collections系列、集合(set)、单双队列、深浅copy、内置函数

     一.collections系列: collections其实是python的标准库,也就是python的一个内置模块,因此使用之前导入一下collections模块即可,collections在py ...

  10. Python unittest第一篇:基础入门+命令行编译

    unittest单元测试框架最初受JUnit启发,与其他语言的主要单元测试框架具有相似的风格. 它支持测试自动化,支持开启或关闭某个测试,支持结合测试.另外它可以生成各个单元测试的报告.为了实现以上功 ...

随机推荐

  1. 如何让线程A等待B执行结束后执行?

    1. 使用条件变量 判断是否任务B已经做完,然后再执行任务A. 测试代码可看:https://blog.csdn.net/guochao6531/article/details/78075882 2. ...

  2. MySQL 8.0.12 基于Windows 安装教程

    第一步:到MySQL官网下载安装包:https://dev.mysql.com/downloads/mysql/ 第二步:将下载好的安装包(mysql-8.0.12-winx64 .zip)解压到相应 ...

  3. mybatis完整sql调试

    问题描述 在使用mybatis进行开发的时候,由于可以动态拼接sql,这样大大方便了我们.但是也有一定的问题,当我们动态sql拼接的块很多的时候,我们要想从*mapper.xml中直接找出完整的sql ...

  4. python模块以及导入出现ImportError: No module named ‘xxx‘问题

    python中,每个py文件被称之为模块,每个具有__init__.py文件的目录被称为包.只要模块或者包所在的目录在sys.path中,就可以使用import 模块或import 包来使用如果你要使 ...

  5. python003 Python3 基本数据类型

    Python3 基本数据类型Python 中的变量不需要声明.每个变量在使用前都必须赋值,变量赋值以后该变量才会被创建.在 Python 中,变量就是变量,它没有类型,我们所说的"类型&qu ...

  6. HDU1412-{A} + {B},通过率并不高,但同样是用一个很简洁的函数unique,超短代码水过~

    {A} + {B} Time Limit: 10000/5000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) http: ...

  7. FZU1004-Number Triangle经典动归题,核心思路及代码优化

    Problem 1004 Number Triangle Accept: 2230    Submit: 5895Time Limit: 1000 mSec    Memory Limit : 327 ...

  8. hdu 4460spfa用map来实现

    #include<stdio.h> #include<string.h>   #include <iostream> #include <algorithm& ...

  9. bzoj 3772 精神污染 主席树+dfs序

    精神污染 Time Limit: 10 Sec  Memory Limit: 64 MBSubmit: 637  Solved: 177[Submit][Status][Discuss] Descri ...

  10. Linux(4):文件属性

    文件属性: # 重点: 磁盘空间不足 和 软链接与硬链接的区别 查看文件的属性: # ls lhi 文件 [root@NEO ~]# ls -lhi /etc/hosts 130078 -rw-r-- ...