Python常用知识点汇总


Posted in Python onMay 08, 2016

1、Set基本数据类型

a、set集合,是一个无序且不重复的元素集合

class set(object):
  """
  set() -> new empty set object
  set(iterable) -> new set object
   
  Build an unordered collection of unique elements.
  """
  def add(self, *args, **kwargs): # real signature unknown
    """
    Add an element to a set,添加元素
     
    This has no effect if the element is already present.
    """
    pass
 
  def clear(self, *args, **kwargs): # real signature unknown
    """ Remove all elements from this set. 清楚内容"""
    pass
 
  def copy(self, *args, **kwargs): # real signature unknown
    """ Return a shallow copy of a set. 浅拷贝 """
    pass
 
  def difference(self, *args, **kwargs): # real signature unknown
    """
    Return the difference of two or more sets as a new set. A中存在,B中不存在
     
    (i.e. all elements that are in this set but not the others.)
    """
    pass
 
  def difference_update(self, *args, **kwargs): # real signature unknown
    """ Remove all elements of another set from this set. 从当前集合中删除和B中相同的元素"""
    pass
 
  def discard(self, *args, **kwargs): # real signature unknown
    """
    Remove an element from a set if it is a member.
     
    If the element is not a member, do nothing. 移除指定元素,不存在不保错
    """
    pass
 
  def intersection(self, *args, **kwargs): # real signature unknown
    """
    Return the intersection of two sets as a new set. 交集
     
    (i.e. all elements that are in both sets.)
    """
    pass
 
  def intersection_update(self, *args, **kwargs): # real signature unknown
    """ Update a set with the intersection of itself and another. 取交集并更更新到A中 """
    pass
 
  def isdisjoint(self, *args, **kwargs): # real signature unknown
    """ Return True if two sets have a null intersection. 如果没有交集,返回True,否则返回False"""
    pass
 
  def issubset(self, *args, **kwargs): # real signature unknown
    """ Report whether another set contains this set. 是否是子序列"""
    pass
 
  def issuperset(self, *args, **kwargs): # real signature unknown
    """ Report whether this set contains another set. 是否是父序列"""
    pass
 
  def pop(self, *args, **kwargs): # real signature unknown
    """
    Remove and return an arbitrary set element.
    Raises KeyError if the set is empty. 移除元素
    """
    pass
 
  def remove(self, *args, **kwargs): # real signature unknown
    """
    Remove an element from a set; it must be a member.
     
    If the element is not a member, raise a KeyError. 移除指定元素,不存在保错
    """
    pass
 
  def symmetric_difference(self, *args, **kwargs): # real signature unknown
    """
    Return the symmetric difference of two sets as a new set. 对称交集
     
    (i.e. all elements that are in exactly one of the sets.)
    """
    pass
 
  def symmetric_difference_update(self, *args, **kwargs): # real signature unknown
    """ Update a set with the symmetric difference of itself and another. 对称交集,并更新到a中 """
    pass
 
  def union(self, *args, **kwargs): # real signature unknown
    """
    Return the union of sets as a new set. 并集
     
    (i.e. all elements that are in either set.)
    """
    pass
 
  def update(self, *args, **kwargs): # real signature unknown
    """ Update a set with the union of itself and others. 更新 """
    pass

b、数据类型模块举例

se = {11,22,33,44,55}
be = {44,55,66,77,88}
# se.add(66)
# print(se)  #添加元素,不能直接打印!
#
#
#
# se.clear()
# print(se)     #清除se集合里面所有的值,不能清除单个
#
#
#
# ce=be.difference(se)  #se中存在,be中不存在的值,必须赋值给一个新的变量
# print(ce)
#
#
# se.difference_update(be)
# print(se)         #在se中删除和be相同的值,不能赋值给一个新的变量,先输入转换,然后打印,也不能直接打印!
# se.discard(11)
# print(se)          #移除指定元素,移除不存在的时候,不会报错
# se.remove(11)
# print(se)       #移除指定的元素,移除不存在的会报错
# se.pop()
# print(se)        #移除随机的元素
#
#
# ret=se.pop()
# print(ret)       #移除元素,并且可以把移除的元素赋值给另一个变量
# ce = se.intersection(be)
# print(ce)    #取出两个集合的交集(相同的元素)
# se.intersection_update(be)
# print(se)    #取出两个集合的交集,并更新到se集合中
# ret = se.isdisjoint(be)
# print(ret)     #判断两个集合之间又没有交集,如果有交集返回False,没有返回True
# ret=se.issubset(be)
# print(ret)     #判断se是否是be集合的子序列,如果是返回True,不是返回Flase
# ret = se.issuperset(be)
# print(ret)     #判断se是不是be集合的父序列,如果是返回True,不是返回Flase
# ret=se.symmetric_difference(be)
# print(ret)     #对称交集,取出除了不相同的元素
# se.symmetric_difference_update(be)
# print(se)     #对称交集,取出不相同的元素并更新到se集合中
# ret = se.union(be)
# print(ret)     #并集,把两个元素集合并在一个新的变量中

2、深浅拷贝

a、数字和字符串

    对于 数字 和 字符串 而言,赋值、浅拷贝和深拷贝无意义,因为其永远指向同一个内存地址。

import copy
# ######### 数字、字符串 #########
n1 = 123
# n1 = "i am alex age 10"
print(id(n1))
# ## 赋值 ##
n2 = n1
print(id(n2))
# ## 浅拷贝 ##
n2 = copy.copy(n1)
print(id(n2))
  
# ## 深拷贝 ##
n3 = copy.deepcopy(n1)
print(id(n3))

Python常用知识点汇总

 b、其他基本数据类型

对于字典、元祖、列表 而言,进行赋值、浅拷贝和深拷贝时,其内存地址的变化是不同的。

1、赋值

赋值,只是创建一个变量,该变量指向原来内存地址,如:

n1 = {"k1": "zhangyanlin", "k2": 123, "k3": ["Aylin", 456]}
n2 = n1

Python常用知识点汇总

2、浅拷贝

浅拷贝,在内存中只额外创建第一层数据

import copy
n1 = {"k1": "zhangyanlin", "k2": 123, "k3": ["aylin", 456]}
n3 = copy.copy(n1)

3、深拷贝

深拷贝,在内存中将所有的数据重新创建一份(排除最后一层,即:python内部对字符串和数字的优化)

Python常用知识点汇总

3、函数

函数式:将某功能代码封装到函数中,日后便无需重复编写,仅调用函数即可
面向对象:对函数进行分类和封装,让开发“更快更好更强...

.函数的定义主要有如下要点:

def:表示函数的关键字
函数名:函数的名称,日后根据函数名调用函数
函数体:函数中进行一系列的逻辑计算,如:发送邮件、计算出 [11,22,38,888,2]中的最大数等...
参数:为函数体提供数据
返回值:当函数执行完毕后,可以给调用者返回数据。

1、返回值

函数是一个功能块,该功能到底执行成功与否,需要通过返回值来告知调用者。

以上要点中,比较重要有参数和返回值:

def 发送短信():
    
  发送短信的代码...
  
  if 发送成功:
    return True
  else:
    return False
  
  
while True:
    
  # 每次执行发送短信函数,都会将返回值自动赋值给result
  # 之后,可以根据result来写日志,或重发等操作
  
  result = 发送短信()
  if result == False:
    短信发送失败...

函数的有三中不同的参数:

普通参数

# ######### 定义函数 #########
 
# name 叫做函数func的形式参数,简称:形参
def func(name):
    print name
 
# ######### 执行函数 #########
#  'zhangyanlin' 叫做函数func的实际参数,简称:实参
func('zhangyanlin')

默认参数

def func(name, age = 18):
    
    print "%s:%s" %(name,age)
 
# 指定参数
func('zhangyanlin', 19)
# 使用默认参数
func('nick')

注:默认参数需要放在参数列表最后

动态参数

def func(*args):
 
  print args

# 执行方式一
func(11,33,4,4454,5)
 
# 执行方式二
li = [11,2,2,3,3,4,54]
func(*li)
def func(**kwargs):
 
  print args
 
 
# 执行方式一
func(name='wupeiqi',age=18)
 
# 执行方式二
li = {'name':'wupeiqi', age:18, 'gender':'male'}
func(**li)
 def func(*args, **kwargs):
 
  print args
  print kwargs

邮件实例:

def email(p,j,k):
  import smtplib
  from email.mime.text import MIMEText
  from email.utils import formataddr
 
  set = True
  try:
    msg = MIMEText('j', 'plain', 'utf-8') #j 邮件内容
    msg['From'] = formataddr(["武沛齐",'wptawy@126.com'])
    msg['To'] = formataddr(["走人",'424662508@qq.com'])
    msg['Subject'] = "k" #k主题
 
    server = smtplib.SMTP("smtp.126.com", 25)
    server.login("wptawy@126.com", "WW.3945.59")
    server.sendmail('wptawy@126.com', [p], msg.as_string())
    server.quit()
  except:
    set = False
  return True

formmail = input("请你输入收件人邮箱:")
zhuti  = input("请您输入邮件主题:")
neirong = input("请您输入邮件内容:")
aa=email(formmail,neirong,zhuti)
if aa:
  print("邮件发送成功!")
else:
  print("邮件发送失败!")
Python 相关文章推荐
Python greenlet实现原理和使用示例
Sep 24 Python
Python中的pass语句使用方法讲解
May 14 Python
Python脚本实现自动发带图的微博
Apr 27 Python
Python3安装Pymongo详细步骤
May 26 Python
Python实现将SQLite中的数据直接输出为CVS的方法示例
Jul 13 Python
利用Pandas读取文件路径或文件名称包含中文的csv文件方法
Jul 04 Python
浅谈python中拼接路径os.path.join斜杠的问题
Oct 23 Python
python将类似json的数据存储到MySQL中的实例
Jul 12 Python
numpy中的meshgrid函数的使用
Jul 31 Python
Python configparser模块配置文件过程解析
Mar 03 Python
使用Dajngo 通过代码添加xadmin用户和权限(组)
Jul 03 Python
详解python实现可视化的MD5、sha256哈希加密小工具
Sep 14 Python
Python对list列表结构中的值进行去重的方法总结
May 07 #Python
Python环境下安装使用异步任务队列包Celery的基础教程
May 07 #Python
Python编写电话薄实现增删改查功能
May 07 #Python
Python的dict字典结构操作方法学习笔记
May 07 #Python
Python 类与元类的深度挖掘 II【经验】
May 06 #Python
Python 类与元类的深度挖掘 I【经验】
May 06 #Python
Python 迭代器工具包【推荐】
May 06 #Python
You might like
PHP中读写文件实现代码
2011/10/20 PHP
PHP自定session保存路径及删除、注销与写入的方法
2014/11/18 PHP
两个php日期控制类实例
2014/12/09 PHP
Web程序工作原理详解
2014/12/25 PHP
浅谈PHP中JSON数据操作
2015/07/01 PHP
php实现多城市切换特效
2015/08/09 PHP
Javascript 遍历对象中的子对象
2009/07/03 Javascript
JavaScript ES6中CLASS的使用详解
2016/11/22 Javascript
ES6入门教程之let和const命令详解
2017/05/17 Javascript
AngularJS自定义指令详解(有分页插件代码)
2017/06/12 Javascript
原生javascript实现的全屏滚动功能示例
2017/09/19 Javascript
微信小程序实现YDUI的ScrollTab组件
2018/02/02 Javascript
Angular动画实现的2种方式以及添加购物车动画实例代码
2018/08/09 Javascript
socket io与vue-cli的结合使用的示例代码
2018/11/01 Javascript
vue2.0+SVG实现音乐播放圆形进度条组件
2019/09/21 Javascript
js实现时钟定时器
2020/03/26 Javascript
JavaScript实现鼠标移入随机变换颜色
2020/11/24 Javascript
[33:39]DOTA2上海特级锦标赛C组小组赛#2 LGD VS Newbee第二局
2016/02/27 DOTA
[00:31]2016完美“圣”典风云人物:国士无双宣传片
2016/12/04 DOTA
Python实现随机生成手机号及正则验证手机号的方法
2018/04/25 Python
python计算日期之间的放假日期
2018/06/05 Python
Python中shapefile转换geojson的示例
2019/01/03 Python
python实现二级登陆菜单及安装过程
2019/06/21 Python
浅析PyTorch中nn.Linear的使用
2019/08/18 Python
python定位xpath 节点位置的方法
2019/08/27 Python
Python3+RIDE+RobotFramework自动化测试框架搭建过程详解
2020/09/23 Python
精伦电子Java笔试题
2013/01/16 面试题
什么是聚集索引和非聚集索引
2012/01/17 面试题
为什么需要版本控制?
2013/08/08 面试题
酒吧总经理岗位职责
2013/12/10 职场文书
彩色的非洲教学反思
2014/02/18 职场文书
销售顾问工作计划书
2014/08/15 职场文书
2015年度绩效考核工作总结
2015/05/27 职场文书
青年岗位能手事迹材料(2016推荐版)
2016/03/01 职场文书
2019大学生暑期实习心得总结
2019/08/21 职场文书
golang实现一个简单的websocket聊天室功能
2021/10/05 Golang