PythonMan(五)

Hello Python :)

补充数据类型:set(简单记忆:不允许重复的列表)
  s = set() #创建空集合
  s.add(11)
  s.add(11)
  for s1 in s :
    print(s1) #仅仅输出一个11

细节:
  创建set集合的时候,也可以接受元组、字符串、列表等可迭代对象。

方法:
  clear() :清空

  difference() :
    s1 = {11,22,33}
    s2 = {22,44}
    print(s1.difference(s2))
    #{11,33}
    print(s2.difference(s1))
    #{44}

  difference_update():
    print(s1.difference_updata(s2))
    #None 所以无返回值
    print(s1)
    #{33,11} 所以这个方法是找到s1存在而s2不存在的,更新自己。

  discard() :移除指定元素,不存在不报错

  remove() : 移除指定元素,不存在会报错

  intersection() :取两个几个集合的交集

  intersection_update() :取交集并且更新自己

  isdisjoint() :判断一下是否有交集

  issubset() :是否为子序列

  issuperset() :是否为父序列

  pop() : 移除一个元素并返回

  symmetric_difference() :
    s1 = {11,22,33}
    s2 = {22,44}
    print(s1.symmetric_difference(s2))
    #输出{33,44}

  symmetric_difference_updata() :...


  union() :并集

  update() :更新

----------------------set结束,不太重要···----------------

三元运算
  例子:name = "Kepler" if 条件 else "Stark"
  如果条件为True,name = "Kepler"
  如果条件为False,name = "Stark"

不同数据类型在内存中的存址方式:
  类比于C语言,Python中的列表就像链表。
  str就像数组,所以本身不能变化,仅能重新分配

深浅拷贝:
  import copy
  n1 = 123
  n2 = copy.copy(n1)
  print(id(n1))
  print(id(n2))
  #输出的id号一样,这是浅拷贝
  n2 = copy.deepcopy(n1)
  print(id(n1))
  print(id(n2))
  #输出的id号一样,这是深拷贝
  #综上,对于数字和str,无论深浅拷贝,id都是一样的,因为有Python的本身优化

对于列表等,情况就不同了。
  n1 = {11:"Kepler" , 22:"Air"}
  n2 = copy.copy(n1)
  print(id(n1))
  print(id(n2))
  #id相同
  print(id(n1[11]))
  print(id(n2[11]))
  #id不同
  #综上,浅拷贝仅仅拷贝第一层,后续的依旧指向了原始地址

  n2 = copy.deepcopy(n1)
  #这时候,会一直拷贝到数字和str这一层,即有多少层就拷贝多少层,直到str和数字(即最后一层)

函数初步:
  Q:如何定义函数?
    def first() :
      Something...

  Q:如何调用函数?
    first()

  Q:函数如何返回?
    return Something

  Q:函数的参数?
    def first(args) :
      Something...
    # args 被叫做形式参数,写法随意,被调用时,first(123),中的123被叫做实际参数,这点和Java、C等有些差别。值得注意的是,函数有多个形参时,也可以不按顺序,只要通知编译器就好了。
    默认值:
      def first(args,args1 = 123) :
        Something...
      #这个first函数,可以这样调用:first(110)、first(110,220),其中第一种不指定args1,默认值是123,第二种是指定了args1 = 220。值得注意的是,要想使用默认参数,一定要放在后面,也可以有多个默认参数。

    动态参数:
      顾名思义,传多少参数都可以。
      

      a)def first(*args) :
        Something...
      #这样,first()函数可以接受任意多的参数。内部原理:动态参数的本质是把传入的任意多个参数变成了元组的形式,当然可以嵌套等...

      b)def first(**args) :
        Something...

      #这种类型的动态参数要这样调用:first(k1=123,ke=234)。内部的本质是将传入的参数转换成字典。所以传入的时候要遵循字典的定义,即KV。

      c)以上的两种动态参数可以混合使用,也可以和普通的形式参数混搭,但要注意a)的要在b)的前面。

      细节:
        def first(*args) :
          print(args)

        first([11,22,33,44])
        first(*[11,22,33,44])
        #第一个输出:([11,22,33,44],)
        #第二个输出:(11,22,33,44)

        def first(**args) :
          print(args)

        dic = {"K1":11,"K2":22}
        first(dic)
        firsst(**dic)
        #第一个会报错
        #第二个才是正确的传入动态参数字典的方法,当然KV形式当然是可以的

      全局变量和局部变量:
        和Java等高级编程语言相通。
        如果想在函数内(局部变量)修改全局变量,那就使用global关键字。
        例子:
          p = "Kepler"

          def fun1():
            p = "Air"

          def fun2():
            global p
            p = "Stark"

          def fun3() :
            print(p)

          fun1()
          fun3()
          #输出Kepler
          

          fun2()
          fun3()
          #输出Stark
          Got it?

时间: 2024-12-11 10:03:31

PythonMan(五)的相关文章

聚焦新相亲时代:女孩在京有五六套房哭着想嫁富2代

2017-09-20 07:31:00 来源: 中国青年报(北京)        举报 6984 分享到: 易信 微信 QQ空间 微博 更多 用微信扫码二维码 分享至好友和朋友圈 T + - (原标题:中青报聚焦新相亲时代:2亿人及其背后家庭组成的"擂台") 石家庄某相亲角.视觉中国 资料 平均算下来,每一分钟里,国内有22对新人拿着户口本走向民政局,进入婚姻生活:同时,8对夫妻在另外一个窗口签下离婚协议. 根据民政部公布的数字,中国的结婚率和离婚率曲线渐渐逼近一个闭合的大于号.婚姻的

今年黑科技趋势最具的五个看点

CES 2017年人工智能引爆全球最火黑科技盛会 CES 2017 1月5日-8日在美国拉斯维加斯举行,数千家企业.几十万人将参与到这次科技的狂欢秀中.本文为埃森哲技术总监带来的关于本年度CES 的5大看点.他认为:人工智能将统治本年度的CES,变得无处不在.另外,他还分析了智能助理.物联网安全.虚拟现实等多个领域在本届大会上的表现. 2017 年国际消费电子展(CES 2017)将于1月5号拉开帷幕,在这个荒漠之城举办为期5天的展会,保守估计会吸引超过177000名参会者. 这也是一年之中唯一

(十五)PL/SQL事务

数据库事务是一个工作的原子单元,其可以由一个或多个相关的SQL语句组成.所谓的原子性就是数据库的修改所带来的构成事务的SQL语句可以集体被提交,即永久到数据库或从数据库中(撤消)回滚.一个成功执行的SQL语句和提交的事务不一样.即使一个SQL语句执行成功,除非包含该语句的事务被提交,但也可以回滚和声明(S)的所有更改可以撤消. 一.开始事务事务都有开始和结束.事务开始时有下列事件之一:  连接到数据库后执行的第一个SQL语句.  在事务完成之后发出每一个新的SQL语句完成. 二.提交事务事务是通

每周进度条(第十五周)

第十五周进度条   第十五周 所花时间 1h 代码量(行)  100 博客量(篇)  1 学到的知识 对图片的处理 在Android程序中加入图片

201405644 嵌入式程序设计第五周学习总结

嵌入式课程设计第五周学习总结 标准 I/O 编程 标准 I/O 提供流缓冲的目的是尽可能减少使用 read()和 write()等系统调用的数量.标准 I/O 提供了 3 种类型 的缓冲存储.全缓冲.行缓冲.不带缓冲. 打开文件 打开文件有三个标准函数,分别为:fopen().fdopen()和 freopen().其中 fopen()可以指定打开文件的路径和模式,fdopen()可以指定打开的文件描述符和模式,而 freopen() 除可指定打开的文件.模式外,还可指定特定的 I/O 流. f

第五次作业+164+张增进

开发人员代码:http://www.cnblogs.com/wangkunhuang/p/6794401.html 1)被测项目界面. 2)测试用例设计表 等价类 输入条件 有效等价类 编号 无效等价类 编号 年 1912≤year≤2050 ① year<1912 ② Year>2050 ③ 非数字 月 Month= 1,3,5,7,8,10,12 ④ Month<1 ⑤ Month= 4,6,9,11 month>12 ⑥ Month= 2 非数字 日 1≤ day ≤31 ⑦

五分钟上手Git

团队开发中.遵循一个合理.清晰的Git使用流程.是非常重要的.否则,每一个人都提交一堆杂乱无章的commit,项目非常快就会变得难以协调和维护.以下是ThoughtBot 的Git使用规范流程.我从中学到了非常多,推荐你也这样使用Git. 第一步:新建分支 首先,每次开发新功能,都应该新建一个单独的分支(这方面能够參考<Git分支管理策略>). # 获取主干最新代码 $ git checkout master $ git pull # 新建一个开发分支myfeature $ git check

linux中五笔的安装

下载五笔安装包 链接: http://pan.baidu.com/s/1geAtlab 密码: 5z8z 进入解压的路径使用下面命令将文件拷贝到指定目录 cp vissible.db /usr/share/ibus-table/tables             cp vissible.gif /usr/share/ibus-table/icon 重启计算机 在区域与语言中选择Chinese再选择Chinese(vissible)

“黑五”的本土化难题,如何定位、立足?

黑五,或者黑色星期五,对大部分中国人来说都会觉得很陌生,但这个在欧美如同双十一的购物节日已经开始被一部分中国消费者所接受并且积极的进行消费购物.虽然在国内黑五还无法与双十一相提并论,但随着跨境电商的兴起,黑五的本土化氛围正越来越浓. "黑五"关注度持续升温 从特定人群向多元化.年轻化转变 从市场层面的变化来看,这两年跨境电商的持续发展为黑五提供了基本的市场促销环境,虽然国内的黑五发展程度尚不足以与双十一相提并论,但对跨境电商企业而言,这几年已经逐渐向市场传达到了"黑五&quo