Python基礎知識概覽

1.1 Python基礎知識

1.1.1 Python 對象類型

    Python中一切都是對象,Python內置對象有:

  • 布爾型:True、False;

  • 空型:None;

  • 數字:12、3+4j(複數,j表示);

  • 字符串:'sfc'、" I'm Ethan ";

  • 列表: ['a', 1 , ['cd', 235]];

  • 元組:(2, -5, 8);

  • 字典:{1: 'dd', 'key2': 253, '123': value3};

  • 集合:{'a', 'b', 'c'}、set('abc');

  • 文件:f = open('data.txt', 'r');

  • 編程單元類型:函數(def)、類(class);

 

1.1.2 Python變量

  • Python中允許多個變量指向同一個值

    例如:x =3    y=x    則  id(x) 和 id(y) 指向同一個內存地址,但注意當其中一個變量修改內容後,則其內存地址會變化,指向的是新變量值得內存地址,而不會影響另一個變量的內容和內存地址

  • 不能使用內置關鍵字作爲變量名,導入keyword模塊,使用print(keyword.kwlist)可打印出所有的Python關鍵字,如

import keyword
print(keyword.kwlist)
  • 通過print(dir(__builtins__))可查看所有內置模塊、類型和函數,如

print(dir(__builtins__))

 

1.1.3 數字

    主要談談Python中的複數表示,

  • 例:a = 3+4j,注意用j/J表示虛部

  • a.real ,查看實部

  • a.imag,查看虛部

  • a.conjugate(),返回共軛複數

 

1.1.4 字符串

  • 字符串連接(或合併),例如:a = 'abc' + '123'

  • 其他類型對象格式化成字符串,注意‘%’

##### 實例1
a = 3.6674
print('%7.3f' %a)  #輸出:'   3.667'

##### 實例2
print("%d:%c" %(65,65))  #輸出:65:A
  • 字符串界定符前面加r或R,表示原始字符串,即特殊字符不會被轉義,但最後一個字符不能是\字符;這種主要用於表示正則表達式、文件路徑、url;

 

1.1.5 運算符和表達式

  • x/y 除法(真除法),x//y 求整商;

  • x**y 冪運算,

  • x in y ,x not in y 成員測試運算符

  • x is y,x is not y 對象實體同一性測試(地址)

  • @ 矩陣乘法

  • *運算符用於列表、字符串、元組表示對內容進行重複並返回重複後的新對象,如

### 實例1
print('a'*5)    #輸出:aaaaa
print([1, 2, 3]*3)    #輸出:[1, 2, 3, 1, 2, 3, 1, 2, 3]
print((1, 2, 3)*3)    #輸出:(1, 2, 3, 1, 2, 3, 1, 2, 3)

### 實例2
a = [1, 2, 3]
print(id(a), '---', id(a*3))
#輸出:1574886193352 --- 1574886192840  ,說明重複後的列表和原列表存在於不同內存地址,互不影響
  • +運算符用於列表、元組、字符串

print([1, 'a', ['12', 32]] + ['adf', 'dsf'])    #輸出:[1, 'a', ['12', 32], 'adf', 'dsf']
print((1, 'a', ('12', 32)) + ('adf', 'dsf'))    #輸出:(1, 'a', ('12', 32), 'adf', 'dsf')
print('df' + '12')    #輸出:df12
  • ‘,’逗號不是運算符,只是分隔符

print('a' in 'b', 'a')    #輸出:False a
print('a' in ('b', 'a'))    #輸出:True

 

1.1.6 模塊導入和使用

  • import 模塊名 [ as 別名],以“模塊名.對象名”的方式訪問,如

import math
print(math.sin(0.5))

### 帶別名
import math as math_mod
print(math_mod.sin(0.5))
  • form 模塊名  import 對象名 [ as 別名],以“對象名”的方式訪問,如

from math import sin
print(sin(0.5))

### 帶別名
from math import sin as func
print(func(0.5))

###  導入模塊所有對象
from math import *    #不推薦,一旦多個模塊中有同名的對象,這種方式會導致混亂
  • 導入模塊時,Python首先在當前目錄中查找需要導入的模塊文件,如找不到,則從sys模塊的path變量指定的目錄中查找,如仍未找到,則提示模塊不存在

import sys
print(type(sys.path))   #輸出:<class 'list'> 說明path變量是存放路徑的列表對象
sys.path.append('d:\\modelPath')    #可以通過append()方法向path變量中添加自定義文件夾以擴展搜索路徑
print(sys.path)

 

1.1.7  Python代碼編寫規範

  • 註釋

    • 單行用    #

    • 多行用    '''...'''   或者  """...""",注意多行註釋中不能與任何代碼同行,即該多行應全爲註釋

1.1.8 Python文件名

  • py:Python源文件,由Python解釋器負責解釋執行;

  • pyc(重點):Python字節碼文件,對於Python模塊,第一次被導入時將被編譯成字節碼形式,並在以後再次導入時優先使用pyc文件,以提高模塊的加載和運行速度,對於非模塊文件,執行執行時並不生成.pyc文件,但可以使用py_compile模塊的compile()函數進行編譯以提高加載和運行速度;

 

1.1.9 Python腳本的__name__屬性

  • 每個Python腳本在運行時都有一個__name__屬性,如果腳本作爲模塊被導入,則其__name__屬性的值被自動設置爲模塊名;如果腳本獨立運行,則其__name__屬性值別自動設置爲“__main__”,如

### 腳本獨立運行,在test.py腳本中,只有print(__name__)
print(__name__)    #輸出:__main__(自動設置爲“__main__”)

###  test.py作爲模塊被其他文件導入
#test.py中:   
print(__name__)
#test1.py中: 
import test    #輸出:test(模塊名)
  • 利用__name__屬性可用來控制Python程序的運行方式,具體來說,如果編寫一個包含大量函數的模塊,而不希望該模塊用於直接運行,只允許作爲模塊導入運行,則可做如下處理,

###  test.py代碼如下,
if __name__ == '__main__':
    print('please use me as a module!')
else:
    print('success!')
#運行test.py,則輸出的是第一條信息,

###  test1.py代碼如下,
import test
#運行test1.py,則輸出的是第二條信息

 

1.1.10 編寫自己的包

    包可以看作是包含大量Python程序模塊的文件夾。在包的每個目錄中都必須包含一個__init__.py的文件;__init__.py文件的主要用途是設置__all__變量以及執行初始化包所需的代碼,其中__all__變量中定義的對象可以在使用“from ... import * ”時全部被正確導入

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章