python(2)- python程序的編寫簡單介紹


一.語句和語法

#  注釋

\    轉譯回車,繼續上一行,在一行語句較長的情況下可以使用其來切分成多行,因其可讀性差所以不建議使用

;  將兩個語句連接到一行,可讀性差,不建議使用

:  將代碼的頭和體分開

語句(代碼塊)用縮進方式體現不同的代碼級別,建議采用4個空格(不要使用tab),因為不同編程語言環境下tab所代表的空格數不一定是4

python文件以模塊的方式組織,編寫一個.py結尾的文件實際上就寫了一個模塊

  

 

二.變量定義與賦值

a=1:1為內存變量存放於內存中,a為變量的引用,python為動態語言,變量及其類型均無需事先聲明類型

與C語言和C++的區別:a=1無返回值

注:1.c語言變量聲明必須位於代碼最開始,而且要在所有語句之前

  2.c++,java可以隨時隨地聲明變量,但是必須聲明變量名字和類型

  3.python也可以隨時隨地聲明變量,但是變量在被定義時,解釋器會根據等式右側的值來決定其類型

  4.變量必須先賦值,才可使用

  

 

三.內存管理

內存管理:

1.變量無須指定類型

2.程序員無須關心內存管理

3.變量沒有指向被賦予的值時會被自動回收

4.del能夠直接釋放內存對象(減少對象的引用計數)

  

引用計數:

增加引用計數:

1.對象被創建並將其引用賦值給變量,引用計數加1(例a=1)

2.同一個對象的引用又賦值給其它變量,引用計數加1(例b=a)

3.對象作為參數被函數調用,引用計數加1(例int(a))

4.對象成為容器對象中的一個元素,引用計數加1(例list_test=['xuyaping','z',a])

  

減少引用計數:

1.a作為被函數調用的參數,在函數運行結束后,包括a在內的所有局部變量均會被銷毀,引用計數減1

2.變量被賦值給另外一個對象,原對象引用計數減1(例b=2,1這一內存對象的引用只剩a)

3.使用del刪除對象的引用,引用計數減1(例del a)

4.a作為容器list_test中的一個元素,被清除,引用計數減少(例list_test.remove(a))

5.容器本身被銷毀(例del list_test)

  

注意:python內存回收交給一段獨立的代碼即垃圾回收器(包含引用計數器和循環垃圾收集器),引用計數在歸零時並不會立即清除(可能有循環調用)

   不必糾結循環引用收集,只需記住垃圾回收器幫你自動清理內存。

  

簡單例子

x=1 #創建內存變量1,將變量1的引用傳給x,此刻1的引用計數為1
y=x #1的引用計數增加到2


y=2 #創建新的內存變量2,將變量2的引用傳給y,原本指向1的y,此刻給了2,所以1的引用計數減少到了1

del x #刪除了內存對象1的引用x,此刻1再無引用,此刻它就成了python解釋器回收的目標

 

四.python對象

python中使用對象模型來存儲數據,用來生成數據類型的工廠函數本質上是類,新建數據的結果本質是實例化一個對象

對象有三種特性:
1.身份:內存地址,可以用id()確認,id相同的就是同一個對象 2.類型:可以用type()查看,返回值的type也是對象 3.值

 

 

五.標識符

定義:允許作為名字的有效字符串集合

1.名字必須有實際意義,可讀性好

2.首字母必須是字母或下划線(_)

3.剩下的字符可以是字母和數字或者下划線

4.大小寫敏感

5.兩種風格:conn_obj或ConnObj

6.不能使用關鍵字,不能使用內建

內建:由解釋器自動導入(提供基本功能),可以看作全局變量,

  

 

六.專用下划線標識符

_xxx:不能用from module import *導入

__xxx__:系統定義名字

__xxx:類中私有變量

下划線對於解釋器來說有特殊意義,而且是內建標識符所使用符號,不建議自定義變量以下划線開頭

但是如果是類中的私有變量,__xxx將會是一個好習慣

 

系統變量__name__會根據python文件被加載方式的不同得出不同的值。

    python文件被當作模塊導入:__name__=模塊名或者文件名

    python文件被執行:__name__='__main__'

 

在我們使用python編寫一個軟件時,應該只有一個主程序中包含大量頂級代碼(就是沒有縮進的代碼,python解釋器讀取到頂級代碼會立即執行),其他.py文件應

 

該只有少量頂級代碼,所有功能都應該封裝在函數或類中。

 

通常在文件結尾結合__name__變量,編寫測試代碼 。

  

 

七.編寫模塊基本風格

1.標題
2.文檔注釋
3.模塊導入
4.變量定義
5.類定義語句
6.函數定義語句
7.主程序
8.測試代碼

  

 

八.示范

#_*_coding:utf-8_*_
#!/usr/bin/env python

'''
This is an example module
'''

import sys,os

debug=True

class Test:
    '''
    test class
    '''
    pass

def main():
    '''
    test func
    :return: 
    '''
    pass

if __name__ == '__main__':
    main()

  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM