日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

python基础知识点小结(2021/2/9)

發布時間:2024/7/5 python 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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 使用中文時,有時候會出錯,記得加上
# -*- coding:utf-8 -*-

變量、標識符和關鍵字

變量

  • 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()
  • 下面看幾個有趣的實驗
# 表達式的計算直接就使用 eval(),簡單方便好使 >>> a = 123 >>> b = eval(input()) a * 2 >>> b 246

運算符和表達式

算數運算符

  • 注意,負數求余的正負,關鍵是看%\quad \% \quad%后數字的正負
    小實驗
>>> a = 12.5 >>> b = 2 >>> a % b 0.5 >>> a / b 6.25 >>> a // b 6.0 >>> a ** b 156.25 >>> b ** a 5792.618751480198 >>> -15 % -2 # 余數的正負,跟隨 % 后數的正負 -1 >>> 15 % -2 -1 >>> -15 % 2 1 >>> 15 % 2 1

比較運算符

賦值運算符

位運算符

邏輯運算符和成員運算符

身份運算符

運算符優先級
\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 \*
import random as rd ''' 規則: 剪刀(0),石頭(1),布(2),退出(3),其他輸入都是不合法首先是一個while循環,然后不斷的接收輸入的數據,輸入數據合法是退出信號直接退出 石頭剪刀布我們的random數據做比較,輸出你贏了,你輸了,是平局輸入不合法要求重新輸入,并說出游戲規則 ''' gesture = ["石頭", "剪刀", "布"]; while True:print('--------------------------------------------------------');_data = input('規則: 剪刀(0),石頭(1),布(2),退出(3),其他輸入都是不合法\n請輸入數據:')_rdm = rd.randint(0, 2);if _data == '0' or _data == '1' or _data == '2': # 合法的正確輸入,和隨機數比大小_data = int(_data);print('玩家出的是%s' % gesture[_data]);print('電腦出的是%s' % gesture[_rdm]);if _data == _rdm:print("雙方平局");elif _data == 0 and _rdm == 2 or _data == _rdm + 1:print('玩家贏了');else:print('玩家輸了');elif _data == '3': # 游戲退出print('游戲結束');break;else: # 非法輸入print('輸入數據錯誤,請重新輸入');continue;

循環語句(for&while?\Rightarrow?break&continue&pass)

for循環形式
借助range()

  • 注意range(start, end, step), 從start開始,步長為step,一直到end(但是取不到end)
for i in range(5): # 輸出的是 0~4,不會到5的print(i); for i in range(1, 6, 2): # 輸出的是1, 3, 5print(i);

用于列表和字符串

name = 'tengzhou' for i in name: #會把 tenghzhou 在一行輸出print(i, end='');

while循環形式
練習1~n的累加和,和偶數的 累加和

n = 100; sum_all = 0; sum_even = 0; i = 1; while i <= n:sum_all += i; # 任意數if (i & 1) == 0: # 偶數sum_even += i;i += 1 print('1~100的數字和為:', sum_all); print('1~100的偶數和為:', sum_even);

break, continue, pass語句
break, continue, pass的區別與聯系

練習打印九九乘法表

i = 1; j = 1; # 打印 i * j # i 作為外層循環,j 作為內層循環 while i <= 9:j = 1;while j <= i:if j < i:print("%d * %d = %2d" % (i, j, i * j), end = ', \t');else:print("%d * %d = %2d" % (i, j, i * j));j += 1;i += 1;

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

# 單引號的和雙引號的區別,關鍵在于轉義字符 str1 = 'I\'am a student'; str2 = "I'am a student"; str3 = 'She said "I like you"'; str4 = "She said \"I like you\"" print('str1=', str1); print('str2=', str2); print('str3=', str3); print('str4=', str4); # 三引號 s1 = '''line1 line2''' s2 = 'line1\nline2' s3 = "line1\nline2" s4 = 'line1\ \nline2' print('s1=', s1); print('s2=', s2); print('s3=', s3); print('s4=', s4);

轉義字符

字符串的截取與連接

  • print(str[0:7:2]); # [起始:終止:步長]–>[st:step:ed],注意是取不到 ed 的
  • print(r’hello\npython’); # 在字符串面前加一個 r 表示原始字符串,不會發生轉義。
  • print(str[0:-1]); # 輸出字符串0到倒數第二個,其實-1表示是最后一個,但是[st:ed]取不到最后一個。
    直接上代碼的示例
# 字符串的截取與連接 str = "shandong"print(str); # 輸出字符串 print(str[:]); # 輸出字符串 print(str[0:]) # 輸出字符串 print(str[0:-1]); # 輸出字符串0到倒數第二個 print(str[0]); # 輸出第0個字符, 從0開始計數 print(str[2:5]); # 輸出第2個到第4個字符,從0開始計數 print(str[2:]); # 輸出第2個到最后 print(str * 2); # 輸出兩遍 print(str + 'tengzhou') # 字符串連接后輸出 print(str[:5]); # 輸出從第0個到第5個字符 print(str[0:7:2]); # [起始:終止:步長]-->[st:step:ed],注意是取不到 ed 的print('------------------------------'); print('hello\nshandong'); print(r'hello\npython'); # 在字符串面前加一個 r 表示原始字符串,不會發生轉義。

字符串的常見操作



列表

  • 列表中的數據結構可以不同,支持數字、字符串,也可以包括自身(列表的嵌套)。
  • 列表元素寫在 [] 之間,用 ‘,’分隔開。eg:list = [‘abcd’, 123, 2.123, ‘python’, 36.5];
  • 索引值和 str類似,0表示開始數值, -1表示末尾的開始位置
  • 同 string 相同, + 表示列表的拼接, * 表示列表的重復

列表的定義與訪問
詳情請看下面的代碼示例

test_list = ['shanghai', 'beijing', "hunan", 123]; for x in test_list: # 輸出形式 1print(x); for i in range(len(test_list)): # 輸出形式 2print(test_list[i]);

列表的常用操作

  • 直接下標訪問、切片、遍歷列表
  • 增加:append(element), extend(List)相當于將列表中的元素遍歷進行append(), insert()插入到具體的位置
  • 刪除:del(idx), remove(val), pop(void)
  • 修改,直接進行下標訪問進行修改
  • 查詢是否在列表中, In, not in
  • + 用于連接
  • 列表的排序sort(), 翻轉的reverse()
  • 長度,最大值、最小值、強制類型轉換: len, max, min, list;

列表的嵌套

import randomoffices = [[], [], []]; # 三個辦公室 teacher = ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H']; # 8個教室for tea_name in teacher:tmp = random.randint(0, 2);offices[tmp].append(tea_name);i = 1; for off in offices:print('辦公室%d有%d人'%(i, len(off)), end='\n\t');for tea in off:print(tea, end=' ');print('');print('-'* 10);i += 1;

編程作業

作業的實現的代碼如下:

# 商品數據定義 products = [["iphone", 6888], ["MacPro", 14800], ["XiaoMin6", 2499],["Coffee", 31], ["Book", 60], ["Nike", 699]];# 商品顯示 i = 0; print('-'*6, ' 商品列表 ', '-'*6); for goods in products:print('%d\t'%i, goods[0], '\t', goods[1]);i += 1;# 商品購買的循環 buy_goods = []; while True:tmp = input('請輸入商品標號,或者是輸入q退出\n');if tmp == 'q':print('退出成功');break;elif tmp.isnumeric():tmp = eval(tmp);if tmp < 0 or tmp >= len(products):print('數據輸入錯誤,請重新輸入');continue;else:buy_goods.append(products[tmp]);else:print('數據輸入錯誤,請重新輸入');continue;# 打印購買的商品和總價 print('-'*6, ' 購買的商品為 ', '-'*6); money = 0; for goods in buy_goods:print('%s\t%d'%(goods[0], goods[1]));money += goods[1]; print('總價=%d'%money);

元組

  • 元組與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]

元組的定義和訪問

  • 創建一個空元祖
  • 元組的定義
  • 元組的訪問
  • 元組的元素值是不允許修改的,但是我們可以對元組進行連接組合形成一個新的元組。
  • 將元組刪除釋放之后,再次訪問會報錯,是非法的。
# 創建空元祖 tuple1 = ();# 創建僅僅一個元素的元組 tuple1 = (2, ); # 注意,元組指向內存單元的內容不可以改,但是變量作為便簽是可以指向其他地方的 int1 = (2); # 這個不加逗號的不是元組,是一個整數表達式# 元組的訪問 tuple1 = ('Google', 'baidu', 2000, 2020); tuple2 = (1, 2, 3, 4, 5, 6, ); # 這個后面的逗號是可加可不加的 print("tuple1[0]=%s"%tuple1[0]); print("tuple1[2]=%d"%tuple1[2]); print("tuple1[2]=%s"%tuple1[2]); print('%s'%1); # 整數也是可以直接 %s 轉換為 string 類型的 print(str(1)); print('tuple2[1~5]:', tuple2[1:5]);# 假設元組某個元素是可變類型list,我們看看list是否可以正常修改 --> 是可以正常修改的 tup3 = ([0], ); print(type(tup3)); for x in tup3:print(x); x.extend([2, 3, 4, 5, 6]); x.pop(); for y in tup3:print(y);# 嘗試修改其他的 tup1 = (12, 34.56); tup2 = ('abc', 'xyz'); # 下面的操作是非法的 # tup1[0] += 2; # 我們可以進行元組的連接 tup3 = tup1 + tup2; for i in tup3:print(i);# 我們釋放一下tup1內存試一試 del tup1 print(tup3); # 這個是ok的,所以說tup3是新開的內存 print('-' * 6); ''' 都報錯,說明還是別用了,釋放之后,在為重新賦值之前就別用。 i = tup1; print('1', type(i)); # print(tup1); # 什么都輸出不了了,被釋放了 '''

常用操作


操作名稱操作方法舉例
元組的加法操作+tup3 = tup1 + tup2

字典

  • 字典是無序對象的集合,使用(key-value)存儲,支持告訴查詢
  • 鍵(key)必須使用不可變數據類型
  • 同一個字典中鍵必須是唯一的
# 字典的測試 d = {'Mich':99, 'aadf':25, 123:24, 25:[123, ]} #[123,]:10不行,但是10:[123, ]是可以的,即key不可變,val可變 print(d['Mich']) print(d[123]) # 后面的會覆蓋前面的

字典的定義與訪問

  • 字典的定義需要使用{}, 不同于元組,因為他的可區別性強,因此編譯器在編譯的時候不需要額外的加分號。
  • 字典和列表類似,可以存儲多種數據結構;
  • 對比列表,列表元素的查找根據下標,字典查找元素是根據‘名字’。
  • 字典的每個元素由兩部分組成,key:valuekey:valuekey:value
  • 當字典根據鍵訪問數值時候,使用 dict[key]dict[key]dict[key]當元素不存在的時候會報錯,但是當使用dict.get(key,default=′′)dict.get(key, default='')dict.get(key,default=),鍵值不存在時,會返回默認值空,或者是自己填。
    下面是代碼嘗試
info = {'name':'小妖怪', 'age':21}; print(info['name']); print(info['age']); # print(info['sex']); # 不存在會報錯# 使用 get 成員函數 x = info.get('sex'); print(x); print(type(x)); print(info.get('sex', '啥也沒有'))

常用操作


集合

  • 想要定義的時候直接強制類型轉化就行。
  • set是無序的,任何重復元素都會被過濾掉。
  • 相當于僅有key 的字典,數據不可以是可變類型list,但是可以為元組 tuple
  • 相比較c++c ++c++ 中的集合,他的數據類型是可變的。
set1 = set([1, 2, 3, 4, 4, 0, 1, 2]); for i in set1:print('%d '%i, end=''); set1.add('adf'); # 只能加一個 # set1.add(['adfa', 'dfa']) 應該是不能加可變類型list set1.add(('adfa', 'dfa')) # 但是可以加元組 tuple set1.update(set([5, 6, 7 , 8])); # 這個加的是一個集合 print('') for i in set1:print(i, end=' ');

常用操作

小結

函數

函數的概念

  • 為了提高編程的效率和代碼的復用性,將常用的一段代碼封裝成一個模塊,這個就是函數。

函數的定義和調用

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類似)
def divide(a, b):return a//b, a%b; if __name__ == '__main__':print(divide(100, 3));x, y = divide(100, 3);print('x=%d, y=%d'%(x, y))

運行結果:

課堂練習

代碼

# 打印一條線的函數,默認含有 6 個'-' def print_One_Line(cnt = 6):print('-' * cnt);return; # 默認打1行,1行6個 def print_Line(a = 1, b = 6):for i in range(a):print_One_Line(b);return; # 三個數字的和 def three_sum(a, b, c):return a + b + c;# 三個數字的平均數值 def three_ave(a, b, c):return three_sum(a, b, c) / 3;# 主函數起始點,調用自定義函數 if __name__ == '__main__':print_One_Line();print_Line(5);print(three_sum(1, 2, 3));print(three_ave(1, 2, 3));print(type(three_ave(1, 2, 3)));

局部變量和全局變量

  • 在函數外面定義的是全局變量
  • 全局變量可以在定義的函數內部訪問(無同名的局部變量的前提下),但是如果想要修改的話,就需要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 可以省去了
# 打開文件 f = open('test1.txt', 'r'); # 打開方式可以有很多 # 文件讀取 context = f.readlines() print(type(context)) print(context) for i in context:print(i, end='') # 注意我們的一行字符串已經包含 \n 了,輸出的時候注意格式,可以把print 里面的\n給去掉 # 關閉文件 f.close()

結果展示

<class 'list'> ['123456789\n', 'abc\n', 'def\n', 'ghi'] 123456789 abc def ghi

readline讀數據

  • 讀出的是 str,而且注意他后面是有 '\n’的
# 打開文件 f = open('test1.txt', 'r'); # 打開方式可以有很多# 文件讀取 context = f.readline() print(type(context)) i = 0 while context != '':i += 1print('i=%d:%s'%(i, context), end='') # 同理,end 不要 \n,要換成空串context = f.readline()if context == '':break # 關閉文件 f.close()

運行結果:

<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)

import linecache text = linecache.getline('test1.txt', 2) print('-' * 6) print(text, end='') print('-' * 6)

運行結果:

------ 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 os.rename('D:\\pythonTry\\test.txt', 'D:\\pythonTry\\test2.txt')

文件的刪除
倘若不在當前路徑下,需要給他加全

import os os.remove('D:\\pythonTry\\test2.txt')

創建文件夾
倘若不在當前路徑下,需要給他加全路徑的位置

import os os.mkdir('D:\\PythonTry\\test2') # 在 D:\pythonTry這里加一個名字為 test2的文件夾

獲取當前目錄(路徑)

import os print(os.getcwd())

獲取目錄列表
返回值是一個列表,內容是當前目錄下的內容

import os print(os.listdir("./")) print(os.listdir("D:\\pythontry"))

結果輸出:

['.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)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。