python3 基礎知識,掌握這些基礎就夠了


 

一、軟件安裝,環境准備

  1. 安裝python3運行環境
  2. 安裝ipython:
    pip install ipython

  升級pip:  

python -m pip install --upgrade pip

  1. 安裝PyCharm,激活碼可選購買

二、python 基礎

  1. 變量

int:整形

float:浮點型

bool:布爾型,True(非0) False(0)

complex:復數型,用於科學計算

非數字型:字符串、列表、元組、字典

  1. 運算:

+(加) 字符串、列表、元組均支持+合並

–(減)

*(乘) 字符串、列表、元組均支持*進行重復,字典不可以。

**(取方)

/(除)

//(除取整)

%(模)

  1. Pycharm快捷鍵:

F7、F8 單步執行,

F9 跑完程序, 

shift + F9 debug模式運行

ctrl+/ 注釋、取消注釋

  1. 常用函數:

del 關鍵字刪除變量后,變量不可使用。也可以用來刪除列表中的數據。

type()查看變量類型

print()打印到控制台

input() 獲取輸入

        示例:input(“請輸入賬號:”)

str() 轉換為字符串

int() 轉換為整形

float() 轉換為浮點

關鍵字:輸出所有關鍵字

import keyword

print(keyword.kwlist)

 

pass 關鍵字:占位符,保證程序正常運行,可以進行占位。

示例:if 1==1:

                    pass

id()查看變量在內存中的地址

  1. 計算

bool在計算時會轉為數字 True(1),False(0)

字符串 * int = 多個字符串重復

字符串與非字符串之間不能使用其它運算符號

  1. 邏輯操作符

and 並且

  • or 或者

not 非

in 是否在字符串、列表、元組、字典(只判斷key)中

not in 同上,取反

is 內存地址相同判斷

is not 內存地址不相同判斷

>=

== 與is的區別在於,比較內存中的值,而不是地址。

!=

<=

  1. 變量的格式化輸出

示例:

        yuanzu=(“hello”,19)

printstr=“%s 的年齡是 %d” % yuanzu

print(printstr)

%s 字符串

%d 有符號十進制整數

%06d 按指定6位數顯示的整數,不足的地方使用0補全

%f 浮點數

%.02f表示小數點后只顯示2位

%% 輸出%

示例:print("%s %d %05d %f %.02f %%" % ("哈哈哈",44,44,44.5555,44.555)

          結果:哈哈哈 44 00044 44.555500 44.55 %

  1. 變量函數命名規則:數字、字母、下划線組成,數字不能開頭
  2. 關鍵字:

import keyword

print(keyword.kwlist)

  1. 條件判斷:if elif else
  2. 三大流程:順序、分值、循環
  3. 注釋

單行注釋:# 單行注釋

多行注釋:“”“注釋內容”“”

文檔注釋:在方法體后第一行

  1. 列表(數組)

定義:name_list=[數據1,數據2 ]

長度:len(name_list)

增加:insert、append、extend(方法內的參數會拆分成單個字符append到列表中)

刪除:remove(如果參數不存在,則報異常)、clear、pop(彈出並刪除)、del name_list[0]

修改:name_list[0]=數據3

查詢:name_list[0]、count、index(如果參數不存在,則報異常)

遍歷:

for n in name_list:

         print(n)

 

排序:sort(正序),reverse(反序)

刪除列表中的空字符串:

 

 

  1. 元組

定義:(數據1,)  (數據1,數據2)

長度:len(name_list)

方法:append、count、index(如果參數不存在,則報異常)

修改:name_list[0]=數據3 元組不能修改,但可以修改元組引用內的數據。

查詢:name_list[0]

遍歷:

for n in name_list:

         print(n)

應用場景:

1函數的參數和返回值

2格式字符串,防止修改

3讓列表數據不被修改,更安全

  1. 元組與list互轉

元組=tuple(列表)

列表=list(元組)

  1. 字典

定義:dic={key:value,key:value}

        鍵必須唯一,且只能為字符串、數字或者元組。無序。

長度:len(dic),統計鍵值對數量

獲取所有的鍵:keys()

獲取所有的值:values()

獲取所有的項:items()

增加:dic[key3]=value3

修改:與增加相同

查詢:dic[key](如果key不存在,則報錯)

刪除:clear、pop(如果key不存在,則報錯)

合並字典:

        示例:dic2={key:value,key2:value2}

               dic.update(dic2)

        注意:update方法會將相同的鍵進行更新,不同的鍵將進行合並。

  1. 字符串

定義:’單引號或者雙引號’

長度:len()

出現次數:count

出現位置:index

方法分類:

        判斷類型:

isspace 只包含空格(\t \n \r)

               isalnum 字母或者數字

               isalpha 字母

               isdecimal全角數字,不能判斷小數

               isdigit 全角數字、(1)(unicode字符串)、\u00b2,不能判斷小數

               isnumeric isdigit基礎上,包含中文數字(示例:一千零一夜),不能判斷小數

               ……

        查找和替換:

               startswith、endswith

               find(如果不存在,返回-1)

               rfind 從右側開始查找

               replace

        大小寫轉換:

               upper

               lower

               swapcase

        文本對齊:

               ljust 左對齊,並使用空格填充至指定長度

               rjust 右對齊,並使用空格填充至指定長度

               center 居中對齊

        去除空白:

               lstrip

               rstrip

               strip

        拆分或者拼接

               split 默認按照(\r \n \t)和空格拆分

               splitlines 按照(\r \n \t)分割,返回包含各行的列表

               join 多個字符串鏈接

切片:

        字符串[開始索引:結束索引:步長]

        倒序索引,從右向左依次遞減 -1,-n

示例:

       num=”0123456789”

       num[2:6:] #截取2-5 2345

       num[2:] #截取2-末尾 23456789

       num[0:6]或者num[:6] #截取開始-5 012345

num[:] #截取完整字符串 0123456789

num[::2] #開始-末尾,每隔一個字符截取 02468

num[1::2] #1-末尾,每隔一個字符截取 13579

num[-1] #最后一個字符 9

num[2:-1] #從2開始到倒數第二個 2345678

num[-2:] 從后往前截取89

num[-1::-1] #從后往前截,步長為倒敘 9876543210

  1. 公共方法

內置函數:

len()

del或者del()

max(),如果是字典,則對key進行比較

min(),同上

  1. for-else:

for 變量 in 集合:

        循環體

else:

        沒有通過break退出循環,循環結束后會執行的代碼

  1. TODO 注釋

# TODO(作者/郵件) 注釋內容

  1. 重命名變量:定位光標到變量上,按shift+F6改名
  2. Linux上的shebang符號(#!)

a.使用which python3獲得路徑

b.在啟動文件頂部添加:#! python路徑

c.增加可執行權限 chmod +x 文件路徑

  1. 函數的調用是傳入內存地址,函數的返回是返回內存地址。
  2. 局部變量和全局變量

python中不允許直接修改全局變量的值,如果賦值,則會在函數內部定義一個局部變量。

如果要給全局變量賦值,則需要使用global 變量進行顯示申明。

全局變量命名規則,使用g_或者gl_開頭進行命名。

  1. 方法:可變參數方法定義,*+參數名為元組參數,**+參數名為字典參數

def demo(num,*nums,**person):

        print(num)

        print(nums)

        print(person)

demo(1)

demo(1,2,3,4)

demo(1,2,3,4,name=”小米”)

demo(1,2,3,4,name=”小米”,age=18)//1為第一個參數,2,3,4為第二個參數,后面兩個為第三個參數

元組和字典拆包:上面的demo方法無法直接傳入元組和字典,如果直接傳入,會被當做元組或者字典的一部分。如果要傳入元組,則需要使用拆包的方式。示例代碼:

a=(2,3,4)

b={ name=”小米”,age=18}

demo(1,*a,**b)

三、導入包

  1. 同項目不同包名導入
  2. 不同項目引用導入

 

四、面向對象

  1. 類和對象的關系
  2. 類的設計:類(大駝峰命名方法)、屬性(小駝峰命名法)、方法(小駝峰命名法)
  3. dir()方法查詢類的方法列表
  4. 類的定義與創建對象的語法

示例:

class 類名:

        def 方法():

               pass

變量=類名()

  1. self:類方法可以使用參數self進行對自身的指代。
  2. _init_方法(對象創建時調用)、_del_方法(對象銷毀前調用)、_str_方法(返回對象的描述信息,print方法會自動調用)
  3. None關鍵字,相當於其它語言中的null
  4. 偽私有屬性和私有方法,定義:定義時在前面加上兩個下划線。外部一定要訪問,則可以使用_類名__方法名。
  5. 繼承語法:class 類名(父類名1,父類名2):多繼承,父類不要有重名方法,應盡量避免使用多繼承。
  6. 重寫:

定義相同方法名進行覆蓋。

方法1:可以使用super()對父類進行指代和方法調用。只能調用方法。

          方法2:使用父類名.方法名進行調用。只能調用方法。

  1. 私有屬性和方法,子類對象不能直接訪問。
  2. 類屬性相當於java中的類全局靜態字段。類屬性是描述類的特征,不與具體對象相關。在繼承中,會有一個向上查找機制,先在子類中查找,若找不到,然后在父類中查找。

使用對象名.類屬性賦值,會創建實例屬性。如果使用的子類名,也會創建實例對象。

  1. 類方法,同java中的類靜態方法。定義,在方法上面加上 @classmethod,方法參數中加上cls,方法類別可以使用cls來指代當前類。
  2. 靜態方法。如果一個方法不需要訪問類屬性,也不需要訪問對象屬性,則可以定義為靜態方法。

定義,在方法上面加上@staticmethod

  1. 單例設計模式:

重寫__new__方法

示例代碼:

instance = None

def __new__(cls, *args, **kwargs):
    if cls.instance is None:
        cls.instance = super().__new__(cls)
        return cls.instance
  1. 異常捕獲:

try:

exception 異常類型1:

exception (異常類型2,異常類型3):

exception Exception as result:

        print(“未知錯誤:%s” % result)

  1. 主動拋出異常 raise Exception(“異常”)
  2.  

五、模塊

  1. 導入模塊 示例:import 文件名 as 別名,使用方式 別名.類名等
  2. 導入部分 示例:from 文件名 import 類名,使用方式 直接使用類名等
  3. 如果從兩個不同的模塊中導入相同的函數,后面的會覆蓋前面導入的函數。
  4. 模塊導入順序,先從當前文件夾進行搜索,如果沒有,則會從系統模塊中進行導入。所以與系統重名的文件命名會覆蓋系統的模塊。可以使用 模塊名.__file__查看模塊的路徑。
  5. 文件中的代碼被導入時(import 行),如果沒有縮進,則會都被執行一遍。
  6. if __name__==”__main__” ,當前文件直接運行,則為true,否則為false。
  7. 包是一個包含多個模塊的特殊目錄,目錄下有一個特使的文件 __init__.py,報名的命名反射和變量名一致,小寫字母+_組成。需要在 __init__.py中指定對外界提供的模塊列表。

模塊列表示例:from . import 文件名

外部使用示例:

  import 包名     

       包名.模塊名.方法/類名

  1. 發布模塊(了解即可)
    1. 創建setup.py文件
    2. 構建模塊 python setup.py build
    3. 打包模塊 python setup.py sdist
    4. 解壓縮模塊 tar zxvf 文件名
    5. 安裝模塊 python setup.py install
    6. 導入包名 imoprt 包名
    7. 安裝模塊 pip install 模塊/包名
    8. 卸載模塊 pip uninstall 模塊/包名
    9.  
  2. pygame 第三方游戲模塊
pip install pygame

六、文件操作

  1. open()
  2. read()
  3. write()
  4. close()

示例代碼:

file = open("hm_class.py")
print(file.read())
file.close()
print("over")
  1. open() 參數說明

    r 以只讀方式打開

    w 以只寫方式打開,如果文件存在,會覆蓋,如果不存在,則創建。

    a 以追加方式打開,文件指針在文件末尾

    r+ 讀寫方式打開,文件指針在開頭,如果文件不存在,則報錯

    w+ 讀寫方式打開,如果文件存在則覆蓋,不存在,則創建。

    a+ 讀寫方式打開,如果文件存在,則指針放在結尾,如果文件不存在,則創建新文件進行寫入。

  1. readline 讀取一行數據
  2. 小文件復制

示例代碼:

file_read=open(“”)
file_write=open(“”,”w”)
file_write.write(file_read.read())
file_read.close()
file_write.close()
  1. 大文件復制

使用部分讀取,部分寫入的方式。

         示例代碼:

file = open("","rb")
file2 = open("hm_class2.py", "wb")
while 1:
    text = file.read(1024)
    if not text:
        break
    file2.write(text)
file.close()
  1. 文件或者目錄的常用管理操作
    1. 導入os模塊,實現對文件或者目錄的操作
    2. rename() 重命名
    3. remove() 刪除文件
    4. listdir() 返回當前文件夾下所有的文件夾和文件
    5. os.path.isdir(“”)判斷是否為文件夾
    6. mkdir() 創建目錄
    7. rmdir() 刪除目錄
    8. getcwd() 獲取當前目錄
    9. chdir() 修改工作目錄 

 


免責聲明!

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



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