欧美三区_成人在线免费观看视频_欧美极品少妇xxxxⅹ免费视频_a级毛片免费播放_鲁一鲁中文字幕久久_亚洲一级特黄

01_python基礎(chǔ)(一)

系統(tǒng) 1668 0

python學習筆記,打算用五章介紹完python基礎(chǔ)語法及基本用法。

開發(fā)環(huán)境: python3.7? ? 推薦:? ? https://github.com/jackfrued/Python-100-Days? ? ? ?python基礎(chǔ)語法學習不錯。

編碼規(guī)范:

PEP 8風格指南

PEP是Python Enhancement Proposal的縮寫,通常翻譯為“Python增強提案”。每個PEP都是一份為Python社區(qū)提供的指導Python往更好的方向發(fā)展的技術(shù)文檔,其中的第8號增強提案(PEP 8)是針對Python語言編訂的代碼風格指南。盡管我們可以在保證語法沒有問題的前提下隨意書寫Python代碼,但是在實際開發(fā)中,采用一致的風格書寫出可讀性強的代碼是每個專業(yè)的程序員應(yīng)該做到的事情,也是每個公司的編程規(guī)范中會提出的要求,這些在多人協(xié)作開發(fā)一個項目(團隊開發(fā))的時候顯得尤為重要。我們可以從Python官方網(wǎng)站的PEP 8鏈接中找到該文檔,下面我們對該文檔的關(guān)鍵部分做一個簡單的總結(jié)。

空格的使用

  1. 使用空格來表示縮進而不要用制表符(Tab)。這一點對習慣了其他編程語言的人來說簡直覺得不可理喻,因為絕大多數(shù)的程序員都會用Tab來表示縮進,但是要知道Python并沒有像C/C++或Java那樣的用花括號來構(gòu)造一個代碼塊的語法,在Python中分支和循環(huán)結(jié)構(gòu)都使用縮進來表示哪些代碼屬于同一個級別,鑒于此Python代碼對縮進以及縮進寬度的依賴比其他很多語言都強得多。在不同的編輯器中,Tab的寬度可能是2、4或8個字符,甚至是其他更離譜的值,用Tab來表示縮進對Python代碼來說可能是一場災(zāi)難。
  2. 和語法相關(guān)的每一層縮進都用4個空格來表示。
  3. 每行的字符數(shù)不要超過79個字符,如果表達式因太長而占據(jù)了多行,除了首行之外的其余各行都應(yīng)該在正常的縮進寬度上再加上4個空格。
  4. 函數(shù)和類的定義,代碼前后都要用兩個空行進行分隔。
  5. 在同一個類中,各個方法之間應(yīng)該用一個空行進行分隔。
  6. 二元運算符的左右兩側(cè)應(yīng)該保留一個空格,而且只要一個空格就好。

標識符命名

PEP 8倡導用不同的命名風格來命名Python中不同的標識符,以便在閱讀代碼時能夠通過標識符的名稱來確定該標識符在Python中扮演了怎樣的角色(在這一點上,Python自己的內(nèi)置模塊以及某些第三方模塊都做得并不是很好)。

  1. 變量、函數(shù)和屬性應(yīng)該使用小寫字母來拼寫,如果有多個單詞就使用下劃線進行連接。
  2. 類中受保護的實例屬性,應(yīng)該以一個下劃線開頭。
  3. 類中私有的實例屬性,應(yīng)該以兩個下劃線開頭。
  4. 類和異常的命名,應(yīng)該每個單詞首字母大寫。
  5. 模塊級別的常量,應(yīng)該采用全大寫字母,如果有多個單詞就用下劃線進行連接。
  6. 類的實例方法,應(yīng)該把第一個參數(shù)命名為 self 以表示對象自身。
  7. 類的類方法,應(yīng)該把第一個參數(shù)命名為 cls 以表示該類自身。

表達式和語句

在Python之禪(可以使用 import this 查看)中有這么一句名言:“There should be one-- and preferably only one --obvious way to do it.”,翻譯成中文是“做一件事應(yīng)該有而且最好只有一種確切的做法”,這句話傳達的思想在PEP 8中也是無處不在的。

  1. 采用內(nèi)聯(lián)形式的否定詞,而不要把否定詞放在整個表達式的前面。例如 if a is not b 就比 if not a is b 更容易讓人理解。
  2. 不要用檢查長度的方式來判斷字符串、列表等是否為 None 或者沒有元素,應(yīng)該用 if not x 這樣的寫法來檢查它。
  3. 就算 if 分支、 for 循環(huán)、 except 異常捕獲等中只有一行代碼,也不要將代碼和 if for except 等寫在一起,分開寫才會讓代碼更清晰。
  4. import 語句總是放在文件開頭的地方。
  5. 引入模塊的時候, from math import sqrt import math 更好。
  6. 如果有多個 import 語句,應(yīng)該將其分為三部分,從上到下分別是Python標準模塊、第三方模塊和自定義模塊,每個部分內(nèi)部應(yīng)該按照模塊名稱的字母表順序來排列。

?

python的關(guān)鍵字

            
              import
            
            
                keyword


            
            
              print
            
            
              (keyword.kwlist)

            
            
              print
            
            (len(keyword.kwlist))
          

['False', 'None', 'True', 'and', 'as', 'assert', 'async', 'await', 'break', 'class', 'continue', 'def', 'del', 'elif', 'else', 'except', 'finally', 'for', 'from', 'global', 'if', 'import', 'in', 'is', 'lambda', 'nonlocal', 'not', 'or', 'pass', 'raise', 'return', 'try', 'while', 'with', 'yield']
35

?python內(nèi)置函數(shù)? ? ?BIF:(built-in functions)內(nèi)置函數(shù)

?

            
              #
            
            
              !/usr/bin/env python3.7 
            
            
              
#
            
            
               -*- coding:utf-8 -*-
            
            
              
#
            
            
               Author: Lancer  2019-09-02 10:07:21
            
            
              import
            
            
                math


            
            
              #
            
            
                abs() 函數(shù)返回數(shù)字的絕對值
            
            
              print
            
            (abs(-8
            
              ))

            
            
              #
            
            
                divmod() 函數(shù)把除數(shù)和余數(shù)運算結(jié)果結(jié)合起來,返回一個包含商和余數(shù)的元組(a // b, a % b)
            
            
              print
            
            (divmod(9, 2
            
              ))

            
            
              #
            
            
                input() 函數(shù)接受一個標準輸入數(shù)據(jù),返回為 string 類型
            
            
              
#
            
            
               a = input("input:")
            
            
              
#
            
            
               print(a)
            
            
              
#
            
            
               open() 函數(shù)用于打開一個文件,創(chuàng)建一個 file 對象,相關(guān)的方法才可以調(diào)用它進行讀寫
            
            
              
#
            
            
               staticmethod() 返回函數(shù)的靜態(tài)方法。
            
            
              
#
            
            
               all() 函數(shù)用于判斷給定的可迭代參數(shù) iterable 中的所有元素是否都為 TRUE,如果是返回 True,否則返回 False。
            
            
              
#
            
            
               enumerate() 函數(shù)用于將一個可遍歷的數(shù)據(jù)對象(如列表、元組或字符串)組合為一個索引序列,同時列出數(shù)據(jù)和數(shù)據(jù)下標,一般用在 for 循環(huán)當中
            
            
seasons = [
            
              '
            
            
              Spring
            
            
              '
            
            , 
            
              '
            
            
              Summer
            
            
              '
            
            , 
            
              '
            
            
              Fall
            
            
              '
            
            , 
            
              '
            
            
              Winter
            
            
              '
            
            
              ]

            
            
              print
            
            
              (list(enumerate(seasons)) )

            
            
              #
            
            
               int() 函數(shù)用于將一個字符串或數(shù)字轉(zhuǎn)換為整型。
            
            
              print
            
            ( int(
            
              '
            
            
              0xa
            
            
              '
            
            ,16
            
              )  )

            
            
              #
            
            
              ord() 函數(shù)是 chr() 函數(shù)(對于8位的ASCII字符串)或 unichr() 函數(shù)(對于Unicode對象)的配對函數(shù),它以一個字符(長度為1的字符串)作為參數(shù),返回對應(yīng)的 ASCII 數(shù)值,或者 Unicode 數(shù)值,
            
            
              
#
            
            
              如果所給的 Unicode 字符超出了你的 Python 定義范圍,則會引發(fā)一個 TypeError 的異常
            
            
              print
            
            (ord(
            
              '
            
            
              c
            
            
              '
            
            
              ))

            
            
              #
            
            
               str() 函數(shù)將對象轉(zhuǎn)化為適于人閱讀的形式
            
            
dict_test = {
            
              '
            
            
              runoob
            
            
              '
            
            : 
            
              '
            
            
              runoob.com
            
            
              '
            
            , 
            
              '
            
            
              google
            
            
              '
            
            : 
            
              '
            
            
              google.com
            
            
              '
            
            
              }

            
            
              print
            
            
              (str(dict_test))

            
            
              #
            
            
                any() 函數(shù)用于判斷給定的可迭代參數(shù) iterable 是否全部為 False,則返回 False,如果有一個為 True,則返回 True
            
            
              print
            
            (any([
            
              '
            
            
              a
            
            
              '
            
            , 
            
              '
            
            
              b
            
            
              '
            
            , 
            
              '
            
            
              c
            
            
              '
            
            , 
            
              '
            
            
              d
            
            
              '
            
            
              ]))

            
            
              #
            
            
               eval() 函數(shù)用來執(zhí)行一個字符串表達式,并返回表達式的值
            
            
x = 7

            
              print
            
            (eval( 
            
              '
            
            
              3 * x
            
            
              '
            
            
               ))

            
            
              #
            
            
                isinstance() 函數(shù)來判斷一個對象是否是一個已知的類型,類似 type()
            
            
              print
            
            
              (isinstance (x,int))

            
            
              #
            
            
                pow() 方法返回 xy(x的y次方) 的值
            
            
              print
            
            ( pow(2,5
            
              ))

            
            
              #
            
            
               sum() 方法對系列進行求和計算
            
            
              print
            
            (sum([5,6,8
            
              ]))

            
            
              #
            
            
               basestring() 方法是 str 和 unicode 的超類(父類),也是抽象類,因此不能被調(diào)用和實例化,但可以被用來判斷一個對象是否為 str 或者 unicode 的實例
            
            
              
#
            
            
               isinstance(obj, basestring) 等價于 isinstance(obj, (str, unicode))。
            
            
              print
            
            (isinstance(
            
              "
            
            
              Hello world
            
            
              "
            
            
              , str))

            
            
              #
            
            
                execfile() 函數(shù)可以用來執(zhí)行一個文件。  execfile('hello.py')
            
            
              
#
            
            
               issubclass() 方法用于判斷參數(shù) class 是否是類型參數(shù) classinfo 的子類。
            
            
              class
            
            
               A:
    
            
            
              pass
            
            
              class
            
            
               B(A):
    
            
            
              pass
            
            
              print
            
            
              (issubclass(B,A))    

            
            
              #
            
            
                print() 方法用于打印輸出,最常見的一個函數(shù)。 print 在 Python3.x 是一個函數(shù),但在 Python2.x 版本不是一個函數(shù),只是一個關(guān)鍵字。
            
            
              '''
            
            
              
super() 函數(shù)是用于調(diào)用父類(超類)的一個方法。
super 是用來解決多重繼承問題的,直接用類名調(diào)用父類方法在使用單繼承的時候沒問題,但是如果使用多繼承,會涉及到查找順序(MRO)、重復調(diào)用(鉆石繼承)等種種問題。
MRO 就是類的方法解析順序表, 其實也就是繼承父類方法時的順序表。

            
            
              '''
            
            
              #
            
            
              bin() 返回一個整數(shù) int 或者長整數(shù) long int 的二進制表示
            
            
              print
            
            (bin(255
            
              ))

            
            
              #
            
            
               file() 函數(shù)用于創(chuàng)建一個 file 對象,它有一個別名叫 open(),更形象一些,它們是內(nèi)置函數(shù)。參數(shù)是以字符串的形式傳遞的。
            
            
              
#
            
            
               iter() 函數(shù)用來生成迭代器。
            
            
lst = [1, 2, 3
            
              ]

            
            
              for
            
             i 
            
              in
            
            
               iter(lst):
    
            
            
              print
            
            
              (i)

            
            
              #
            
            
              Python len() 方法返回對象(字符、列表、元組等)長度或項目個數(shù)。
            
            
              print
            
            
              (len(lst))

            
            
              #
            
            
              python range() 函數(shù)可創(chuàng)建一個整數(shù)列表,一般用在 for 循環(huán)中。   range(start, stop[, step])
            
            
              
#
            
            
              type() 函數(shù)如果你只有第一個參數(shù)則返回對象的類型,三個參數(shù)返回新的類型對象。
            
            
              
#
            
            
                property() 函數(shù)的作用是在新式類中返回屬性值。
            
            
              
#
            
            
               Python 元組 tuple() 函數(shù)將列表轉(zhuǎn)換為元組。
            
            
              print
            
            (tuple([1,2,3,4
            
              ]))

            
            
              #
            
            
               bool() 函數(shù)用于將給定參數(shù)轉(zhuǎn)換為布爾類型,如果沒有參數(shù),返回 False。  bool 是 int 的子類。
            
            
              
#
            
            
               filter() 函數(shù)用于過濾序列,過濾掉不符合條件的元素,返回由符合條件元素組成的新列表。
            
            
              '''
            
            
              
class bytearray([source[, encoding[, errors]]])
如果 source 為整數(shù),則返回一個長度為 source 的初始化數(shù)組;
如果 source 為字符串,則按照指定的 encoding 將字符串轉(zhuǎn)換為字節(jié)序列;
如果 source 為可迭代類型,則元素必須為[0 ,255] 中的整數(shù);
如果 source 為與 buffer 接口一致的對象,則此對象也可以被用于初始化 bytearray。
如果沒有輸入任何參數(shù),默認就是初始化數(shù)組為0個元素。
bytearray() 方法返回一個新字節(jié)數(shù)組。這個數(shù)組里的元素是可變的,并且每個元素的值范圍: 0 <= x < 256。

            
            
              '''
            
            
              print
            
            (bytearray([1,2,3]), bytearray(
            
              '
            
            
              runoob
            
            
              '
            
            , 
            
              '
            
            
              utf-8
            
            
              '
            
            
              ) )

            
            
              #
            
            
                float() 函數(shù)用于將整數(shù)和字符串轉(zhuǎn)換成浮點數(shù)。
            
            
              
#
            
            
                ist() 方法用于將元組轉(zhuǎn)換為列表。
            
            
aTuple = (123, 
            
              '
            
            
              xyz
            
            
              '
            
            , 
            
              '
            
            
              zara
            
            
              '
            
            , 
            
              '
            
            
              abc
            
            
              '
            
            
              )

            
            
              print
            
            
              (list(aTuple))

            
            
              #
            
            
               python raw_input() 用來獲取控制臺的輸入。 raw_input() 將所有輸入作為字符串看待,返回字符串類型。
            
            
              
#
            
            
               unichr() 函數(shù) 和 chr()函數(shù)功能基本一樣, 只不過是返回 unicode 的字符。
            
            
              
#
            
            
               callable() 函數(shù)用于檢查一個對象是否是可調(diào)用的。如果返回 True,object 仍然可能調(diào)用失敗;但如果返回 False,調(diào)用對象 object 絕對不會成功。
            
            
              
#
            
            
               Python2.6 開始,新增了一種格式化字符串的函數(shù) str.format(),它增強了字符串格式化的功能。 基本語法是通過 {} 和 : 來代替以前的 % 。 format 函數(shù)可以接受不限個參數(shù),位置可以不按順序。
            
            
              
#
            
            
               locals() 函數(shù)會以字典類型返回當前位置的全部局部變量。 對于函數(shù), 方法, lambda 函式, 類, 以及實現(xiàn)了 __call__ 方法的類實例, 它都返回 True。
            
            
              
#
            
            
               reduce() 函數(shù)會對參數(shù)序列中元素進行累積。 函數(shù)將一個數(shù)據(jù)集合(鏈表,元組等)中的所有數(shù)據(jù)進行下列操作:用傳給 reduce 中的函數(shù) function(有兩個參數(shù))先對集合中的第 1、2 個元素進行操作,
            
            
              
#
            
            
               得到的結(jié)果再與第三個數(shù)據(jù)用 function 函數(shù)運算,最后得到一個結(jié)果。
            
            
              
#
            
            
               chr() 用一個范圍在 range(256)內(nèi)的(就是0~255)整數(shù)作參數(shù),返回一個對應(yīng)的字符。
            
            
              print
            
            (chr(97
            
              ))

            
            
              #
            
            
               frozenset() 返回一個凍結(jié)的集合,凍結(jié)后集合不能再添加或刪除任何元素。
            
            
              
#
            
            
               long() 函數(shù)將數(shù)字或字符串轉(zhuǎn)換為一個長整型。
            
            
              
#
            
            
               reload() 用于重新載入之前載入的模塊。
            
            
              
#
            
            
               vars() 函數(shù)返回對象object的屬性和屬性值的字典對象。
            
            
              
#
            
            
                getattr() 函數(shù)用于返回一個對象屬性值。
            
            
              
#
            
            
               map() 會根據(jù)提供的函數(shù)對指定序列做映射。 第一個參數(shù) function 以參數(shù)序列中的每一個元素調(diào)用 function 函數(shù),返回包含每次 function 函數(shù)返回值的新列表。
            
            
              
#
            
            
               repr() 函數(shù)將對象轉(zhuǎn)化為供解釋器讀取的形式。
            
            
              
#
            
            
                xrange() 函數(shù)用法與 range 完全相同,所不同的是生成的不是一個數(shù)組,而是一個生成器。
            
            
              
#
            
            
                cmp(x,y) 函數(shù)用于比較2個對象,如果 x < y 返回 -1, 如果 x == y 返回 0, 如果 x > y 返回 1。
            
            
              
#
            
            
                lobals() 函數(shù)會以字典類型返回當前位置的全部全局變量。
            
            
              
#
            
            
                max() 方法返回給定參數(shù)的最大值,參數(shù)可以為序列。
            
            
              print
            
            (max(80, 100, 1000
            
              ))

            
            
              #
            
            
                reverse() 函數(shù)用于反向列表中元素。
            
            
aList = [123, 
            
              '
            
            
              xyz
            
            
              '
            
            , 
            
              '
            
            
              zara
            
            
              '
            
            , 
            
              '
            
            
              abc
            
            
              '
            
            , 
            
              '
            
            
              xyz
            
            
              '
            
            
              ]
aList.reverse()

            
            
              print
            
            
              (aList)

            
            
              #
            
            
               zip() 函數(shù)用于將可迭代的對象作為參數(shù),將對象中對應(yīng)的元素打包成一個個元組,然后返回由這些元組組成的列表。
            
            
              
#
            
            
               compile() 函數(shù)將一個字符串編譯為字節(jié)代碼。
            
            
              
#
            
            
                hasattr() 函數(shù)用于判斷對象是否包含對應(yīng)的屬性。
            
            
              
#
            
            
                memoryview() 函數(shù)返回給定參數(shù)的內(nèi)存查看對象(Momory view)。 所謂內(nèi)存查看對象,是指對支持緩沖區(qū)協(xié)議的數(shù)據(jù)進行包裝,在不需要復制對象基礎(chǔ)上允許Python代碼訪問
            
            
              
#
            
            
                 round() 方法返回浮點數(shù)x的四舍五入值。
            
            
              
#
            
            
                __import__() 函數(shù)用于動態(tài)加載類和函數(shù) 。 如果一個模塊經(jīng)常變化就可以使用 __import__() 來動態(tài)載入。  __import__(name[, globals[, locals[, fromlist[, level]]]])
            
            
              
#
            
            
                complex() 函數(shù)用于創(chuàng)建一個值為 real + imag * j 的復數(shù)或者轉(zhuǎn)化一個字符串或數(shù)為復數(shù)。如果第一個參數(shù)為字符串,則不需要指定第二個參數(shù)。。
            
            
              
#
            
            
                hash() 用于獲取取一個對象(字符串或者數(shù)值等)的哈希值。
            
            
              print
            
            (hash(
            
              '
            
            
              hello
            
            
              '
            
            
              )  )

            
            
              #
            
            
                min() 方法返回給定參數(shù)的最小值,參數(shù)可以為序列。
            
            
              
#
            
            
                set() 函數(shù)創(chuàng)建一個無序不重復元素集,可進行關(guān)系測試,刪除重復數(shù)據(jù),還可以計算交集、差集、并集等。
            
            
              
#
            
            
                delattr 函數(shù)用于刪除屬性。
            
            
              
#
            
            
                help() 函數(shù)用于查看函數(shù)或模塊用途的詳細說明
            
            
              
#
            
            
                next() 返回迭代器的下一個項目。
            
            
              
#
            
            
                setattr() 函數(shù)對應(yīng)函數(shù) getattr(),用于設(shè)置屬性值,該屬性不一定是存在的。
            
            
              
#
            
            
                 dict() 函數(shù)用于創(chuàng)建一個字典。
            
            
              print
            
            ( dict(a=
            
              '
            
            
              a
            
            
              '
            
            , b=
            
              '
            
            
              b
            
            
              '
            
            , t=
            
              '
            
            
              t
            
            
              '
            
            
              )  )

            
            
              #
            
            
               hex() 函數(shù)用于將10進制整數(shù)轉(zhuǎn)換成16進制,以字符串形式表示。
            
            
              print
            
            (hex(15
            
              ))

            
            
              #
            
            
               slice() 函數(shù)實現(xiàn)切片對象,主要用在切片操作函數(shù)里的參數(shù)傳遞。
            
            
              
#
            
            
               dir() 函數(shù)不帶參數(shù)時,返回當前范圍內(nèi)的變量、方法和定義的類型列表;帶參數(shù)時,返回參數(shù)的屬性、方法列表。如果參數(shù)包含方法__dir__(),該方法將被調(diào)用。如果參數(shù)不包含__dir__(),該方法將最大限度地收集參數(shù)信息。
            
            
              
#
            
            
                id() 函數(shù)用于獲取對象的內(nèi)存地址。
            
            
              
#
            
            
                oct() 函數(shù)將一個整數(shù)轉(zhuǎn)換成8進制字符串。
            
            
              '''
            
            
              
sorted() 函數(shù)對所有可迭代的對象進行排序操作。
sort 與 sorted 區(qū)別:
sort 是應(yīng)用在 list 上的方法,sorted 可以對所有可迭代的對象進行排序操作。
list 的 sort 方法返回的是對已經(jīng)存在的列表進行操作,無返回值,而內(nèi)建函數(shù) sorted 方法返回的是一個新的 list,而不是在原來的基礎(chǔ)上進行的操作。
sorted(iterable, cmp=None, key=None, reverse=False)
iterable -- 可迭代對象。
cmp -- 比較的函數(shù),這個具有兩個參數(shù),參數(shù)的值都是從可迭代對象中取出,此函數(shù)必須遵守的規(guī)則為,大于則返回1,小于則返回-1,等于則返回0。
key -- 主要是用來進行比較的元素,只有一個參數(shù),具體的函數(shù)的參數(shù)就是取自于可迭代對象中,指定可迭代對象中的一個元素來進行排序。
reverse -- 排序規(guī)則,reverse = True 降序 , reverse = False 升序(默認

            
            
              '''
            
            
              
a 
            
            = [5,7,6,3,4,1,2
            
              ]
b 
            
            = sorted(a)       
            
              #
            
            
               保留原列表
            
            
              print
            
            (b)
          

?函數(shù)裝飾器和閉包

1? 裝飾器基礎(chǔ)知識:

  裝飾器是可調(diào)用對象,其參數(shù)是另外一個函數(shù)(被裝飾的函數(shù)),裝飾器可能會處理被裝飾的函數(shù),然后把他返回,或者將其替換成另一個函數(shù)和或者可調(diào)用對象。

            
              def
            
            
                deco(func):
    
            
            
              def
            
            
                inner():
        
            
            
              print
            
            (
            
              "
            
            
              running  inner
            
            
              "
            
            
              )
    
            
            
              return
            
            
               inner

@deco  

            
            
              def
            
            
                 target():
    
            
            
              print
            
            (
            
              "
            
            
              running  target()
            
            
              "
            
            
              )

target()


            
            
              #
            
            
              運行結(jié)果:running inner
            
          

deco返回inner函數(shù)對象,使用deco裝飾target, 調(diào)用被裝飾的target其實會運行inner。嚴格來說,裝飾器只是語法糖,裝飾器可以像常規(guī)的調(diào)用對象那樣調(diào)用,其參數(shù)是另一個函數(shù)。

上文中? @deco? ? 等價于? ?deco(target)

裝飾器特性 1? 能把被裝飾的函數(shù)替換為其他函數(shù)? ? 2 裝飾器在加載模塊時候立即執(zhí)行,被裝飾的函數(shù)只在明確調(diào)用時運行。

2? 變量作用域規(guī)則

            b = 6 

            
              def
            
            
                f2(a):
    
            
            
              print
            
            
              (a)
    
            
            
              print
            
            
              (b)
    b 
            
            = 9
            
               

f2(
            
            3
            
              )

            
            
              '''
            
            
              
Traceback (most recent call last):
  File "作用域.py", line 12, in 
              
                
    f2(3)
  File "作用域.py", line 9, in f2
    print(b)
Unboun
              
            
          

實際python編譯函數(shù)的定義體時,它判斷b是局部變量,因為函數(shù)體中給它賦值了,生成字節(jié)碼證實了這種判斷,python會嘗試從本地環(huán)境獲取b。如果函數(shù)體中賦值想讓解釋器把b當成全局變量,

要用global聲明。

            b = 6 

            
              def
            
            
                f2(a):
    
            
            
              global
            
            
               b 
    
            
            
              print
            
            
              (a)
    
            
            
              print
            
            
              (b)
    b 
            
            = 9
            
               

f2(
            
            3
            
              )

            
            
              print
            
            
              (b)

            
            
              '''
            
            
              
3
6
9

            
            
              '''
            
          

3 閉包:

4 對象引用

            pipixia = {
            
              "
            
            
              name
            
            
              "
            
            :
            
              "
            
            
              pipi01
            
            
              "
            
            , 
            
              "
            
            
              age
            
            
              "
            
            :18
            
              }
dapipixia 
            
            =
            
               pipixia

            
            
              print
            
            (dapipixia 
            
              is
            
            
                pipixia)

            
            
              print
            
            
              (id(pipixia),id(dapipixia))
pipixia[
            
            
              "
            
            
              eating
            
            
              "
            
            ] = 
            
              "
            
            
              yes
            
            
              "
            
            
              print
            
            
              (dapipixia)
eq_pipixia 
            
            =  {
            
              '
            
            
              age
            
            
              '
            
            : 18, 
            
              '
            
            
              eating
            
            
              '
            
            : 
            
              '
            
            
              yes
            
            
              '
            
            , 
            
              '
            
            
              name
            
            
              '
            
            : 
            
              '
            
            
              pipi01
            
            
              '
            
            
              }

            
            
              print
            
            (pipixia ==
            
               eq_pipixia)

            
            
              print
            
            (pipixia 
            
              is
            
            
               eq_pipixia)

            
            
              '''
            
            
              
True
60536520 60536520
{'age': 18, 'eating': 'yes', 'name': 'pipi01'}
True
False


            
            
              '''
            
          

dapipixia? 就是pipixia別名,id()類似C語言地址,具有唯一性。 ==比較值 ,is比較對象標識(id()返回對象標識的整數(shù)表示)。

?


更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯(lián)系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發(fā)表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 国产一区在线免费 | 精品视频在线播放 | 91视频精选 | 国产乱色精品成人免费视频 | 91探花视频在线观看 | 久艹在线观看视频 | 国产精品成人不卡在线观看 | 色天天天天综合男人的天堂 | 久久影院一区二区三区 | 日本一级特黄a大片在线 | 欧美国产日本高清不卡 | 免费在线一区二区三区 | 在线视频97| 亚洲综合在线视频 | 99久久国产免费福利 | 一本伊大人香蕉久久网手机 | 国产精品高潮呻吟久久aⅴ码 | 夜本色| 亚洲日本中文字幕在线2022 | 全日本爽视频在线 | 久久精品久久久久 | 亚洲欧美精品一区二区 | 亚洲天堂视频在线观看免费 | 奇米视频777 | 日韩在线观看网站 | 欧美伊人久久综合网 | 日本中文字幕免费 | 久久免费播放视频 | 国产欧美日韩综合精品一区二区 | 欧美一页| 黄色毛片视频网站 | 亚洲精品久久久 | 欧美日韩国产一区二区三区不卡 | 国产五月婷婷 | 国产午夜精品AV一区二区 | 久久亚洲综合 | 两性免费视频 | 日韩视频一 | www.99热这里只有精品 | 一区二区av | 欧美日韩精品国产一区二区 |