亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

python學習小結

系統 1729 0

#! /usr/bin/env python

# -*- coding: utf-8 -*-

?

# 注釋

換行寫代碼 \

?

進制

十進制 123456789

二進制 0b123

八進制 0o123

十六進制 0x123

?

變量不用聲明必須賦值

字符串 ' ' " " """ """ ''' ''' 用來括長字符串,保留換行格式

轉義字符 \

\uxxxx 表示使用Unicode編碼 # eg: "\u0040"

?

格式化字符串

在Python中很少用“+”進行字符串拼接,字符串只能和字符串拼接

print('a=',a)

創建字符串時指定占位符

b = 'sdasdasd%s'%'孫悟空'

b= 'dsadad%s%s'%('sdsad','sdad')

b = 'sdasdasd%3s'%'孫悟空' 最小填充3,不夠前邊補位空格

b = 'sdasdasd%3.5s'%'孫悟空' 最小填充3最長5,不夠前邊補位空格超出后邊截尾

?

b = 'sdasdasd%s'%123

b = 'sdasdasd%.1f'%123.5

b = 'sdasdasd%d'%123

?

b = r'sadsad' #字符串前加r表示,啟用原始字符串模式,轉義字符串等失效

?

%s%f%d

?

格式化字符串

c=f"hello {a} {b}"

?

print('a=',+a)

print('a=',a)

print('a=%s'%a)

print(f'a={a}')

print("adas",end="")

a="小米" * 20 #字符串乘以數字,字符串復制

?

boolean值 True False

bool python簡寫

None 空值

?

類型檢查

c=type(變量) #用來檢查值的類型

對象 id #內存地址 id()

type #類型 功能 type()

value #值

a 可變對象

123 不可變對象

?

int()

float()

bool() # '' 0 None

str()

?

算術運算符 +-*/ // #整除 ** 冪運算 %

賦值運算符

關系運算符 < > <= >= == != is is not #比較兩個對象是否為同一對象

邏輯運算符 not and or

非布爾值進行邏輯運算時,Python會將其當成boolean值運算,返回原值

邏輯運算符可以連號 result = 1 < 2 < 3

條件運算符

語句1 if 條件表達式 else 語句2

max = a if a > b else b

?

流程控制

條件判斷語句(if)

語法 : if 條件表達式 : 語句

代碼塊縮進管理多行

input(['參數'])

語法: if 條件表達式 :

代碼塊

else :

代碼塊

?

語法: if 條件表達式 :

代碼塊

elif 條件表達式 :

代碼塊

elif 條件表達式 :

代碼塊

elif 條件表達式 :

代碼塊

else :

代碼塊

?

?

?

循環語句

while

語法:

while 條件表達式 :

代碼塊

?

while 條件表達式 :

代碼塊

else :

代碼塊

?

break

continue

pass #占位

?

模塊引入

from time import *

time()

?

序列

列表 list [ ]

python列表可以存放任意數據

以下為通用操作對字符串有效

len(s)

index可以是負數,倒數 eg:-1 倒數第一個

切片獲取 list[start:end] #包括起始位置,不包括結束位置

起始位置和結束位置都可以省略

list[:]

list[start:end:步長] #步長不能是0,可以是負數,負數為逆序

list + 列表拼接 * 復制

in not in 檢查是否存在

print('dd' in list) # True False

min(list) #獲取最小值

max(list) #獲取最大值

s.index()

s.count(s[0]) #統計指定元素出現的次數

序列——————有序

可變序列

list

不可變序列

str

tuple #元組

?

可變序列可修改

索引修改

del s[2] # 刪除

切片 s[:] ##從頭到尾切片,獲得副本

切片替換 s[0:2] = ['s','w','w'] #可以多個替換一個

s[0:0] = 'd' # 索引0位置插入

s[::2] = ['s','s'] #設置步長時,賦值雙方list 數量一致

del s[::2] #切片刪除

s[0:2]=[] #賦值空來刪除

?

不可變序列

s=list(s) #強制轉換

?

可變序列方法

s.append(str) #添加元素

s.insert(i,x) #插入元素(非替換)

s.extend() #使用新序列擴展當前序列 【添加有個序列】

s.clear() #清空序列

s.pop(index) #根據索引刪除返回被刪除對象

s.pop() #刪除最后一個

s.remove(x) #刪除指定值,【刪除第一個】

s.reverse() #反轉

s.sort() #排序

s.sort(reverse = True) #排序

s.copy() s[:] ##制作副本的兩種方法

列表遍歷

for 變量 in 序列 :

代碼塊

?

range([start],end,[step]) #生成自然數的序列的函數

r = range(5) #[0,1,2,3.4]

list(r)

?

!!!! python 里的for循環

for i in range([start],end,[step]) :

代碼塊

else

break;/continue

?

?

tuple 元組 ()

創建

my_tuple = ()

my_tuple = 1,2,3,4 #元組不為空括號可以省略

my_tuple = 1,

#元組的解包(解構)

a,b,c,d = my_tuple

a,b = b,a #變量交換

a,b,*c = my_tuple # *c獲得剩余元素,像指針

##也可以對列表和str解包

?

可變對象

?

== != #比較值 is is not #比較對象

?

字典 dict

item項

key-value

創建

d = { }

語法:

d = { key:value,key:value }

d = dict(key=value,key=value) #dict 函數

雙值子序列

[1,2] (1,2) #雙值

[(1,2),(3,5)] #子序列

d = dict( [(1,2),(3,5)])

len(變量)

in

not in

'hello' in d #查看鍵是否存在

d[key] # key必須加引號

d['key'] = value #沒有的可以添加,不能讀取

setdefault(key[,default]) #添加字段,設置默認值

result = setdefault(key[,default]) # result 返回實際值

update([other])

eg:

d1={'a':1,'b':2}

d2 = {'c':3,'d':4}

d1.update(d2)

d1 = {'a':1,'b':2,'c':3,'d':4} #重復key會被d2替換

del d[key] #刪除

####方法

popitem() #隨機刪除一個item元素(一般刪除最后一個)返回兩個元素的元組,被刪除的那個

pop(key[,default]) #刪除指定的,返回刪除的值

#寫上默認值沒有不報錯,返回默認值

clear() #清空

copy() #對字典進行淺復制 只復制值,不會進行智能級聯復制

遍歷字典:方法

keys() :

for k in d.keys() :

d[k]

values() :

for v in d.values() :

v

items() :

for k.v in d.items() :

k v

?

集合(set) { }

存儲不可變對象 無序 不重復

s = {1,2,34,4}

s = set() #空集合

s = { } #空字典

s = set(序列或者字典) #轉換為集合

s = set(字典) #保留的集合體是鍵

in not in

'a' in s

len(s)

add() #集合中添加

s.add(10)

update() #講一個集合中的所有元素添加到集合中

s.update(s2) #s2可以是集合,序列,字典

pop()隨機刪除一個集合中的元素,并返回這個元素

s.pop()

result = s.pop()

remove() #刪除指定元素

s.remove(100)

clear() #清空

s.clear()

copy() #對集合進行淺復制

?

集合運算

s1={1,2,3,4,5}

s2={3,4,5,6,7}

& #交集

s3 = s1 & s2

| #并集

s3 = s1 | s2

- #差集

s3 = s1 - s2 # s3 = {`,2}

^ #異或集

s3 = s1 ^ s2 # s3 = {1,2,6,7}

<= #檢查一個集合是否為另一個集合的子集

a <= b # true a是b的子集,b是a的超集

< #檢查一個集合是否為另一個集合的真子集

a

>= > #檢查一個集合是否為另一個集合的超集

?

函數(function)

def 函數名([形參1,形參2,....形參n]):

代碼塊

調用函數 fn()

##函數的參數

在定義函數使,可以定義數量不等的形參,用‘,’隔開

def fn2(a,b):

a+b

def fn3(a,b=2) : # b=2 為默認值不傳參數不報錯,默認值生效

代碼塊

?

##調用時**

##位置參數一一對應

fn2(1,2)

##關鍵字參數

fn2(b=1,a=2)

##位置參數和關鍵字參數可以混合使用,,位置參數必須在關鍵字參數的前邊

eg:

print('hello',end=' ') #防止換行

?

實參類型可以為任意類型 ##Python 不檢查,所以Python函數中需要檢查參數類型

?

在定義函數時,可以在形參前加一個* ,這樣這個形參會獲取所有實參,并保存為元組,“參數裝包”

##不定長參數只能有一個,但可以配合其他參數

def fn(*a):

sum=0

for n in a :

sum+=n

print(sum)

?

def fn(a,b,*c):

?

所有帶* 的參數后的參數必須以關鍵字參數傳遞

def fn(a,b,*c,d,e):

fn(1,2,3,4,5,d=6,e=7)

?

def fn(*,a,b):

##表明該函數必須以關鍵字參數傳遞

!!## *形參必須以位置參數傳遞,不能接收關鍵字參數

## “**” 形參可以接收其他關鍵字參數,他會將這些參數保存到一個字典中,字典的key為參數名,value為參數值

## **形參只能有一個,并只能放在所有形參最后

?

實參

參數解包(拆包) * 序列解包

#fn(1,2,3)

# t=(1,2,3) #序列都可以,元組或列表

fn(*t)

傳遞參數時也可以在序列的參數前添加星號,這樣他會自動將序列中的元素依次作為參數傳遞

?

字典實參解包,用**解包

d={a:1,b:2,c:3}

fn(**d)

?

返回值

return :

return #100 or 變量

return None

return 結束函數

?

文檔字符串(doc str)

help() #Python的內置函數,可以查詢Python中函數用法

hellp(函數對象) #hellp(print)

--函數內部編寫函數說明

--文檔字符串,直接寫在函數第一行的字符串

def fn(a:int,b:bool,c:str='hello') ->str : # 參數后冒號只是描述作用,也能看成文檔字符串的一種;= 表示默認值 ; ->表示返回值

'''

doc str

'''

代碼塊

?

作用域(scope),命名空間(namespace)#變量存儲位置

每一個作用域都有一個自己的命名空間

命名空間實際上就是一個字典,是一個專門用來存儲變量的字典

locals() #用來獲取當前作用域的命名空間

#如果在全局作用域中調用locals()獲取全局命名空間

dict = locals()

scope = locals() #當前命名空間

scope['c'] = 1000 #向字典中添加key-value 相當于在全局變量中創建了一個變量

globals() #此函數可以在任意位置獲得全局命名空間

scope = globals() #全局命名空間

遞歸 1.基線條件問題分解的最小條件,此時不再遞歸,直接返回

2.遞歸條件 將問題繼續分解的條件

#基線條件,判斷n==1 不再循環

10!=10*9!

9!=9*8!

......

2!=2*1!

1!=1

def fn(n) :

#基線條件

if(n==1):

return 1

#遞歸條件

return n*fn(n-1)

?

def hui_wen(s):

#基線條件

if len(s) < 2 :

return True

elif s[0] != s[-1] :

return False

return hui_wen(s[1:-1])

?

Python中函數是一等對象

函數式編程

?

高階函數:接收一個或多個函數,將函數作為返回值返回

?

普通函數改變的返回值,得到返回值不影響原對象

?

【高階函數1:參數是函數】

def fn(fnc,lst):

new_ls = []

for n in lst :

if fnc(n) :

snew_ls.append(n)

return new_ls

?

內置函數

filter(function,iterable) #參數:1方法;2可迭代

#過濾器

#參數

# 1.函數,根據此函數過濾 。True 為通過元素,通過過濾

# 2.需要過濾的序列(可迭代)

#返回值

# 過濾后的新序列(可迭代)

?

匿名函數 lambda函數表達式(語法糖)

#語法

lambda 參數列表 : 返回值

實例

1. def fn(a,b):

return a+b

2. lambda a,b : a+b

調用

(lambda a,b : a+b)(10,20)

3. fn = lambda a,b : a+b

調用

fn(10,20)

?

map()

map()函數可以對可跌倒對象中的所以元素做指定操作,然后將其添加到一個對象中返回

l = [1,2,3,4,5,6,7]

r = map(lambda i : i+1 , l) #i 為l中的元素

?

sort() #列表的方法

#該方法用來對列表中的元素進行排序,影響原對象

#sort()方法默認是直接比較列表中的元素的大小

#在sort()可以接收一個關鍵字參數,key

# key需要一個函數作為參數,當設置了函數作為參數

# 每次都會以列表中的一個元素作為參數來調用函數,并且使用函數返回值來比較元素大小

list.sort()

#是用“<”進行比較的

list.sort(key=len)

?

sorted() #與sort()使用方法一樣

#對任意序列都可以排序,返回新對象

?

【高階函數2】

返回值是函數

#閉包

def fn():

#函數內部定義一個函數

def inner():

print('晚上好')

return inner

fn()()

?

通過閉包可以創建只有當前函數可以訪問的變量

?

# sum(list)/len(list) 求平均值

?

def make_averager():

#創建一個列表,用來保存數值

nums= [ ]

#創建一個函數,用來計算平均值

def averager(n) :

#將n添加到列表中 #nums=[] 不能放這里是因為重新new了,會為空

nums.append(n)

#求平均值

return sum(nums)/len(nums)

return averager

?

#閉包的形成->數據安全,隱藏外部變量

1.有函數嵌套

2.將內部函數作為返回值返回

3.內部函數必須要使用到外部函數的變量

?

裝飾器

#OCP原則 開放對程序擴展,要關閉對程序的修改

###? 運用了閉包

-----------------------------------------------------------------------

def fn(old):

...

用來對其他函數進行擴展

...

def new_fn(*args , **kwargs): #對位置參數和關鍵字參數進行裝包

xxxxxx #擴展代碼

result = old(*args , **kwargs) #對位置參數和關鍵字參數進行解包

xxxxxx #擴展代碼

return resukt

#返回新函數

return new_function

----------------------------------------------------------------------

調用

f= fn(fn1)

r=fn(fn2)

?

真實場景:

創建裝飾器函數begin_end

使用

@begin_end #注解方式添加裝飾器

def say_helllo():

print('大家好')

調用

say_hello()

#可以多個裝飾同時使用

@begin_end #注解方式添加裝飾器

@fn

def say_helllo():

print('大家好')

say_hello() #內裝飾器先起作用,fn先起作用

?

面向過程,符合人類思想;函數式編程,復用性提高;面向對象,對象自己自己完成

?

?

##類class

#類的定義

構成:1數據(屬性【一般保存到實例中】)2行為(方法【一般保存到類中】)

#語法 class 類名([父類]):

代碼塊

公共的屬性。。

#對象初始方法

def __init__(self,....):

...

#其他方法

def method_1(self,....):

....

def method_2(self,....):

....

.........

class MyClass():

name='' #公共屬性 相當于java中static類型,只有實例沒有時,默認查找

def fn(self): #公共函數,類中的函數必須有一個形參

print(1) #函數無法訪問類中的變量

print(MyClass)

#類方法(在類內部使用@classmethod來修飾的方法屬于類方法)

@classmethod

class MyClass():

name='' #公共屬性 相當于java中static類型,只有實例沒有時,默認查找

@classmethod

def fn(cls): #類方法,也必須有一個形參cls,cls代表類對象

print(1) #函數無法訪問類中的變量

print(MyClass)

#創建對象

mc = MyClass() #創建對象不像java一樣需要new

# isinstance(object,Class) 函數檢查一個對象是否為一個類 的實例

對象.屬性= 值;

mc.myFunction() #調用類中方法時自動傳一個參數(對象本身,和java中的this有點像)

#方法每次調用時第一個參數,默認為self

?

#類中可以創建一些特殊方法(魔術方法)

#特殊方法以__開頭,以__結尾

#特殊方法不需要 我們自己調用,會自動調用

class Person :

def __init__(self):

print('a')

pass

def say_hello(self):

pass

?

p1=Person()

p1.say_hello()

?

對象創建流程

自上而下執行代碼,先執行類中代碼塊

1創建一個變量

2在內存中創建一個對象

3_init_(self)方法執行

4將對象id賦值給變量

?

#可以為class中對象的屬性定義時使用雙下劃線,__xxxx

#雙下劃線開頭的屬性,是對象的隱藏屬性,隱藏屬性只能類內部訪問,不能通過對象訪問(!=java中的private) __屬性名 -> _類名_屬性名

?

一般類中的私有屬性用“下劃線”+屬性

?

get set 方法屬性話

添加"屬性"裝飾器

get方法裝飾器方法上邊添加

@property

set方法裝飾器

@屬性名.setter

_# get方法先設計,才能設計setter方法

?

繼承

Class 類名([父類]):

pass

isinstance(d,Object) #判斷d是否為object的實例

issubclass(a,b) #判斷a是否為b的子類

#類名.__bases__ 獲得當前類的父類

##Python是多繼承的(java是單繼承的)

類名(父類,父類):

pass

#多個父類中有同名方法,先在第一個父類中找

?

多態

?

len()是因為對象中有特殊方法__len__()

?

類的屬性和方法

#靜態方法

@staticmethod

def fn():

pass #類中靜態方法無參數

?

垃圾回收

自動垃圾回收機制(和java挺像的嘛,哈哈)

#del是一個特殊方法,他會在對象被垃圾回收前自動調用,回收的是類對象

def __del__(self):

pass

?

#特殊方法,魔術方法

雙下劃線開頭結尾

一般不需要我們手動調用,一般在特殊情況下自動調用

__str__() :對象被打印時調用

__repr__() :在對對象使用repr()函數時調用,是在交互模式下自動調用,即在命令窗口a回車,輸出a的值時調用

object.__lt__(self, other) <

object.__le__(self, other) <=

object.__eq__(self, other) =

object.__ne__(self, other) !=

object.__gt__(self, other) >

object.__ge__(self, other) >=

#判斷大小

__len__() #獲得長度

__bool__() #boolean 裝換規則

object.__add__(self, other)

object.__sub__(self, other)

object.__mul__(self, other)

object.__matmul__(self, other)

object.__truediv__(self, other)

object.__floordiv__(self, other)

object.__mod__(self, other)

object.__divmod__(self, other)

object.__pow__(self, other[, modulo])

object.__lshift__(self, other)

object.__rshift__(self, other)

object.__and__(self, other)

object.__xor__(self, other)

object.__or__(self, other)

.....................

#運算特殊方法

?

模塊化

#一個Python文件就是一個模塊

#在一個模塊中引入外部模塊

1.import 模塊名(Python文件名,不帶后綴)

module為單實例

2..import 模塊名 as 模塊別名

import 可以在程序的任意位置調用,一般在開頭

每個模塊內部都有一個__name__屬性。通個這個屬性可以獲得模塊的名字

__name__為__main__的是主模塊

#調用

模塊名.變量名

3.只引入模塊的部分內容

#語法

from 模塊名 import 變量,變量,....

from 模塊名 import 變量 as 變量別名

#調用

變量名

from 模塊名 import *

#### 模塊中 _變量 是隱藏變量,用from 模塊名 import *不起作用

?

#測試代碼

#只有單前代碼為主模塊時執行

if __name__ == '__main__' :

pass

?

包 package

import 包名

#包中必須有一個__init__.py 文件,其中有包中的主要文件

from 包名 import 文件名/模塊名

?

#__pycache__是模塊緩存文件

#py代碼在執行時會轉換為機器碼,所以我們在使用模塊時,也需要將模塊代碼轉換為機器碼,Python在編譯一次后會放入緩存文件中

?

Python標準庫

核心思想:開箱

sys模塊,Python系統參數變量,操作解析器

import sys

1.sys..argv 獲得解釋器參數列表

print(sys..argv)

2.sys.modules 獲得當前進程引入的所有模塊(字典)

print(sys..modules )

#key 模塊名,value 模塊實例對象

3.sys.path 模塊搜索路徑的列表,即調用模塊的搜索順序

4.sys.platform 當前Python運行平臺即系統環境

5.sys.exit([str提示]) 函數用來退出程序

?

pprint 模塊 提供了pprint()方法,該方法可以對打印的數據做簡單的格式化

pprint .pprint (數據)

?

os 模塊,對操作系統進行訪問

import os

1.os.environ 通過這個屬性可以獲得系統的環境變量

pprint .pprint (os.environ['path'])

2.os.system([str命令]) #執行系統自身的命令

3.listdir()

import os

from pprint import pprint

#os.listdir([path=''])獲取指定的目錄的目錄列表(默認為當前目錄'.')

r=os.listdir()

pprint(r)

4.os.getcwd()#獲得當前所在目錄

5.os.chdir([path])#切換目錄

6.os.mkdir(path)#創建目錄

7.os.rmdir(path)#刪除目錄

8.open('aa.txt','w')#創建文件

9.os.remove('aa.txt')#刪除文件

10.os.rename('舊名字','新名字')#重命名或剪貼

os.rename('舊名字','新路徑名字')

?

##異常

try語句

try:

代碼塊(可能錯誤代碼)

except:

代碼塊(處理方式)

else:

代碼塊(沒錯誤時執行代碼,錯誤不執行)

?

異常的傳播---拋出異常

產生異常時,實際上是創建了一個異常對象

?

try語句

try:

代碼塊(可能錯誤代碼)

except NameError:

#如果except后邊不跟內容,捕獲所有異常

#如果except后邊跟一個異常類型,捕獲此類異常

代碼塊(處理方式)

except IndexError:

代碼塊

except [Exception]:

代碼塊

else:

代碼塊(沒錯誤時執行代碼,錯誤不執行)

?

?

try:

代碼塊(可能錯誤代碼)

except Exception as e :

代碼塊(處理方式)

else:

代碼塊(沒錯誤時執行代碼,錯誤不執行)

finally :

代碼塊

?

try必須有,except 和 finally必須有一個

?

?

#拋出異常

raise

raise 語句后需要跟一個異常類或者異常的實例

if(a<0):

raise Exception('a為負數') #強行拋出異常

?

自定義異常類,創建類繼承Exception

class MyException(Exception):

pass

?

文件(File)

1.打開文件

open()

open(file, mode='r', buffering=-1, encoding=None, errors=None, newline=None, closefd=True, opener=None)

默認是以文本模式打開(文本模式,二進制模式)

文本文件: encoding='utf-8'

操作模式:mode='r' # mode='w' 時,沒有文件會創建,存在會截斷; # mode='a' 追加內容,沒有文件會創建,存在會追加內容 ;# + 追加操作,mode='r+',即可讀又可寫,mode='w+',即可寫又可讀,mode='a+',即可追加又可讀; mode='x' 新建文件,如果文件存在報錯,不存在創建,并可寫入(可避免覆蓋已有的);t 默認情況下,文本文件;b 二進制文件,mode='rb';

參數:file文件路徑

file_object = open(路徑) #返回文件對象

2.操作

content = file_object.read() #讀取所有內容

@1 讀取

#help(file_object.read)

#file_object.read(-1)

#file_object.read(count) #讀取指定數量的內容, i

try:

with open(file_name,encoding='utf-8') as file_object :

file_count=''

chunk = 100

while True:

content = file_object.read(chunk ) #讀取所有內容

print(content,end='' )

if not content :

break

file_count +=content

except FileNotFoundError:

代碼塊(處理方式)

?

# readline() 讀一行

# readlines() 以列表形式保存

try:

with open(file_name,encoding='utf-8') as file_object :

for file_count in file_object :

print(file_count )

file_count +=file_count

except FileNotFoundError:

代碼塊(處理方式)

?

@2 寫 write()

with open(file_name,mode='w',encoding='utf-8') as file_object :

# open(file_name,'w',encoding='utf-8')

#指定操作類型w

#write文本型直接write(str)

file_object.write('hello')

file_object.write('hello\n')

r=file_object.write(str(123)) #可以分段寫入,只能寫入字符串,每次寫入會返回寫入的長度

?

#舊文件

file_name=''

with open(file_name,mode='rb') as file_object :

#二進制不要encoding

#新文件

new_name = '';

with open(file_name,mode='wb') as new_object :

#每次讀取大小

chunk = 1024*100

while True :

#從舊文件讀取

content = file_object.read(chunk)

#內容讀取完畢終止

if not content :

break

#將讀取到的寫入新文件

new_object.write(content )

?

@3 讀取位置

tell()查看當前讀取位置

seek() 修改當前讀取位置

#seek()需要兩個參數,1要切換的位置;2計算位置方式(0,1,2)

#0表示從頭計算(默認值);1表示從當前已讀位置計算;2表示從最后位置接著讀,用-1倒數

with open(file_name,mode='rb') as file_object :

print(file_object.read(100),end='' )

print('當前讀取到了',file_object.tell())

file_object.seek(55,0)

?

3.保存

4.關閉

file_object.close()

?

#with ... as 語句

with open(file_name) as file_object :

#file_object 存活時間只是在with 。。。 as 的代碼塊中,等于自動關閉

print(file_object .read())

?

#

try:

with open(file_name) as file_object :

print(file_object .read())

except FileNotFoundError:

代碼塊(處理方式)

else:

代碼塊(沒錯誤時執行代碼,錯誤不執行)

?

文件的其他操作

os


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 欧美日韩性视频在线 | 久久久噜噜噜久久网 | 九九99热久久国产 | 日产国语一区二区三区在线看 | 欧美日韩亚洲综合在线一区二区 | 全网毛片 | 九九热视| 日日夜夜精品免费视频 | 杨幂国产精品福利在线观看 | 亚洲欧美国产18 | 奇米狠狠色 | 国产精品日韩欧美一区二区三区 | 色综合色综合色综合 | 亚洲精品久久久久影院 | 免费一级成人毛片 | 九九国产在线 | 欧美性猛交xxx嘿人猛交 | 狠狠狠操 | 站长推荐国产精品视频 | 国产福利一区视频 | 亚洲一区三区 | 亚洲欧美日韩一区成人 | 日日噜噜夜夜狠狠tv视频免费 | 日日干干| 2020国产精品视频免费 | 欧美a级成人淫片免费看 | 日韩视频一区 | 久久机热这里只有精品无需 | 伊人久久视频 | 亚洲成人免费网站 | 久草精彩视频 | 亚洲精品二三区伊人久久 | 婷婷毛片 | 精品中文字幕在线 | 亚洲毛片在线免费观看 | 天天做天天做天天综合网 | 成人久久精品一区二区三区 | 午夜性色福利视频在线视频 | 亚洲一级视频在线观看 | 久久免费精品一区二区 | 福利姬在线视频国产观看 |