• 简明python_Day2_字典、集合、模块、类、编程习惯


    2019-5-9   晴   时热时冷的感觉,开学

    昨天学到元组(tuple),补一下这个入门的link:

    https://maliangliang.wordpress.com/2011/02/26/%E9%9D%9E%E7%A8%8B%E5%BA%8F%E5%91%98-python-%E7%BC%96%E7%A8%8B%E6%A6%82%E5%BF%B5/ 

    继续,go on~

    ##################################################

    C.字典(dict)

    1)一个字,一个解释,用大括号表示:

        adict = {1: "我是解释",

      2: "我是解释2", 
      "我是3": 3, 
      "我是4": 4
      }

    前面的字叫钥匙(key)或者索引,后面的解释,叫”值”。索引不能重复,必须是唯一的。

    注意:前面的key和后面的解释都可以是数字,文字,还可以是函数或元组。但前面的字不能是列表,因为列表内容是可变的,可变就不能做索引。

    2)用key来提取,设定或者增加解释,而不是用位置:

        adict[1] # "我是解释"

        adict["我是3"] # 3

      adict[1] = 2 # 设定新的值

      adict["新索引"] = "没头脑和不高兴" # 增加一个新索引和值

    D.集合(set)

    1)类似列表,不同的是,内容不重复,也没有次序。建立一个集合的方式是使用set()函数,参数可以是列表,元组,一串儿也可以

    aset=set([1,2,3,2,4,6]) #去掉重复内容,是1,2,3,4,6

    2)集合的用处就是来去掉重复的内容

    3)集合可以变成列表,利用list()函数

       alist=list(aset)

    E.模块(module)

    1)一个模块包含一定用途的函数,在相应使用时调用,具体实现上一个模块就是一个python的程序文件。

    2)如果模块还需要细分更多层,那么每层就是一个文件目录。里面有很多做为模块的python文件

    3)要使用模块,我们用import先引用一个模块time,再使用里面的函数clock(),格式 模块名.函数名 :

    mport time
    now = time.clock()
    print (now)

    4)多调用少写源码就很开心~~

    F.类(class)(面向对象的核心:万物皆可类

    1)python提供的模块,里面的函数都包在类里面。

    2)现在比较流行的方式是面向对象编程。面对对象就是把同类的函数、变量打包放在一个书包里,这个书包就叫“类”。

    3)这个“类”一般上是以具体的东西为模板,譬如物种:人类,猫类;物品:家俱类,电器类。他里面打包的函数,基本上是针对这个类进行操作的,譬如人说话,人吃饭,人的鼻子人的嘴,猫逮耗子,家居磨损。

       使用类的时候,我们先具体化他,把种类变成个体。人类变成某人,猫类变成某猫,家俱变成某件家俱。这个具体化的类,就是所谓的“对象(object)”。然后我们就可以使用这个具体人,猫,家居的函数,针对具体的人,物进行操作了,所谓操作对象

    4)建立类

    class RenLei:
        def __init__(self, mingzi):  # self 是一个固定参数名,代表这个对象自己,“自己”还有其他各种属性,属性就是类中的变量或称作状态值。
            self.mingzi = mingzi     # 预设mingzi存到对象自己的 mingzi 变量上。(这叫初始化赋值)
            self.xingbie = "nv3"     # 性别,预设为女
        def shui2(self):             # 谁函数,提取姓名
            return self.mingzi
        def gai3ming2(self, xin_mingzi):    # 改名函数
            self.mingzi = xin_mingzi

    上面的例子,一开始就要求给这个对象一个名字。

    • 目的: 我们在程序中定义类的目的,主要就是定义一些针对这个 类本身的变量(如上例: mingzi, xingbie)进行操作的函数。把这些变量和相应的操作函数捆绑到一起,形成一个有机的整体,便于进行复杂的操作;而且有了分类,程序结构也更加清晰一点。
    • self: 在类的定义里,每一个函数,他的第一个参数,都是规定死的,必须是 self。 self代表这个对象自己。在对象内部,这个对像本身的变量,函数,都是通过这个self来存取的。

    因为我们建立类的目的,是对类内部变量进行操作,所以这个代表对象本身的变量 self ,在我们类的函数中,就很重要了。

    在使用类里的函数时,不用提供 self 这个参数,程序自动提供 self,让我们使用他的内部函数,变量。我们只要提供其他参数即可。

    • __init__(): 这个类函数是一个特殊的函数,他代表从类具体化到对象的时候,需要套用的公式。

    通过类建立对象的时候,程序会自动调用 __init__()函数。所以他叫做初始化函数。建立对象的时候,有什么一开始的要求,都可以通过他来指定,比如要求“脚不大好头发没有麻子”。

    当然如果没有初始要求,也可以不定义这个函数,那么程序就不会自动调用他了。

    • 属性: 而类本身的变量,有个专用名词叫类的属性。这些属性可以让我们保留类的一些状态值,并且通过类函数来提取或者改变这些状态。例如:除了人的名字,性别外,还可以保留一个吃饱的状态,吃饭函数可以顺手把这个状态设定成“吃撑了”,过了半个小时,可以通过别的函数把这个状态又改成饥饿状态了(消化能力是强了点儿)。

    定义类的属性的方法,一般是在 __init__ 这个类函数里,使用

    self.属性名 = 初始值

    的方式来定义的。如果没有初始值,Python 有一个特殊的 None 符号,来代表没有值,所有没有值的地方都可以用他。

    • 类函数: 而类函数的定义,是直接在类里面,缩进四个空格,像一般函数定义就可以了。只是别忘了第一个参数,一定要是 self

    5)具体类,也就是建立对象(具体这个人类是谁,涉及到属性和状态的具体化):

        他的格式是,直接把类的名称当作一个函数来使用,也就是后面加括号()和参数。这个函数对应的参数,则是这个类的 __init__() 函数所要求的参数。如果没有 __init__() 函数,则不需要给参数。

    # 建立对象,提供的参数对应__init__() 函数,self 这个参数程序会自动提供,不用我们提供。
      xiaozhang1 = RenLei("小张")  # 建立一个叫小张的人
      mingzi = xiaozhang1.shui2()  
    """
    使用“对象名.函数名()”的格式来调用类里的函数
    之前设定了:
       def shui2(self):             # 谁函数,提取姓名
            return self.mingzi
    """
       print (mingzi)               # 打印 "小张"

    6)字符串的对象性质:

    Python 里的字符串,列表,元组,字典,他们本身都是面对对象的类,所以带有很多函数可以对自己进行操作,只要你是这个类,具体的你能使用这个类中的函数,格式:“对象名.函数名()”

    譬如:

    a = "脚不大好 头发没有 麻子".split()
    split是字符串这个类的函数,他可以把字符串在给定位置分割,当我们不给他参数的时候,会在所有空白位置分割,然后返回一个列表,里面是被割裂的字符串。
    结果,a 的内容是 ["脚不大好", "头发没有", "麻子"],这是一个有3个元素的列表。
    书中作者建议:对于字符串,列表,字典之类的操作,请熟读说明手册对他们的说明,Python编程,主要就靠字符串,列表和字典了。


    ################################### END ##################


    Python程序员编程习惯

    1)more important!!:大量的使用 list 这个列表方式来存储、操作数据。一字长蛇阵是蟒蛇的绝招,多用没错

    2)
    写一个 Python 程序,我们一般的步骤是:
    1. import 所有会用到到模块
    2. 定义我们自己的类和函数。对于每个函数里要用到的函数,被调用的函数一般放在调用函数的前面定义。这样我们读程序的时候,如果从上到下,就知道调用的函数,在前面是怎么定义的,有什么功能,需要什么参数,返回什么值。
    3. 在文件的最下面,调用上面定义的函数和类,开始工作。
    4. 命令行的选项是通过 sys.argv 这个列表得到的。
    5. 尽量使用Python提供的内建函数和模块里的函数,所以我们对Python的模块说明手册要很熟悉
    6. 程序的清晰比简洁重要,多写注释,表明自己下面要做什么。越清晰的程序越容易修改。否则十天半个月后您想给自己的程序加个新功能,结果根本看不懂原来的程序了,可怎么加?

    ###################################END###################################

           最后给《入门课》写个小尾巴:

    1)作者希望先熟悉:

    • 内建函数
    • 内建数据类型 (字符串,数字,列表,字典,文件对象)
    • sys 模块
    • re 模块
    • os 模块
    • optparse 模块

    熟悉这些,基本上编程没问题了。

    2)中文编码:encode()和decode(),他们把各种编码与标准的统一码进行转换(具体使用看说明):

             # 把统一码转成 GBK 码

        "我们就是花朵".encode("GBK")
    
        # 把使用 UTF-8 编码的字符串转成统一码
        "你们才是花朵,你们全家都是花朵".decode("UTF-8")

    3)网络编程:还要熟悉网络相关的模块:

    • urllib2
    • cookielib
    • xml.etree.elementtree
    • email

    4)图形界面:建议使用PyGTK(http://www.pygtk.org)或者PyQt(http://www.riverbankcomputing.co.uk/software/pyqt/intro)图形界面函数库,这时候,也需要熟悉面对对象编程的概念

    5)查表:Acire (https://aciresnippets.wordpress.com)是一个 Python 编程范例的互动程序。他提供了大量介绍 Python 函数使用方法的范例,可以很容易的查看,试用,修改这些演示源码。

     
  • 相关阅读:
    [转载]游戏外挂原理
    python cookbook
    RF user guide
    测试理论-selenium的工作原理
    测试理论- the conten of test plan
    测试理论--branch testing and boundary testing
    测试理论--向高级出发
    fiddler安装及配置
    python 面试题: 列表表达式
    [redis]如何将redis设置成diango的cache backend
  • 原文地址:https://www.cnblogs.com/marvintang1001/p/10841829.html
Copyright © 2020-2023  润新知