Python學習筆記十三)format()數字格式化 和 內置函數(25-52)

      網友投稿 1199 2022-05-30

      format()數字格式化

      下表展示了 str.format() 格式化數字的多種方法:

      >>>?print("{:.2f}".format(3.1415926))

      3.14

      數字

      格式

      輸出

      描述

      3.1415926

      {:.2f}

      3.14

      保留小數點后兩位

      3.1415926

      {:+.2f}

      +3.14

      帶符號保留小數點后兩位

      -1

      {:+.2f}

      -1.00

      帶符號保留小數點后兩位

      2.71828

      {:.0f}

      3

      不帶小數,四舍五入

      5

      {:0>4d}

      05

      數字補0?(填充左邊, 寬度為4)

      5

      {:x<4d}

      5xxx

      數字補x (填充右邊, 寬度為4)

      10

      {:x<4d}

      10xx

      數字補x (填充右邊, 寬度為4)

      1000000

      {:,}

      1,000,000

      以逗號分隔的數字格式

      0.25

      {:.2%}

      25.00%

      百分比格式

      1000000000

      {:.2e}

      1.00e+09

      指數記法

      13

      {:>10d}

      13

      右對齊 (默認, 寬度為10)

      13

      {:<10d}

      13

      左對齊 (寬度為10)

      13

      {:^10d}

      13

      中間對齊 (寬度為10)

      11

      '{:b}'.format(11)

      '{:d}'.format(11)

      '{:o}'.format(11)

      '{:x}'.format(11)

      '{:#x}'.format(11)

      '{:#X}'.format(11)

      1011

      11

      13

      b

      0xb

      0XB

      進制

      ^,?<,?>?分別是居中、左對齊、右對齊,后面帶寬度,

      :?號后面帶填充的字符,只能是一個字符,不指定則默認是用空格填充。

      +?表示在正數前顯示?+,負數前顯示?-;

      (空格)表示在正數前加空格

      b、d、o、x?分別是二進制、十進制、八進制、十六進制。

      此外我們可以使用大括號?{}?來轉義大括號,如下實例:

      實例

      #!/usr/bin/python

      # -*- coding: UTF-8 -*-

      print?("{} 對應的位置是 {{0}}".format("runoob"))

      輸出結果為:

      runoob 對應的位置是?{0}

      # 25、frozenset():

      '''

      描述:

      返回一個凍結的集合,凍結后集合不能再添加或刪除任何元素。

      語法:

      frozenset([iterable])

      參數:

      iterable--可迭代的對象,比如列表、字典、元組等等。

      返回值:

      返回新的frozenset對象,如果不提供任何參數,默認會生成空集合

      '''

      print(frozenset())

      # frozenset()

      a = frozenset(range(10)) ???# 生成一個新的不可變集合

      print(a)

      # frozenset({0, 1, 2, 3, 4, 5, 6, 7, 8, 9})

      b = frozenset('runoob') ????# 創(chuàng)建不可變集合

      print(b)

      # frozenset({'r', 'o', 'u', 'n', 'b'})

      '''

      為什么需要凍結的集合(即不可變的集合)呢?

      因為在集合的關系中,有的集合中的元素是另一個集合的情況,但是普通集合(set)本身是可變的,

      那么它的實例就不能存放在另一個集合中(set中的元素必須是不可變類型)。

      所以,frozenset提供了不可變的集合的功能,當集合不可變時,

      它就滿足了作為集合中的元素的要求,就可以放在另一個集合中了。

      '''

      # 26、getattr():

      '''

      描述:

      用于返回一個對象屬性值

      語法:

      getattr(object, name[, default])

      參數:

      object--對象

      name--字符串,對象屬性

      default--默認返回值,如果不提供該參數,在沒有對應屬性時,將觸發(fā)AttributeError

      返回值:

      返回對象屬性值

      '''

      class A(object):

      bar = 11

      a = A()

      print(getattr(a, 'bar')) ???# 獲取類屬性bar的值

      # print(getattr(a, 'bar2')) ??# 屬性bar2不存在,觸發(fā)異常AttributeError: 'A' object has no attribute 'bar2'

      print(getattr(a, 'bar2', -1)) ??# 屬性bar2不存在,但設置了默認值-1,返回值為-1

      class A():

      def set(self, a, b):

      x = a

      a = b

      b = x

      print(a, b)

      a = A()

      c = getattr(a, 'set')

      c(a='1', b='2') ????# 打印結果:2 1

      ##### 看不懂?#####

      # 27、globals():

      '''

      描述:

      以字典類型返回當前位置的全部全局變量。對比locals()函數

      語法:

      globals()

      參數:

      返回值:

      以字典類型返回當前位置的全部全局變量

      '''

      print(globals()) ???# globals函數返回一個全局變量的字典,包括所有導入的變量

      # {'__name__': '__main__', '__doc__': '\n', '__package__': None, '__loader__': <_frozen_importlib_external.SourceFileLoader object at 0x000001D272980910>, '__spec__': None, '__annotations__': {}, '__builtins__': , '__file__': 'D:/Project/Pycharm/Project1/review1.py', '__cached__': None, 'A': , 'Coordinate': , 'point1': <__main__.Coordinate object at 0x000001D2745EB2E0>, 'a': <__main__.A object at 0x000001D2745EBE50>, 'b': frozenset({'u', 'o', 'b', 'n', 'r'}), 'c': >, 'zipped': , 'a1': (1, 2, 3), 'a2': (4, 5, 6), 'b1': (1, 2, 3), 'b2': (4, 5, 6), 'seasons': ['Spring', 'Summer', 'Autumn', 'Winter'], 'i': 4, 'seq': ['one', 'two', 'three', 'four'], 'element': 'four', 'x': 10, 'n': 81, 'expr': '\nz = 30\nsum = x + y + z\nprint(sum)\n', 'func': , 'list1': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10], 'is_odd': , 'tmplist': , 'newlist': [1, 4, 9, 16, 25, 36, 49, 64, 81, 100], 'math': , 'is_sqr': , 'site': {'name': '', 'url': 'www.com'}, 'my_list': ['', 'www..com'], 'AssignValue': , 'my_value': <__main__.AssignValue object at 0x000001D2745EBC40>}

      # 28、hasattr():

      '''

      描述:

      用于判斷對象是否包含對應的屬性

      語法:

      hasattr(object, name)

      參數:

      object--對象

      name--字符串,屬性名

      返回值:

      如果對象有該屬性返回True,否則返回False

      '''

      class Coordinate:

      x = 10

      y = -5

      z = 0

      point1 = Coordinate()

      print(hasattr(point1, 'x')) ??# True

      print(hasattr(point1, 'y')) ??# True

      print(hasattr(point1, 'z')) ??# True

      print(hasattr(point1, 'no')) ?# False,沒有該屬性

      # 29、hash():

      '''

      描述:

      用于獲取一個對象(字符串或數值等)的哈希值

      語法:

      hash(object)

      參數:

      object--對象

      返回值:

      返回對象的哈希值

      '''

      print(hash('test')) ?# 字符串,結果3138493826556676253

      print(hash(123456789)) ?# 數字,結果123456789

      print(hash(str([1, 2, 3]))) # 集合,結果3084751386921177152

      print(hash(str(sorted({'a': 1})))) ?# 字典,結果-2240541016805128389

      # 30、help():

      '''

      描述:

      用于查看函數或模塊用途的詳細說明

      語法:

      help([object])

      參數:

      object--對象

      返回值:

      返回對象幫助信息

      '''

      help('sys') ????# 查看sys模塊的幫助

      # ......顯示幫助信息......

      help('str') ????# 查看str模塊的幫助

      # ......顯示幫助信息......

      a = [1, 2, 3] ??# 查看列表list幫助信息

      help(a)

      # ......顯示幫助信息......

      help(a.append) ?# 顯示list的append方法的幫助

      # ......顯示幫助信息......

      # 31、hex():

      '''

      描述:

      用于將一個指定數字轉換為16進制數

      語法:

      hex(x)

      參數:

      x--一個整數

      返回值:

      返回一個字符串,以0x開頭

      '''

      print(hex(255)) ?????# 0xff

      print(hex(-42)) ?????# -0x2a

      print(hex(12)) ??????# 0xc

      print(type(hex(12))) #

      # 32、id():

      '''

      描述:

      id()函數返回對象的唯一標識符,標識符是一個整數。

      CPython中id()函數用于獲取對象的內存地址。

      語法:

      id([object])

      參數:

      object--對象

      返回值:

      返回對象的內存地址

      '''

      a = 'runoob'

      print(id(a)) ???# 2604293190192

      b = 1

      print(id(b)) ???# 140719388104352

      # 33、input():

      '''

      描述:

      Python3.x中input()函數接收一個標準輸入數據,返回string類型。

      注意:在Python3.x中raw_input()和input()進行了整合,去除了raw_input(),僅保留了

      input()函數,其接收任意性輸入,將所有輸入默認為字符串處理,并返回字符串類型。

      語法:

      input([prompt])

      參數:

      prompt--提示信息

      返回值:

      '''

      ### input()需要輸入python表達式

      a = input('input: ') ???# 輸入整數:123

      print(type(a)) ?????????# 字符串類型:

      b = input('input: ') ???# 輸入字符串表達式:runoob

      print(type(b)) ?????????# 字符串類型:

      ### input()接收多個值

      # 輸入三角形的三邊長

      a, b, c = (input('請輸入三角形三邊的長:').split())

      a = int(a)

      b = int(b)

      c = int(c)

      # 計算三角形的半周長p

      p = (a + b + c) / 2

      # 計算三角形的面積s

      s = (p * (p - a) * (p - b) * (p - c)) ** 0.5

      # 輸出三角形的面積

      result_list = [a, b, c, p, s]

      print('''三角形的三邊長為:{:.2f},{:.2f},{:.2f}

      三角形的半周長p為:{:.2f}

      三角形的面積s為:{:.2f}'''.format(*result_list))

      # 34、int():

      '''

      描述:

      用于將一個字符串或數字轉換為整型

      語法:

      int(x, base=10)

      參數:

      x--字符串或數字

      base--進字數,默認為十進制

      返回值:

      返回整型數據

      '''

      print(int()) ???# 不傳入參數時,得到結果0

      print(int(3)) ??# 3

      print(int(3.6)) # 3

      print(int('12', 16)) ???# 18,如果是帶參數base的話,12要以字符串形式輸入,12為16進制

      print(int('0xa', 16)) ??# 10

      print(int('10', 8)) ????# 8

      print(int('1001', 2)) ??# 1001才是2進制格式,轉換為十進制數字9

      print(int('123', 8)) ???# 視123為8進制數,對應的10進制為83

      # 35、isinstance():

      '''

      描述:

      判斷一個對象是否是一個已知的類型,類似type()。

      instance()和type()的卻別:

      instance()會認為子類是一種父類類型,考慮繼承關系。

      type()不會認為子類是一種父類類型,不考慮繼承關系。

      如果要判斷兩個類型是否相同,推薦使用isinstance()。

      語法:

      isinstance(object, classinfo)

      參數:

      object--實例對象

      classinfo--可以是直接或間接類名、基本類型或者由它們組成的元組。

      對于基本類型來說,classinfo可以是--int, float, bool, complex, str(字符串), list, dict(字典), set, tuple

      要注意的是,classinfo的字符串是str而不是string,字典也是簡寫dict

      返回值:

      如果對象的類型與參數二的類型(classinfo)相同則返回True,否則返回False。

      '''

      a = 2

      print(isinstance(a, int)) ??????????????# True

      print(isinstance(a, str)) ??????????????# False

      print(isinstance(a, (str, int, list))) ?# 是元組中的一個,返回True

      print('---------------')

      # type()與isinstance()區(qū)別:

      class A:

      pass

      class B(A):

      pass

      print(isinstance(A(), A)) ??# True

      print(type(A()) == A) ??????# True

      print(isinstance(B(), A)) ??# True,考慮繼承關系

      print(type(B()) == A) ??????# False,不考慮繼承關系

      # 36、issubclass():

      '''

      描述:

      用于判斷參數class是否是類型參數classinfo的子類

      語法:

      issubclass(class, classinfo)

      參數:

      class--類

      classinfo--類

      返回值:

      如果class是classinfo的子類則返回True,否則返回False

      '''

      class A:

      pass

      class B(A):

      pass

      print(issubclass(B, A)) ????# True

      # 37、iter():

      '''

      描述:

      用來生成迭代器

      語法:

      iter(object[, sentinel]) ???sentinel標記,哨兵,守衛(wèi),放哨

      參數:

      object--支持迭代的集合對象

      sentinel--如果傳遞了第二個參數,則參數object必須是一個可調用的對象(如函數),此時,

      iter創(chuàng)建了一個迭代器對象,每次調用這個迭代器對象的__next__()方法時,都會調用object。

      返回值:

      迭代器對象

      '''

      lst = [1, 2, 3]

      for i in iter(lst):

      print(i)

      # 38、len():

      '''

      描述:

      返回對象(字符、列表、元組等)長度或項目個數

      len()是內置函數,返回對象的長度(元素個數)。

      實參可以是序列(如string、bytes、tuple、list或range等)

      也可以是集合(如dictionary、set或frozenset等)。

      len()不是字符串類的方法。

      語法:

      len(s)

      參數:

      s--對象

      返回值:

      返回對象長度

      '''

      str = 'runoob'

      print(len(str)) ????# 字符串長度?6

      lst = [1, 2, 3, 4, 5]

      print(len(lst)) ????# 列表元素個數?5

      # 39、list():

      '''

      描述:

      用于將元組或字符串轉換為列表。

      注意:元組與列表是非常類似的,區(qū)別在于元組的元素值不能修改,元組是(),列表是[]

      語法:

      list(seq)

      參數:

      seq--要轉換為列表的元組或字符串

      返回值:

      返回列表

      '''

      tuple1 = (123, 'Google', 'Runoob', 'Taobao')

      print('元組元素:', tuple1)

      # 元組元素:?(123, 'Google', 'Runoob', 'Taobao')

      list1 = list(tuple1)

      print('列表元素:', list1)

      # 列表元素:?[123, 'Google', 'Runoob', 'Taobao']

      str = 'hello world'

      Python學習筆記(十三)format()數字格式化 和 內置函數(25-52)

      print('字符串:', str)

      # 字符串:?hello world

      list2 = list(str)

      print('列表元素:', list2)

      # 列表元素:?['h', 'e', 'l', 'l', 'o', ' ', 'w', 'o', 'r', 'l', 'd']

      # 40、locals():

      '''

      描述:

      locals()函數會以字典類型返回當前位置的全部局部變量。對比globals()函數

      對于函數,方法,lambda表達式,類,以及實現了__call__方法的類實例,它都返回True。

      語法:

      locals()

      參數:

      返回值:

      返回字典類型的局部變量

      '''

      print(locals())

      # {'__name__': '__main__', '__doc__': '\n', '__package__': None, '__loader__': <_frozen_importlib_external.SourceFileLoader object at 0x000001E9BAAAF910>, '__spec__': None, '__annotations__': {}, '__builtins__': , '__file__': 'D:/Project/Pycharm/Project1/review1.py', '__cached__': None}

      print(globals())

      # {'__name__': '__main__', '__doc__': '\n', '__package__': None, '__loader__': <_frozen_importlib_external.SourceFileLoader object at 0x000001E9BAAAF910>, '__spec__': None, '__annotations__': {}, '__builtins__': , '__file__': 'D:/Project/Pycharm/Project1/review1.py', '__cached__': None}

      def runoob(arg): ???# 兩個局部變量:arg、z

      z = 1

      print(locals())

      # {'arg': 4, 'z': 1}

      print(globals())

      # {'__name__': '__main__', '__doc__': '\n', '__package__': None, '__loader__': <_frozen_importlib_external.SourceFileLoader object at 0x000002758D87F910>, '__spec__': None, '__annotations__': {}, '__builtins__': , '__file__': 'D:/Project/Pycharm/Project1/review1.py', '__cached__': None, 'runoob': }

      runoob(4)

      # 41、map():

      '''

      描述:

      map()函數會根據提供的函數對指定序列做映射。

      第一個參數function以參數序列中的每一個元素調用function函數,返回包含每次

      function函數返回值的新列表

      語法:

      map(function, iterable, ...)

      參數:

      function--函數

      iterable--一個或多個序列

      返回值:

      返回一個迭代器

      '''

      def square(x): ?# 計算平方數

      return x ** 2

      print(map(square, [1, 2, 3, 4, 5])) ???# 計算列表中各個元素的平方

      # ??# 返回迭代器

      print(list(map(square, [1, 2, 3, 4, 5]))) # 使用list()轉換為列表

      # [1, 4, 9, 16, 25]

      print(list(map(lambda x: x ** 2, [1, 2, 3, 4, 5]))) # 使用lambda匿名函數

      # [1, 4, 9, 16, 25]

      # 42、max():

      '''

      描述:

      返回給定參數的最大值,參數可以為序列

      語法:

      max(x, y, z, ...)

      參數:

      x--數值表達式

      y--數值表達式

      z--數值表達式

      返回值:

      返回給定參數的最大值

      '''

      print('max(80, 100, 1000):',max(80, 100, 1000))

      print('max(-20, 100, 400):',max(-20, 100, 400))

      print('max(-80, -20, -10):',max(-80, -20, -10))

      print('max(0, -100, -400):',max(0, -100, -400))

      # 43、min():

      '''

      描述:

      返回給定參數的最小值,參數可以為序列

      語法:

      min(x, y, z, ...)

      參數:

      x--數值表達式

      y--數值表達式

      z--數值表達式

      返回值:

      返回給定參數的最小值

      '''

      print('max(80, 100, 1000):',max(80, 100, 1000))

      print('max(-20, 100, 400):',max(-20, 100, 400))

      print('max(-80, -20, -10):',max(-80, -20, -10))

      print('max(0, -100, -400):',max(0, -100, -400))

      # 44、memoryview():

      '''

      描述:

      返回給定參數的內存查看對象(memory view)。

      所謂內存查看對象,是指對支持緩沖區(qū)協(xié)議的數據進行包裝,

      在不需要復制對象的基礎上允許Python代碼訪問。

      語法:

      memoryview(obj)

      參數:

      obj--對象

      返回值:

      返回元組列表

      '''

      ### Python2.x應用:

      v = memoryview('abcdef')

      print(v[1]) ????# b

      print(v[-1]) ???# f

      print(v[1:4]) ??#

      print(v[1:4].tobytes()) # bcd

      print(v[1:4].tolist()) ?# [98, 99, 100]

      ### Python3.x應用:

      v = memoryview(bytearray('abcdef', 'utf-8'))

      print(v[1]) ????# 98

      print(v[-1]) ???# 102

      print(v[1:4]) ??#

      print(v[1:4].tobytes()) # b'bcd'

      print(v[1:4].tolist()) ?# [98, 99, 100]

      # 45、next():

      '''

      描述:

      next()返回迭代器的下一個項目

      next()函數要和生成迭代器的iter()函數一起使用。

      語法:

      next(iterable[, default])

      參數:

      iterable--可迭代對象

      default--可選,用于設置在沒有下一個元素時的默認返回值,

      如果不設置且又沒有下一個元素,則會觸發(fā)StopIteration異常。

      返回值:

      返回迭代器的下一個項目

      '''

      # 首先獲得Iterator對象:

      ite = iter([1, 2, 3, 4, 5])

      # 循環(huán):

      while True:

      try:

      # 獲得下一個值:

      x = next(ite)

      print(x)

      except StopIteration:

      # 遇到StopIteration就退出循環(huán)

      print('沒有可返回的元素!')

      break

      '''打印結果

      1

      2

      3

      4

      5

      沒有可返回的元素!'''

      # y = next(ite) ??# 報出異常:StopIteration

      # 46、object():

      '''

      描述:

      創(chuàng)建一個空對象

      不能向這個對象添加新的屬性或方法。

      這個對象是所有類的基礎,它擁有所有類默認的內置屬性和方法。

      語法:

      object()

      參數:

      無參數

      返回值:

      返回一個空對象

      '''

      # help(object()) ?# 查看object()函數的幫助

      x = object()

      print(x)

      #

      print(dir(x)) ??# 查看對象x的屬性、方法列表

      # ['__class__', '__delattr__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__le__', '__lt__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__']

      # 47、oct():

      '''

      描述:

      將一個整數轉換成8進制字符串,8進制以0o作為前綴表示

      語法:

      oct(x)

      參數:

      x--整數

      返回值:

      返回8進制字符串

      '''

      print(oct(10)) ?# 0o12

      print(oct(20)) ?# 0o24

      print(oct(15)) ?# 0o17

      # 48、open():

      '''

      描述:

      Python open()函數用于打開一個文件,并返回文件對象。

      在對文件進行處理過程中都需要使用到這個函數,

      如果該文件無法被打開,則會拋出OSError異常。

      注意:

      使用open()函數一定要保證關閉文件對象,即調用close()函數。

      open()函數常用形式是接收兩個參數:文件名(file)和模式(mode)

      語法:

      open(file, mode='r')

      open(file, mode='r', buffering=-1, encoding=None, errors=None, newline=None, closefd=True, opener=None)

      參數:

      file--必選,文件路徑(相對路徑或絕對路徑)

      mode--可選,文件打開模式

      buffering--設置緩沖

      encoding--一般使用utf8

      errors--報錯級別

      newline--區(qū)分換行符

      closefd--傳入的file參數類型

      opener--

      mode參數:

      默認為t模式(文本模式),如果要以二進制模式打開,加上b

      t--文本模式(默認)

      x--寫模式,新建一個文件,如果該文件已存在則會報錯

      b--二進制模式

      +--打開一個文件進行更新(可讀可寫)

      U--通用換行模式(不推薦)

      r--以只讀方式打開文件。文件的指針將會放在文件的開頭,這是默認模式

      rb--以只讀、二進制格式打開一個文件。文件指針將會放在文件的開頭,這是默認模式,一般用于非文本文件如圖片等。

      r+--打開一個文件用于讀寫。文件指針將會放在文件的開頭

      rb+--以二進制格式打開一個文件用于讀寫。文件指針將會放在文件的開頭。一般用于非文本文件如圖片等。

      w--打開一個文件只用于寫入。如果該文件已存在則打開文件,并從頭開始編輯,即原有內容會被刪除。如果該文件不存在,則創(chuàng)建新文件。

      wb--以二進制格式打開一個文件只用于寫入。如果該文件已存在則打開文件,并從開頭開始編寫,即原有內容會被刪除。如果該文件不存在,則創(chuàng)建新文件。一般用于非文本文件如圖片等。

      w+--打開一個文件用于讀寫。如果該文件已存在則打開文件,并從頭開始編輯,即原有內容會被刪除。如果該文件不存在,則創(chuàng)建新文件。

      wb+--以二進制格式打開一個文件用于讀寫。如果該文件已存在則打開文件,并從頭開始編輯,即原有內容會被刪除。如果該文件不存在,則創(chuàng)建新文件。一般用于非文本文件如圖片等。

      a--打開一個文件用于追加。如果該文件已經存在,文件指針將會放在文件的結尾,也就是說,新的內容會被寫入到已有內容之后。如果該文件不存在,則創(chuàng)建新文件進行寫入。

      ab--以二進制格式打開一個文件用于追加。如果該文件已存在,文件指針將會放在文件的結尾,也就是說,新的內容會被寫入到已有內容之后。如果該文件不存在,則創(chuàng)建新文件進行寫入。

      a+--打開一個文件用于讀寫。如果該我呢見已存在,文件指針將會放在文件的結尾。文件打開時為追加模式。如果文件不存在,則創(chuàng)建新文件用于讀寫。

      ab+--以二進制格式打開一個文件用于追加。如果該文件已存在,文件指針將會放在文件的結尾。如果該文件不存在,則創(chuàng)建新文件用于讀寫。

      返回值:

      <_io.TextIOWrapper name='users.txt' mode='r' encoding='cp936'>

      '''

      f = open('users.txt')

      print(f)

      # <_io.TextIOWrapper name='users.txt' mode='r' encoding='cp936'>

      print(f.read())

      # admin:Qwer1234

      # test:test123

      # 49、ord():

      '''

      描述:

      ord()函數是chr()函數(對于8位的ASCII字符串)的配對函數,它以一個字符串(Unicode字符)

      作為參數,返回對應的ASCII數值,或者Unicode數值。

      語法:

      odr(c)

      參數:

      c--字符

      返回值:

      返回值是對應的十進制整數

      '''

      print(ord('a')) # 97

      print(ord('A')) # 65

      # 50、pow():

      '''

      描述:

      pow()方法返回x^y(x的y次方)的值

      語法:

      math模塊pow()方法的語法:

      import math

      math.pow(x, y)

      內置的pow()方法的語法:

      pow(x, y[, z])

      函數是機選x的y次方,如果z存在,則再對結果進行取模,其結果等效于pow(x, y) % z

      注意:

      pow()通過內置的方法直接調用,內置方法會把參數作為整型int,

      而math模塊則會把參數轉換為浮點型float。

      參數:

      x--數值表達式

      y--數值表達式

      z--數值表達式

      返回值:

      返回x^y(x的y次方)的值

      '''

      import math ????# 導入math模塊

      # 使用math模塊的pow()函數

      print('math.pow(100, 2):', math.pow(100, 2)) ???# math.pow(100, 2): 10000.0

      print('math.pow(100, -2):', math.pow(100, -2)) ?# math.pow(100, -2): 0.0001

      print('math.pow(2, 4):', math.pow(2, 4)) ???????# math.pow(2, 4): 16.0

      # 使用內置的pow()函數

      print('pow(100, 2):', pow(100, 2)) ??# pow(100, 2): 10000

      print('pow(100, -2):', pow(100, -2)) # pow(100, -2): 0.0001

      print('pow(2, 4):', pow(2, 4)) ??????# pow(2, 4): 16

      # 51、print():

      '''

      描述:

      用于打印輸出,最常見的一個函數

      在Python3.3版增加了flush關鍵字參數。

      print()在Python3.x是一個函數,在Python2.x只是一個關鍵字,不是函數

      語法:

      print(*objects, sep=' ', end='\n', file=sys.stdout, flush=False)

      參數:

      objects--復數,表示可以一次輸出多個對象。輸出多個對象時,需要使用逗號(,)分隔。

      sep--分隔符,用來間隔多個對象,默認是一個空格。

      end--結尾符,用來設定以什么結尾,默認是一個換行符\n,可以換成其他字符串。

      file--要寫入的文件對象。

      flush--輸出是否被緩存,通常決定于file,但如果flush關鍵字參數為True,流會被強制刷新。

      返回值:

      '''

      print(123456789) ???????????# 123456789

      print(type(123456789)) ?????#

      print('hello world') ???????# hello world

      print(type('hello world')) ?#

      print('www', ' ', 'com', sep='.') ?# 設置分隔符

      ### 使用flush參數生成一個Loading的效果

      import time

      print('--- RUNOOB EXAMPLE :Loading 效果---')

      print('Loading', end='')

      for i in range(3):

      print('.', end='', flush=True)

      time.sleep(0.5)

      print()

      # 52、property():

      '''

      https://www.runoob.com/python/python-func-property.html

      http://c.biancheng.net/view/2286.html

      描述:

      在新式類中返回屬性值

      語法:

      屬性名?= property([fget=None[, fset=None[, fdel=None[, docstring=None]]]])

      參數:

      fget--獲取屬性值的函數

      fset--設置屬性值的函數

      fdel--刪除屬性值函數

      docstring--文檔字符串,即屬性描述信息,用于說明此函數的作用

      在使用?property() 函數時,以上?4 個參數可以僅指定第?1 個、或者前?2 個、或者前?3 個,當前也可以全部指定。也就是說,property() 函數中參數的指定并不是完全隨意的。

      返回值:

      返回新式類屬性

      '''

      class C(object):

      def __init__(self):

      self._x = None

      def getx(self):

      return self._x

      def setx(self, value):

      self._x = value

      def delx(self):

      del self._x

      x = property(getx, setx, delx, "I'm the 'x' property.")

      '''

      如果c是C的實例化,則c.x將觸發(fā)getter,?c.x = value觸發(fā)setter,?del c.x觸發(fā)deleter。

      如果給定doc參數,其將稱為這個屬性值的

      '''

      class CLanguage:

      # 構造函數

      def __init__(self, n):

      self.__name = n

      # 設置name屬性值的函數

      def setname(self, n):

      self.__name = n

      # 訪問name屬性值的函數

      def getname(self):

      # 注意:

      # 由于getname()方法中需要返回name屬性,如果使用self.name的話,其本身又被調用getname(),這樣會陷入死循環(huán)。

      # 為了避免這種情況,程序中的name屬性不能是公有屬性,必須是私有屬性__name或受保護的屬性_name,

      # 否則將產生死循環(huán)并報錯RecursionError: maximum recursion depth exceeded。

      return self.__name

      # 刪除name屬性值的函數

      def delname(self):

      self.__name = 'attribute has been deleted!'

      # 或

      # del self.__name ??# 使用該語句則拋出異常:AttributeError: 'CLanguage' object has no attribute '_CLanguage__name'

      # 為name屬性配置property()函數

      name = property(getname, setname, delname, '此處為property函數的docstring說明...')

      # 調取說明文檔的2種方式

      print(CLanguage.name.__doc__) ??# 此處為property函數的docstring說明...

      help(CLanguage.name)

      '''

      打印結果:

      Help on property:

      此處為property函數的docstring說明...

      '''

      clang = CLanguage('C語言中文網')

      # 調用getname()方法,獲取屬性值__name

      print(clang.name) ??# C語言中文網

      # 調用setname()方法,設置屬性值__name

      clang.name = 'Python教程'

      print(clang.name) ??# Python教程

      # 調用delname()方法,刪除屬性值__name

      del clang.name

      print(clang.name) ??# property has been deleted!

      '''

      當然,property()函數也可以少傳入幾個參數,以上面程序為例,我們可以將property()函數修改如下

      name = property(getname, setname)

      這意味著,name是一個可讀寫的屬性,但不能刪除,因為property()函數中并沒有為name配置用于該屬性的函數方法。

      也就是說,即便Clanguage類中設計有delname()函數,這種情況也不能用來刪除name屬性,否則會報錯AttributeError: can't delete attribute。

      同理,還可以像如下這樣使用property()函數:

      name = property(getname) ???# name屬性可讀、不可寫、不可刪除

      name = property(getname, setname, delname) ?# name屬性可讀、可寫、可刪除,但沒有說明文檔

      '''

      Python

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發(fā)現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      上一篇:excel表格中下拉數字遞減設置的方法是什么
      下一篇:開源生態(tài)紅似火 華為引領中國力量顯崢嶸
      相關文章
      中文字幕精品无码亚洲字| 亚洲精品无码久久久久A片苍井空| 亚洲精品天堂在线观看| 亚洲精品视频在线观看免费| 亚洲高清在线观看| 亚洲AV无码乱码在线观看裸奔| 亚洲精品美女久久久久99| 国产成人综合亚洲AV第一页| 中文字幕亚洲乱码熟女一区二区| MM131亚洲国产美女久久| 国产av无码专区亚洲国产精品| 亚洲国产成人精品无码久久久久久综合 | 亚洲avav天堂av在线网爱情| 亚洲国产中文在线视频| 国产精品亚洲精品观看不卡| 97久久国产亚洲精品超碰热| 国产成人精品日本亚洲11| 亚洲日韩精品无码专区| 蜜桃传媒一区二区亚洲AV| 青青青国产色视频在线观看国产亚洲欧洲国产综合 | 亚洲丁香色婷婷综合欲色啪| 久久精品亚洲一区二区| 亚洲一区二区三区高清| 亚洲字幕在线观看| 亚洲 欧洲 视频 伦小说| 亚洲变态另类一区二区三区| 国产亚洲精品美女久久久久久下载| 亚洲av无码乱码在线观看野外 | 亚洲精品美女久久久久9999| 亚洲国语在线视频手机在线| 国产亚洲精品bv在线观看| 亚洲а∨精品天堂在线| 亚洲成a人在线看天堂无码| 美腿丝袜亚洲综合| 亚洲AV无码乱码在线观看裸奔| 亚洲色图校园春色| 亚洲国产日韩综合久久精品| 日本亚洲中午字幕乱码| 国产精品亚洲综合一区| 久久亚洲伊人中字综合精品| 亚洲人成免费网站|