python基础知识点小结(2021/2/9)
python基礎知識點小結(2021/2/9)持續更新中~~
入門小知識
cmd
- 在cmd上進行python,直接輸入 python\quad pythonpython
- 退出cmd輸入 exit()\quad exit()exit()
- 到指定文件夾上運行python文件 python路徑文件名.py\quad python 路徑文件名.pypython路徑文件名.py
python注釋
- 單行注釋#\quad\##
- 多行注釋′′′′′′\quad ''''''\quad′′′′′′ 6個單引號
- 當python 使用中文時,有時候會出錯,記得加上
變量、標識符和關鍵字
變量
- pythonpythonpython變量可以是任意數據類型,命名規則和c,c++c,c++c,c++相同
- python值得一提的是他的變量本質,類似于標簽和指針
關鍵字
- 是已經被pythonpythonpython內部使用的名稱
- importkeyword;keyword.kylistimport\quad keyword; \quad keyword.kylistimportkeyword;keyword.kylist
輸出與輸入
輸出
- 普通的輸入輸出print(′這是普通輸入輸出′)\quad print('這是普通輸入輸出')print(′這是普通輸入輸出′)
- 格式化輸入輸出print(′我的姓名是%s,我的年齡是%d′%(name,age))\quad print('我的姓名是\%s,我的年齡是\%d'\%(name, age))print(′我的姓名是%s,我的年齡是%d′%(name,age))
- 同c++,c一樣,使用\quad '\n’\quad換行
- 常見的格式符號如下
輸入
- 接收變量 = input(‘輸入提示’);
- 注意接收的輸入
- input接受的數據是字符串,想要變成整數啥的,需要使用int(),eval(),float(),str()\quad int(),\quad eval(),\quad float(),\quad str()int(),eval(),float(),str()
- 下面看幾個有趣的實驗
運算符和表達式
算數運算符
- 注意,負數求余的正負,關鍵是看%\quad \% \quad%后數字的正負
小實驗
比較運算符
賦值運算符
位運算符
邏輯運算符和成員運算符
身份運算符
運算符優先級
\quad\quad\quad\quad\quad
判斷語句&循環語句&調用庫
注意 : 冒號
判斷語句
理論講解
- if ~ else ~
- if ~ elif ~ elif ~~~ else
- 嵌套
- 注意要縮進!!
- 石頭剪刀布小游戲 py 代碼
調用py庫
- 將整個模塊導入 importsome_module\quad import \quad some\_moduleimportsome_module
- 從某個模塊中導入某個函數fromsome_moduleimportsome_function\quad from \quad some\_module \quad import \quad some\_functionfromsome_moduleimportsome_function
- 從某個模塊中導入多個函數fromsome_moduleimportfirst_func,second_func...\quad from \quad some\_module \quad import \quad first\_func,second\_func...fromsome_moduleimportfirst_func,second_func...
- 將某各模塊中的函數全部導入fromsome_moduleimport\quad from \quad some\_module \quad import \quadfromsome_moduleimport \*
循環語句(for&while?\Rightarrow?break&continue&pass)
for循環形式
借助range()
- 注意range(start, end, step), 從start開始,步長為step,一直到end(但是取不到end)
用于列表和字符串
name = 'tengzhou' for i in name: #會把 tenghzhou 在一行輸出print(i, end=''); while循環形式
練習1~n的累加和,和偶數的 累加和
break, continue, pass語句
break, continue, pass的區別與聯系
練習打印九九乘法表
str&list&tuple&dict&set
字符串
String字符串
- 常用單引號、雙引號、三引號括起來,使用反斜杠 \ 來進行轉義特殊字符.
- Python3默認UTF-8進行編碼,所有字符串都是unicode字符串。
- 支持字符串的拼接、截取等等多種運算。
- 使用str 進行強制類型轉化
單引號、雙引號、三引號選取的區別與聯系 <\font>
下面我們給出幾個例子來看出使用單引號和雙引號的區別
example 1: 字符串 I’am a student
- 使用單引號 ‘I’am a student’ ?\Rightarrow?必須使用轉義字符
- 使用雙引號 “I’m a student” ?\Rightarrow?直接寫就可以
example 2:字符串 Tom said "I like you"
- 使用單引號 ‘Tom said “I like you”’ ?\Rightarrow?直接寫就可以
- 使用雙引號 “Tom said “I like you”” ?\Rightarrow?必須使用轉義字符
三引號的應用:可以不在一行
- 有時被用于注釋,其實注釋的就是未被變量標記的字符串
下面看一下在代碼中的顯示
其中str1=str2, str3 = str4, s1=s2=s3=s4
轉義字符
字符串的截取與連接
- print(str[0:7:2]); # [起始:終止:步長]–>[st:step:ed],注意是取不到 ed 的
- print(r’hello\npython’); # 在字符串面前加一個 r 表示原始字符串,不會發生轉義。
- print(str[0:-1]); # 輸出字符串0到倒數第二個,其實-1表示是最后一個,但是[st:ed]取不到最后一個。
直接上代碼的示例
字符串的常見操作
列表
- 列表中的數據結構可以不同,支持數字、字符串,也可以包括自身(列表的嵌套)。
- 列表元素寫在 [] 之間,用 ‘,’分隔開。eg:list = [‘abcd’, 123, 2.123, ‘python’, 36.5];
- 索引值和 str類似,0表示開始數值, -1表示末尾的開始位置
- 同 string 相同, + 表示列表的拼接, * 表示列表的重復
列表的定義與訪問
詳情請看下面的代碼示例
列表的常用操作
- 直接下標訪問、切片、遍歷列表
- 增加:append(element), extend(List)相當于將列表中的元素遍歷進行append(), insert()插入到具體的位置
- 刪除:del(idx), remove(val), pop(void)
- 修改,直接進行下標訪問進行修改
- 查詢是否在列表中, In, not in
- + 用于連接
- 列表的排序sort(), 翻轉的reverse()
- 長度,最大值、最小值、強制類型轉換: len, max, min, list;
列表的嵌套
編程作業
作業的實現的代碼如下:
元組
- 元組與list類似,但是tuple的數據不可以被修改。元素寫在小括號里面,元素之間用逗號分開。
- 元組的元素不可變,但是可以包括可變對象,eg:list,而且list內部是可以加的
- 定義只有一個元素的tuple,必須加逗號,因為不加逗號就看成是一個加括號的表達式
代碼嘗試:
my_tuple = ([1, 2, 3],); for i in my_tuple: # 原本 tuple 元素的遍歷輸出print(i);my_tuple[0].append(2); # 添加的新元素for i in my_tuple: # 原本 tuple 元素的遍歷輸出print(i);for i in my_tuple: # 標簽指的是一個地方,是被刪除的!!,相當于引用i.pop();for i in my_tuple:print(i);結果
[1, 2, 3] [1, 2, 3, 2] [1, 2, 3]元組的定義和訪問
- 創建一個空元祖
- 元組的定義
- 元組的訪問
- 元組的元素值是不允許修改的,但是我們可以對元組進行連接組合形成一個新的元組。
- 將元組刪除釋放之后,再次訪問會報錯,是非法的。
常用操作
| 元組的加法操作 | + | tup3 = tup1 + tup2 |
字典
- 字典是無序對象的集合,使用(key-value)存儲,支持告訴查詢
- 鍵(key)必須使用不可變數據類型
- 同一個字典中鍵必須是唯一的
字典的定義與訪問
- 字典的定義需要使用{}, 不同于元組,因為他的可區別性強,因此編譯器在編譯的時候不需要額外的加分號。
- 字典和列表類似,可以存儲多種數據結構;
- 對比列表,列表元素的查找根據下標,字典查找元素是根據‘名字’。
- 字典的每個元素由兩部分組成,key:valuekey:valuekey:value
- 當字典根據鍵訪問數值時候,使用 dict[key]dict[key]dict[key]當元素不存在的時候會報錯,但是當使用dict.get(key,default=′′)dict.get(key, default='')dict.get(key,default=′′),鍵值不存在時,會返回默認值空,或者是自己填。
下面是代碼嘗試
常用操作
集合
- 想要定義的時候直接強制類型轉化就行。
- set是無序的,任何重復元素都會被過濾掉。
- 相當于僅有key 的字典,數據不可以是可變類型list,但是可以為元組 tuple
- 相比較c++c ++c++ 中的集合,他的數據類型是可變的。
常用操作
小結
函數
函數的概念
- 為了提高編程的效率和代碼的復用性,將常用的一段代碼封裝成一個模塊,這個就是函數。
函數的定義和調用
def 函數名():代碼demo:
def printInfo():print('-' * 6);print('python 永遠滴神');print('-' * 6);if __name__ == '__main__':printInfo()cmd的執行結果
函數參數
demo代碼如下
def mul(a, b):print('%d*%d=%d'%(a, b, a * b));return; if __name__ == '__main__':mul(5, 2);函數的返回值
- python中的函數返回多個值(本質是元組,和c ++ 的vector, set, map類似)
運行結果:
課堂練習
代碼
局部變量和全局變量
- 在函數外面定義的是全局變量
- 全局變量可以在定義的函數內部訪問(無同名的局部變量的前提下),但是如果想要修改的話,就需要global聲明一下,否則不需要,
- 再有全局變量 a 的情況下,倘若函數中出現 a,僅僅訪問,那就是全局變量,倘若修改了,而且沒有global聲明,那么就是局部變量,想要修改必須使用關鍵字global聲明一下。
- 如果是局部變量,需要提前賦值(聲明,在使用之前),如果是全局變量要提前global說明
附示例代碼:
# 局部變量修改 def local_var_func():print('-' * 8)a = 5 # 因為后面有賦值,所有說是局部變量,局部變量必須在前面就有賦值,要在用 a 之前print('before : a = %d' % (a))a = 200print('after : a = %d' % (a))print('-' * 8) # 全局變量修改 def global_var_func():print('-' * 8)global a # 全局變量必須要提前說,否則有問題,在 用 a 之前print('before : a = %d' % (a))a = 300print('after : a = %d' % (a))print('-' * 8)a = 100 # 全局變量 # 主要是開始位置 if __name__ == '__main__':# global a 有了會報錯,默認是這個 globalprint('main a = %d'%a)a = 1010print('main a = %d' % a)local_var_func()print('after local : main a = %d' % a)global_var_func()print('after global : main a = %d' % a)函數的注意事項
- 函數調用時候的傳參順序
- 局部變量,全局變量的預先聲明
- 帶默認值參數值的函數
- 注意作用域
文件操作
- 文件常有4類操作,分別是打開文件,讀文件,寫文件,關閉文件
文件的打開與關閉
# 打開文件 f = open('test1.txt', 'w'); # 打開方式可以有很多,如上整理所示 # 關閉文件 f.close()文件的讀寫
使用write寫數據
f.write(′寫入內容′)f.write('寫入內容')f.write(′寫入內容′)
- 注意,當文件不存在時,會創建,文件存在時會清空原文件的內容,然后寫入。
- 寫入的什么內容就是什么內容,沒有\n作為end默認結尾
demo:
# 打開文件 f = open('test1.txt', 'w+'); # 打開方式可以有很多 # 文件寫入 f.write('this is write thing!!!!!') # 不會像 print 一樣默認加 \n # 關閉文件 f.close()使用read讀數據
- f.read(num)f.read(num)f.read(num),其中numnumnum是按照字節進行計數的,numnumnum默認長度等于當前所剩文件字節長度,即從當前指針位置到文件末尾都被讀取。
- open(′filename′,′readingway′)open('filename', 'readingway')open(′filename′,′readingway′),讀寫方式默認是只讀。
- 倘若多次讀,讀取的數據是上一次讀的下一個位置。
- 函數的返回值類型是字符串
demo:
# 打開文件 f = open('test1.txt', 'r'); # 打開方式可以有很多# 文件讀取 context = f.read(5) print(context)context = f.read() print(context) # 關閉文件 f.close()readlines讀數據
- 沒有參數,每次將文件全部讀出,返回值是一個列表,列表的元素是一行
- 注意輸出的時候, print end里面的\n 可以省去了
結果展示
<class 'list'> ['123456789\n', 'abc\n', 'def\n', 'ghi'] 123456789 abc def ghireadline讀數據
- 讀出的是 str,而且注意他后面是有 '\n’的
運行結果:
<class 'str'> i=1:123456789 i=2:abc i=3:def i=4:ghi linecache模塊輸出特定行
text=linecache.getline(′filename′,lineCnt)text=linecache.getline('filename', lineCnt)text=linecache.getline(′filename′,lineCnt)
運行結果:
------ abc ------文件的相關操作
基本都是調用 OSOSOS模塊中的部分函數完成
- 文件的重命名 os.rename(old_name,new_name)os.rename(old\_name, new\_name)os.rename(old_name,new_name)
- 文件的刪除 os.remove(name)os.remove(name)os.remove(name)
- 創建文件夾 os.mkdir(name)os.mkdir(name)os.mkdir(name)
- 獲取當前目錄 os.getcwd()os.getcwd()os.getcwd()
- 改變默認目錄 os.chdir(路徑)os.chdir(路徑)os.chdir(路徑)'…/'表示上一級
- 獲取目錄列表 os.listdir(路徑)os.listdir(路徑)os.listdir(路徑), './'表示當前路徑下的目錄列表
- 刪除文件夾 os.rmdir(文件夾名)os.rmdir(文件夾名)os.rmdir(文件夾名)
文件重命名
倘若不在當前路徑下,需要給他加全
文件的刪除
倘若不在當前路徑下,需要給他加全
創建文件夾
倘若不在當前路徑下,需要給他加全路徑的位置
獲取當前目錄(路徑)
import os print(os.getcwd())獲取目錄列表
返回值是一個列表,內容是當前目錄下的內容
結果輸出:
['.idea', '2021_matplotlibOne.py', '2021_matplotlibTwo.py', 't1.png', 'test2.txt'] ['lessonOne11_8', 'test1', 'test2', 'test2.txt']改變默認目錄
import os print(os.getcwd()) # 查看當前路徑 os.chdir('../') # 返回上一級 print(os.getcwd()) # 查看當前路徑 os.chdir('D:\\PythonTry\\test1') # 返回特定路徑 print(os.getcwd()) # 查看當前路徑結果顯示
D:\PythonTry\test1 D:\PythonTry D:\PythonTry\test1刪除文件夾
import os os.rmdir('D:\\pythontry\\test2')錯誤與異常
異常簡介
- 當python檢測到一個錯誤時,解釋器就無法繼續執行了,反而會出現錯誤的提示,這就是異常。
捕獲異常 try … except …
經典的語法示例
try:<語句> #運行別的代碼 except <名字>:<語句> #如果在try部份引發了'name'異常 except <名字>,<數據>:<語句> #如果引發了'name'異常,獲得附加的數據 else:<語句> #如果沒有異常發生下面我們以打開文件失敗出現的 IOError示例
try:f = open("D:\\pythontry\\123.txt", 'r');context = f.readlines();for u in context:print(u, end=''); except IOError: # 當不存在該文件,或者是無法打開時print('文件打不開')下面介紹幾種常見的Error
詳細查看鏈接:https://www.cnblogs.com/smilelin/p/11451581.html
TypeError:類型錯誤,對象用來表示值的類型非預期類型時發生的錯誤
AttributeError:屬性錯誤,特性引用和賦值失敗時會引發屬性錯誤
NameError:試圖訪問的變量名不存在。
SyntaxError:語法錯誤,代碼形式錯誤
KeyError:在讀取字典中的key和value時,如果key不存在,就會觸發KeyError錯誤。
IndexError:索引錯誤,使用的索引不存在,常索引超出序列范圍,序列中沒有此索引(index)
IndentationError:縮進錯誤
TabError: Tab 和空格混用
except 捕獲多個、所有異常,并獲取異常的信息描述
參考資料和鏈接地址
- 大部分截圖都是來自 IT私塾課件
- python常見報錯類型參考于https://www.cnblogs.com/smilelin/p/11451581.html
總結
以上是生活随笔為你收集整理的python基础知识点小结(2021/2/9)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: reg类型变量综合电路_Verilog中
- 下一篇: java 程序输出 赵_编写一个完整的J