乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 分享

      Python基礎(chǔ)知識點(diǎn):類型和運(yùn)算

       quanshan 2019-01-22

      一:類型和運(yùn)算

      –1.1 尋求幫助:

      dir(obj)            # 簡單的列出對象obj所包含的方法名稱,返回一個字符串列表
      help(obj.func)      # 查詢obj.func的具體介紹和用法

      – 1.2 測試類型的三種方法,推薦第三種

      if type(L) == type([]): print("L is list")
      if type(L) == list: print("L is list")
      if isinstance(L, list): print("L is list")

      – 1.3 Python數(shù)據(jù)類型:哈希類型、不可哈希類型

      # 哈希類型,即在原地不能改變的變量類型,不可變類型。可利用hash函數(shù)查看其hash值,也可以作為字典的key
          "數(shù)字類型:int, float, decimal.Decimal, fractions.Fraction, complex"
          "字符串類型:str, bytes"
          "元組:tuple"
          "凍結(jié)集合:frozenset"
          "布爾類型:True, False"
          "None"
      # 不可hash類型:原地可變類型:list、dict和set。它們不可以作為字典的key。

      – 1.4 數(shù)字常量

      1234, -1234, 0, 999999999                    # 整數(shù)
      1.23, 1., 3.14e-10, 4E210, 4.0e+210          # 浮點(diǎn)數(shù)
      0o177, 0x9ff, 0X9FF, 0b101010                # 八進(jìn)制、十六進(jìn)制、二進(jìn)制數(shù)字
      3+4j, 3.0+4.0j, 3J                           # 復(fù)數(shù)常量,也可以用complex(real, image)來創(chuàng)建
      hex(I), oct(I), bin(I)                       # 將十進(jìn)制數(shù)轉(zhuǎn)化為十六進(jìn)制、八進(jìn)制、二進(jìn)制表示的“字符串”
      int(str, base)                               # 將字符串轉(zhuǎn)化為整數(shù),base為進(jìn)制數(shù)
      # 2.x中,有兩種整數(shù)類型:一般整數(shù)(32位)和長整數(shù)(無窮精度)。可以用l或L結(jié)尾,迫使一般整數(shù)成為長整數(shù)
      float('inf'), float('-inf'), float('nan')    # 無窮大, 無窮小, 非數(shù)

      – 1.5 數(shù)字的表達(dá)式操作符

      yield x                                      # 生成器函數(shù)發(fā)送協(xié)議
      lambda args: expression                      # 生成匿名函數(shù)
      x if y else z                                # 三元選擇表達(dá)式
      x and y, x or y, not x                       # 邏輯與、邏輯或、邏輯非
      x in y, x not in y                           # 成員對象測試
      x is y, x is not y                           # 對象實(shí)體測試
      x<y, x<=y, x>y, x>=y, x==y, x!=y             # 大小比較,集合子集或超集值相等性操作符
      1 < a < 3                                    # Python中允許連續(xù)比較
      x|y, x&y, x^y                                # 位或、位與、位異或
      x<<y, x>>y                                   # 位操作:x左移、右移y位
      +, -, *, /, //, %, **                        # 真除法、floor除法:返回不大于真除法結(jié)果的整數(shù)值、取余、冪運(yùn)算
      -x, +x, ~x                                   # 一元減法、識別、按位求補(bǔ)(取反)
      x[i], x[i:j:k], x(……)                        # 索引、分片、調(diào)用
      int(3.14),  float(3)                         # 強(qiáng)制類型轉(zhuǎn)換

      – 1.6 整數(shù)可以利用bit_length函數(shù)測試所占的位數(shù)

      a = 1;       a.bit_length()    # 1
      a = 1024;    a.bit_length()    # 11

      – 1.7 repr和str顯示格式的區(qū)別

      """
      repr格式:默認(rèn)的交互模式回顯,產(chǎn)生的結(jié)果看起來它們就像是代碼。
      str格式:打印語句,轉(zhuǎn)化成一種對用戶更加友好的格式。
      """

      – 1.8 數(shù)字相關(guān)的模塊

      # math模塊
      # Decimal模塊:小數(shù)模塊
          import decimal
          from decimal import Decimal
          Decimal("0.01") + Decimal("0.02")        # 返回Decimal("0.03")
          decimal.getcontext().prec = 4            # 設(shè)置全局精度為4 即小數(shù)點(diǎn)后邊4位
      # Fraction模塊:分?jǐn)?shù)模塊
          from fractions import Fraction
          x = Fraction(4, 6)                       # 分?jǐn)?shù)類型 4/6
          x = Fraction("0.25")                     # 分?jǐn)?shù)類型 1/4 接收字符串類型的參數(shù)

      – 1.9 集合set

      """
      set是一個無序不重復(fù)元素集, 基本功能包括關(guān)系測試和消除重復(fù)元素。
      set支持union(聯(lián)合), intersection(交), difference(差)和sysmmetric difference(對稱差集)等數(shù)學(xué)運(yùn)算。
      set支持x in set, len(set), for x in set。
      set不記錄元素位置或者插入點(diǎn), 因此不支持indexing, slicing, 或其它類序列的操作
      """
      s = set([3,5,9,10])                                  # 創(chuàng)建一個數(shù)值集合,返回{3, 5, 9, 10}
      t = set("Hello")                                     # 創(chuàng)建一個唯一字符的集合返回{}
      a = t | s          t.union(s)                        # t 和 s的并集
      b = t & s         t.intersection(s)                  # t 和 s的交集
      c = t – s         t.difference(s)                    # 求差集(項(xiàng)在t中, 但不在s中)  
      d = t ^ s          t.symmetric_difference(s)         # 對稱差集(項(xiàng)在t或s中, 但不會同時出現(xiàn)在二者中)
      t.add('x')         t.remove('H')                     # 增加/刪除一個item
       t.update([10,37,42])                                # 利用[......]更新s集合
      x in s,  x not in s                                  # 集合中是否存在某個值
      s.issubset(t)   s.issuperset(t)   s.copy()  s.discard(x)  s.clear()
      {x**2 for x in [1, 2, 3, 4]}                         # 集合解析,結(jié)果:{16, 1, 4, 9}
      {x for x in 'spam'}                                  # 集合解析,結(jié)果:{'a', 'p', 's', 'm'}

      – 1.10 集合frozenset,不可變對象

      """
      set是可變對象,即不存在hash值,不能作為字典的鍵值。同樣的還有l(wèi)ist、tuple等
      frozenset是不可變對象,即存在hash值,可作為字典的鍵值
      frozenset對象沒有add、remove等方法,但有union/intersection/difference等方法
      """
      a = set([1, 2, 3])
      b = set()
      b.add(a)                     # error: set是不可哈希類型
      b.add(frozenset(a))          # ok,將set變?yōu)閒rozenset,可哈希

      – 1.11 布爾類型bool

      type(True)                   # 返回<class 'bool'>
      isinstance(False, int)       # bool類型屬于整形,所以返回True
      True == 1, True is 1         # 輸出(True, False)

      – 1.12 動態(tài)類型簡介

      """
      變量名通過引用,指向?qū)ο蟆?Python中的“類型”屬于對象,而不是變量,每個對象都包含有頭部信息,比如"類型標(biāo)示符" "引用計(jì)數(shù)器"等
      """
      #共享引用及在原處修改:對于可變對象,要注意盡量不要共享引用!
      #共享引用和相等測試:
          L = [1], M = [1], L is M            # 返回False
          L = M = [1, 2, 3], L is M           # 返回True,共享引用
      #增強(qiáng)賦值和共享引用:普通+號會生成新的對象,而增強(qiáng)賦值+=會在原處修改
          L = M = [1, 2]
          L = L + [3, 4]                      # L = [1, 2, 3, 4], M = [1, 2]
          L += [3, 4]                         # L = [1, 2, 3, 4], M = [1, 2, 3, 4

      – 1.13 常見字符串常量和表達(dá)式

      S = ''                                  # 空字符串
      S = "spam’s"                            # 雙引號和單引號相同
      S = "s\np\ta\x00m"                      # 轉(zhuǎn)義字符
      S = """spam"""                          # 三重引號字符串,一般用于函數(shù)說明
      S = r'\temp'                            # Raw字符串,不會進(jìn)行轉(zhuǎn)義,抑制轉(zhuǎn)義
      S = b'Spam'                             # Python3中的字節(jié)字符串
      S = u'spam'                             # Python2.6中的Unicode字符串
      s1+s2, s1*3, s[i], s[i:j], len(s)       # 字符串操作
      'a %s parrot' % 'kind'                  # 字符串格式化表達(dá)式
      'a {0} parrot'.format('kind')           # 字符串格式化方法
      for x in s: print(x)                    # 字符串迭代,成員關(guān)系
      [x*2 for x in s]                        # 字符串列表解析
      ','.join(['a', 'b', 'c'])               # 字符串輸出,結(jié)果:a,b,c

      – 1.24 字典解析

      D = {k:8 for k in ['s', 'd']}                     # {'d': 8, 's': 8}
      D = {k:v for (k, v) in zip(['name', 'age'], ['tom', 12])}

      – 1.25 字典的特殊方法__missing__:當(dāng)查找找不到key時,會執(zhí)行該方法

      class Dict(dict):
          def __missing__(self, key):
              self[key] = []
              return self[key]
      dct = Dict()
      dct["foo"].append(1)    # 這有點(diǎn)類似于collections.defalutdict
      dct["foo"]              # [1]

      – 1.26 元組和列表的唯一區(qū)別在于元組是不可變對象,列表時可變對象

      a = [1, 2, 3]           # a[1] = 0, OK
      a = (1, 2, 3)           # a[1] = 0, Error
      a = ([1, 2])            # a[0][1] = 0, OK
      a = [(1, 2)]            # a[0][1] = 0, Error

      – 1.27 元組的特殊語法: 逗號和圓括號

      D = (12)                # 此時D為一個整數(shù) 即D = 12
      D = (12, )              # 此時D為一個元組 即D = (12, )

      – 1.28 文件基本操作

      output = open(r'C:\spam', 'w')          # 打開輸出文件,用于寫
      input = open('data', 'r')               # 打開輸入文件,用于讀。打開的方式可以為'w', 'r', 'a', 'wb', 'rb', 'ab'等
      fp.read([size])                         # size為讀取的長度,以byte為單位
      fp.readline([size])                     # 讀一行,如果定義了size,有可能返回的只是一行的一部分
      fp.readlines([size])                    # 把文件每一行作為一個list的一個成員,并返回這個list。其實(shí)它的內(nèi)部是通過循環(huán)調(diào)用readline()來實(shí)現(xiàn)的。如果提供size參數(shù),size是表示讀取內(nèi)容的總長。
      fp.readable()                           # 是否可讀
      fp.write(str)                           # 把str寫到文件中,write()并不會在str后加上一個換行符
      fp.writelines(seq)                      # 把seq的內(nèi)容全部寫到文件中(多行一次性寫入)
      fp.writeable()                          # 是否可寫
      fp.close()                              # 關(guān)閉文件。
      fp.flush()                              # 把緩沖區(qū)的內(nèi)容寫入硬盤
      fp.fileno()                             # 返回一個長整型的”文件標(biāo)簽“
      fp.isatty()                             # 文件是否是一個終端設(shè)備文件(unix系統(tǒng)中的)
      fp.tell()                               # 返回文件操作標(biāo)記的當(dāng)前位置,以文件的開頭為原點(diǎn)
      fp.next()                               # 返回下一行,并將文件操作標(biāo)記位移到下一行。把一個file用于for … in file這樣的語句時,就是調(diào)用next()函數(shù)來實(shí)現(xiàn)遍歷的。
      fp.seek(offset[,whence])                # 將文件打操作標(biāo)記移到offset的位置。whence可以為0表示從頭開始計(jì)算,1表示以當(dāng)前位置為原點(diǎn)計(jì)算。2表示以文件末尾為原點(diǎn)進(jìn)行計(jì)算。
      fp.seekable()                           # 是否可以seek
      fp.truncate([size])                     # 把文件裁成規(guī)定的大小,默認(rèn)的是裁到當(dāng)前文件操作標(biāo)記的位置。
      for line in open('data'): 
          print(line)                         # 使用for語句,比較適用于打開比較大的文件
      open('f.txt', encoding = 'latin-1')     # Python3.x Unicode文本文件
      open('f.bin', 'rb')                     # Python3.x 二進(jìn)制bytes文件
      # 文件對象還有相應(yīng)的屬性:buffer closed encoding errors line_buffering name newlines等

      – 1.29 其他

      # Python中的真假值含義:1. 數(shù)字如果非零,則為真,0為假。 2. 其他對象如果非空,則為真
      # 通常意義下的類型分類:1. 數(shù)字、序列、映射。 2. 可變類型和不可變類型

        本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊一鍵舉報(bào)。
        轉(zhuǎn)藏 分享 獻(xiàn)花(0

        0條評論

        發(fā)表

        請遵守用戶 評論公約

        類似文章 更多