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

歡迎訪問 生活随笔!

生活随笔

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

python

python自动计算多个教学班的优秀率_第二个月课堂009python之总结(002)

發布時間:2025/3/12 python 49 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python自动计算多个教学班的优秀率_第二个月课堂009python之总结(002) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

python7天的總結

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

評價:1、函數 def? 自定義行數和內建函數

2、re模塊

3、python3和python的去別

4、字典,元組,列表,元組,集合的聯系和區別

Python

一、Python介紹:

1、什么是Python?

Python是一門面向對象,解釋型的動態類型的編程語言;

Guido van Rossunm?吉多·范羅蘇姆 荷蘭計算機程序員

2、什么是面向對象?

Python中一切皆為對象,對事物的描述和方法系統的定義為一個類,在這個類中的具體的一個實例就是我們所說的對象

例如:人就是一個類? ?-------??wf?對象

3、什么是解釋型?

Python程序執行時無需先進行編譯成二進制代碼,直接在執行過程中對語句一條條進行編譯

例如:java??裝了jdk?編譯,python不需要,可以直接編譯

4、什么是動態類型?

是指Python程序在運行時可以改變其結構,新的函數可以被引進,已有函數可以被刪除

例如:在運行的情況下修改,返回值(存儲過程中可以運行以后拿到值,進行運用)

5、Python的特點?

a.特點:簡單、易學、免費開源、可擴展性、可移植、高級語言、豐富的類庫;

b.應用領域:網頁開發、可視化界面開發、系統編程、數據分析、網絡爬蟲(用的多)、自動化腳本開發(測試用的多);?java,ruby?、數據分析、AI人工智能、大數據、云計算、

6、Python的實際應用:

Youtube、豆瓣網、知乎

7、Python所支持的平臺:

windows、linux ,macos

8、Python市面上使用的版本:

Python 2.7.xxxx (現在一些windows都支持,穩定)

Python 3.0.xxxx?現在的主流會越來越流行(目前最新版本3.9);

差別:版本的高低級而已,就是有一些功能不一樣

二、Python中的運算

1,算術運算符

1,+?加;2,-?減;3,*?乘;4,/?除;5,%?取模;6,**取冪

7,//取整除'''

注意點:他們的優先級:先乘除后加減

2,賦值運算

1,+=??加法賦值?;2,-=? ?減法賦值;3,*=?乘法賦值

4,/=??除法賦值;5,%=??取模賦值;6,**=??冪賦值運算符

3,比較運算符

1,== ?等于;2,!=??不等于;3,>??大于;4,

5,>=?大于等于;6,<=??小于等于

注意:結果事返回布爾值:falsh?,true

4,邏輯運算符

1,and?與;2,or?;3,或;4,not? ?非

返回的結果也是布爾值;

5,位運算

1,&按位與

概念:把十進制轉化換二進制,上下對應位都是1,則取1,否則取0,結果再轉化換十進制

2,按位或

把十進制轉換成二進制,上下對應位只要有一個是1,則取1,都為0則取0,結果再轉換十進制|

3,按位異^

把十進制轉換成二進制,上下對應位不相同,取1,相同取0,結果再轉換成十進制

4,?按位取反~

公式?-(a+1)?變量a先加1再取負數

5,?向左移?<<

把變量轉換成二進制,左移相應的位數把小數點右移小數位數,結果是小數點左邊的二進制轉換成十進制

6,?向右移?>>

把變量轉換成二進制,右移兩位把小數點左移兩位,結果是小數點左邊的二進制轉換成十進制

7,成員運算符:in和not in

返回的也是布爾值;

三、?索引與切片

索引:索引?在公司中一般也叫做下標或者角標

1、我們可以通過索引位讀取序列中的指定元素,索引可分為正向索引和負向索引

2、索引的表達式:str[x]?其中x是需要我們自己填寫的一個數據,

如:str[1]、str[0]

3、索引中正向索引從0開始,負向索引從-1開始

4、表示不隔位

[起始索引位:結束位:步長值]

切片語法中:包含起始不包含結束,隔位不能為0可以為1,1表示不隔位,從2開始有效果

遍歷函數中:包含起始不包含結束,隔位不能為0可以為

print (list(range(10)))

打印的結果:[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

2,切片:

1、切片的表達式:str[start_index:end_index:step]?即[開始索引:結束索引:步長值]

2、解釋:start_index:開始索引(可以取值)

end_index:結束索引(不能取值)

step:步長 (腳跨了幾個樓梯)

3、注意

1)切片中如果步長不寫則默認為1

2)切片取值從開始索引到結束索引,且結果不包括結束索引位的值 (取到索引位的前一位)

3)步長從開始索引走起,步長分正負

四、函數

1,字符串函數

capitalize():首字符大寫

count():統計具體字符的個數

join():把字符串中的字符按自定義的分隔符連接在一起

split():把字符串通過制定標識符進行分割

strip(ab):刪除字符串開頭和結尾有a或者b的字符

istrip(ab):刪除字符串開頭有ab序列的字符

rstrip(ab):刪除字符串結尾有ab序列的字符

startswith():判斷字符串是否以什么開始

endswith():判斷字符串是否以什么結尾

find/rfind():查詢指定字符串的下標

replace(substring,newstring,max):替換字符

lower():方法轉換字符串所有大寫字符為小寫字符

upper():字符串中的小寫轉換為大寫

isdigit():判斷字符串中是否全為數字

isalpha():判斷字符串中是否全為字母

isalnum():判斷字符串當中是否全都為數字或者字母或者字母與數字組合

istitle():判斷字符串中首字母是否為大寫,其他是否為小寫,其他不為小寫則為否

isupper()/islower():is開頭的就是判斷一個字符串是否展示位都是大寫后者都是小寫

2,列表

索引與切片賦值

list1=[1,88,'test','duoceshi']

list1[0]=666 結果為 [666,88,'test','duoceshi']

list1[2:]=sdada 結果為 [1,88,s,d,a,d,a]

append():添加一個元素

list1=[1,2,3,4,5]

list1.append('a') 結果為 [1,2,3,4,5,a]

extend():連接兩個列表

list1=[1,2,3,4,5] list2=[6,7,8]

list1.extend(list2) 結果為 [1,2,3,,5,6,7,8]

insert():在指定位置前插入一個元素

list1=[1,2,3,4,5]

list1.insert(0,'test') 結果為 [test,1,2,3,4,5]

remove():刪除元素

list1=[1,2,3,4,5]

list1.remove(2) 結果為 [1,3,4,5]

索引刪除值

list1=[1,2,3,4]

del list1[0] 結果為 [2,3,4]

index:在列表中查找元素所對應的索引值

list1=[1,2,3,4]

list1.index(2) 結果為 1

sort:實現列表的升序排列

list1=[1,2,3,4,1]

list.sort() 結果為 [1,1,2,3,4]

sorted:實現降序排列

list1=[1,2,3,4,1]

print(sorted(list1,reverse=Trrue))

結果為 4,3,2,1,1

reverse函數:列表元素反轉

list1=[1,2,3,4]

list1.reverse() 結果為 [4,3,2,1]

pop函數

list1=[1,2,3,4]

pirnt(list1.pop(0)) 結果為 1

3,元組

格式:a=(1,2,3)

元組轉化為列表

b=list(a)

print(b)

列表轉化為元組

a=tuple(b)

print(a)

4,字典

格式:a={'name':'zhangsan','age',18}

1,添加鍵

a[sex]='nan'

2,取出鍵

a.keys()

print(a)

3,取出值

a.values()

print(a)

4,取出具體鍵的值

print(a['name'])

5,字典添加元素

a.setdefault('sex','男')

6,刪除字典

del (a)

print(a)

7,刪除指定的鍵,連同值也刪除

del(a['name'])

8,字典的遍歷

for key in a:

print(key,a[key])

9,用items完成遍歷

for key,values in a.items():

print(key,values)

10,POP(key)函數,刪除指定鍵并返回刪除的值

print(a.pop('name')) print(a)

結果為[age:18]

11,clear()清空字典所有項

a.clear()

print(a) 結果為[]

12,get(key),通過key獲取值,當鍵不存在,返回none

print(a.get('name')) 結果為[zhangsan]

13,fromkeys函數可以給具體的鍵指定值

print({}.fromkeys(['name'],'age'))

print({}.fromkeys(['name'],'age'),'duoceshi')

14,popitem

print(a.popitem())

print(a)

15,update()函數利用一個字典變更另一個字典

b={'sex':'nan'}

a.update(b)

print(a)

5,集合

1、可變集合set

list1 = [1,1,1,88,88,'duoceshi','dcs']

set1 = set(list1)

set1.add('dcs')

set1.remove('dcs')

set1.pop() #把最前面這個給刪除了

set1.clear()

print (set1)

2、不可變集合frozenset

test = 'hello'

a = frozenset(test)

b = a.copy()

b.add('888') #報錯AttributeError: 'frozenset' object has no attribute 'add'

print (b)

五、?模塊

1,time模塊:

time.time-----1970年到今天過了多少秒

time.ctime------顯示當前日期

time.sleep(2)--------休眠

time.asdtime()--------顯示當前日期

time.strftime('%Y-%m-%d-%H-%m-%s')

2,random模塊

random----隨機生成0開頭的浮點數

random.random()------隨機生成小于1的小數

random.randint(1,5)------隨機取一位整數,包含開始

random.randrange(1,100,2)-----根據range函數:(起始,結尾,隔位),支取1個

random.randrange(0,101,2)---取1-100之間的偶數

a=[1,2,3,4,5,6]

random.choice(a)---------隨機取a列表中的一個數字

random.sample(a,3)-----列表中隨機取自己定義的個數的值

random.shuffle(a)---------重新打亂a列表的順序(先洗牌)

print(a)-------再打印

3,String模塊

string.digits-----生成0123456789

string.hexdigits------生成0123456789abcdefABCDEF

string.ascii_uppercase----生成26個大寫字母

string.ascii_lowercase-------生成26個小寫字母

string.ascii_litters------生成26個小寫字母和26個大寫字母,

4,加密算法

base64位編碼

1,加密

a=base64.b64encode(b'123456')

print(a) 結果為 b'MTIzNDU2'

2,解碼

c=base64.b64decode(a)

print(b) 結果為 b'123456'

MD5加密

在線加解密:

http://encode.chahuo.com/

https://tool.oschina.net/encrypt?type=2

md5=hashlib.md5()#創建一個對象:md5

md5.update(b'123456')#通md5對象來調用update方法對某個值進行加密處理過

print(md5.hexdigest()) #通過hexdigest將md5加密密碼進行十六進制轉換輸出

結果為:e10adc3949ba59abbe56e057f20f883e

5,os模塊

a='D:\\www'

b='qqq.txt'

os.gitcwd()#獲取當前操作文件的路徑

os.path.isfile(a) #判斷是不是文件

os.path.isidr(a) #判斷是不是目錄

os.path.exists(a) #判斷文件或目錄是否存在

os.listdir(a) #列出指定目錄下的目錄或文件

os.path.split(a) #分割文件名與目錄

os.path.join(a,b) #連接目錄與文件名或目錄

os.mkdir(a) #創建一個目錄

os.rename(old,new) #更改目錄名稱

六、判斷與循環

1,判斷

1、if條件判斷語句單分支

if 判斷條件:

語句塊1……

else:

語句塊2……

2、if條件判斷語句多分支

if 判斷條件1:

語句塊1……

elif 判斷條件2:

語句塊2……

else:

語句塊n

2,循環

1,?while循環語句

while 條件表達式:

循環體語句

while什么時候進入循環?當循環條件成立時,進入循環

while什么時候退出循環?當循環條件不成立時,退出循環

注意:在寫while循環語句時一定要讓循環條件發生變化,否認很容易陷入死循環中

2,?循環語句

1、for循環的語法格式如下:

for ... in ...

語句塊

2、先熟悉下range()函數:如果需要遍歷一個數字序列,可以使用python中內建的函數range()

for i in range (10) #打印0到9、不包含10

for i in range (1,10) #打印1到9、不包含10

for i in range (0,10,2) #打印結果:0,2,4,6,8不包含10

3,?continue語句

用法:continue語句用來告訴Python跳過當前循環的剩余語句,然后繼續進行下一輪循環。

4,break語句

用法:語句會立即退出循環,在其后邊的循環代碼不會被執行。

七、封裝

(1)封裝定義:

(2)封裝的優點:

2.1封裝數據可以很好的保護隱私,(將不需要對外提供的內容都隱藏起來)

2.2 封裝方法主要原因是隔離復雜度

2.3 封裝提高了代碼的復用性。

2.4隱藏對象的屬性和實現細節,提供公共方法對其訪問

(3)python類的封裝兩種

3.1公用(共有):類中的變量和方法公用;他們名稱前都沒有下劃線,公有的變量和方法,在類的外部,內部,以及子類都可以方位

3.2私有:在類中的變量或方法下,下劃線__開頭命名,則改變量或方法為私用,私有的變量和方法,只能在本類內部使用,類的外部以及子類都五法使用。

私有屬性:

格式:__屬性名=值? ? 在類的外部不能使用(對象不能調用屬性)

私用化封裝后的限制:

(1)類 可以訪問

(2)類外/對象外? 不可訪問

(3)子類和子類對象? 不可訪問

八、繼承

繼承特性

1、繼承:類的繼承是面向對象程序設計的一個重要思想,繼承時子

類可以繼承父類的內容,包括成員變量和成員函數。

2、在繼承中一個類被另外一個類繼承這個類稱之為父類也稱之為基

類,則另外一個類則為子類也稱之為派生類。

九、多態

1、多態是以繼承和重寫父類方法為前提,對所有子類實例化產生的對象

調用相同的方法,執行產生不同的執行結果。

2、例如同樣是人,但是當問起一個人的職業時會有不同的結果,可能是

軟件測試工程師,可能是HR

3、一個對象的屬性和行為不是由他所繼承的父類決定的,而是由其本身

包含的屬性和方法決定的

==========================================================

案例2:

評價:

1、案例寫的詳細,但是總結就是筆記

2、總結根據自己的情況,進行總結

一、?Python定義

二、?Python特點

三、?Python的不同點:

膠水語言、輸出語句(print)、注釋(Ctrl+/、#、’’’)

格式化輸出:基本格式:('%d'%a)

%s :字符串 (采用str()的顯示)

%c :單個字符

%d:十進制整數

%i :十進制整數

%o:八進制整數

%x:十六進制整數

%f:浮點數

%% :百分數

常用的運算操作:算術運算(加減乘除)、賦值運算(+=)、比較運算、邏輯運算、位運算、成員運算(in、not?in)

四、?索引與切片

索引格式:str[?x],x為索引號

切片格式:str[start_index:end_index:step],str[::-1] 反轉

常用字符串函數:

1、str.capitalize():實現首字母大寫

2. str.count('xx')統計指定字符在當前字符串中出現的次數

3.'_'.join('xx')(拼接函數)自定義分割符,來分割當前的字符串,例如:'@'.join('xx')用@來將xx進行分割

4.分割函數 str.split('xx'):指定當前字符串中的一個字符作為分割符(用,替代字符串中的這個字符),且返回一個列表

例如:str?=?'abcdefghigkl'

str1=?'admin:123123'

num?=?str.split('j')

print?(num) 顯示結果:['aSDfgh',?'ksl']

5.str.strip('xx'):刪除字符串開頭和結尾的字符

格式:str.strip('XX'):刪除字符串以XX字符開頭和結尾的內容

6、str.lstrip('XX'):刪除字符串以XX字符開頭的內容

print?(str.lstrip('a')) 顯示結果:bcdefjghigkl

7、str.rstrip('XX'):刪除字符串以XX字符結尾的內容

print?str.rstrip('l') 顯示結果:abcdefjghigk

rstrip 意思:刪除末尾字符

8、str.startswith('XX'):判斷字符串中以XX字符串開頭,如果條件成立返回 TRUE,

否則返回FALSE

print?str.startswith('a') 顯示結果:?True?#swith

9、str.endswith('XX')判斷字符串中以XX字符串結尾,如果條件成立返回TRUE,否則

# 返回FALSE

print?str.endswith('l') 顯示結果:True

startswith(self?prefix start end)

方法的參數

prefix 開始

end 結束

self?自己本前綴

start 身

10、find、rfind通過具體的值來找到對應值的索引位,

str.find('XX')

從字符串左邊開始查找指定的字符串,且返回的是當前字符的索引位,一旦找到第一個將停止查找,如果查找的對象不存在則返回-1

print (str.find('n'))

顯示結果:-1

print (str.find('c'))? # 左邊開始查 顯示結果:2 顯示第一個的下標,沒有顯示-1

11、str.rfind('XX')從字符串右邊開始查找指定的字符串,且返回的是當前字符的索引位,一旦找到第一個將停止查找,如果查找的對象不存在則返回-1

print? (str.rfind('k'))

顯示結果:11? # 左邊開始查
注意:取得索引都是正向索引? ,注意當出現多個同樣的字符find和rfind 是不同的

12、str.replace('XX','YY')替換指定的字符串,且可以指定替換次數

print?(str.replace('c',?'dcs'))

顯示結果:abdcsdefjghigkl

13、replace()替換字符串中的字符 :replace(substring,newstring,max)

str.replace('XX', 'YY', 1)? #

方法中的1表示將指定字符替換的次數,從左到右開

始替換 --這里次數為1的話只會替換第一個發現的字母XX改下:

str = 'asDfghjksl'

print??(str.replace('c',?'dcs',?2))

顯示結果:

14、str.lower()將字符串中的所有大寫字母改為小寫print??(str.lower())

顯示結果(小寫):asdfghjksl

15、str.upper()將字符串中的所有小寫字母改為大寫

print??(str.upper())?顯示結果:ABCDEFJGHIGKL

字符串判斷方法

mtehod?? 方法

以下都是字符串的判斷,結果只有true or false

17、name.isalnum()?判斷字符串是否是字母或者數字? # alnum字母和數字,小寫字母。

name?=?"1123abcdefg"

print(name.isalnum())?判斷字符串是否是字母

顯示結果:ture

print?(name.isdigit())?判斷字符串是否是數字? # digit

顯示結果:flse

18、print??(name.islower())?判斷字符串是否是小寫

顯示結果:ture

19、print??(name.isupper())?判斷字符串是否是大寫,有小寫就顯示false,只有大寫字母和漢字仍為true

顯示結果:flse

20、name.isspace() 判斷字符串是否全部由空格組成。

五、列表、元組、字典及其常用操作

列表(list)

一、定義

1.list=[1,2,3,4,5]

2.通過list()進行轉換

3.對列表操作:

通過索引賦值:格式? 列表名[ 索引]=“ 新值”

通過切片賦值:格式? 列表名[ 索引:]=“ 新值”

二、函數

1、賦值

第一種:賦值(索引方式)

a=[1,2,3,4,5,6] b=['大',‘家’,‘好’]

a[4]='yy'

結果:[1,2,3,4,'yy',6]

注意點:1.把原來對應索引位置替換成新的值

第二種:

a[2:]='蔡瑞峰為什么這么帥'

結果:[1,2,'蔡','瑞','峰','為','什','么','這','么','帥'](從索引號為2開始被后面的字符替代)

2、append? ?添加函數(默認添加在列表最后)

格式:變量名.append('hello')

舉例:a.append('hello')

結果:[1,2,3,4,5,6,'hello']

3、extend? ? ?拼接函數(兩個列表的拼接)

格式:變量名1.extend(變量名2)

舉例:a.extend(b) (將b拼接在a后面)

4、insert? ? ? 插入函數

1、根據索引值插入值:(如果索引已存在插入,之前的索引值+1, 不存在出入就插入指定索引值,超出索引值也是在最后顯示)

第一種情況:超出的索引值

s?=[1,2,3,4,5]?#定義一個列表

s.insert(10,'hello')?#給索引值為10的位置在最后一位

print(s)?#[ 1, 2, 3, 4, 5,'hello']
備注:超出索引范圍,都默認顯示在列表的最后一位

第二種情況:存在的索引值

s?=[1,2,3,4,5]?#定義一個列表

s.insert(0,'hello')?#給索引值為0的位置插入一個具體的值

print(s)?#['hello', 1, 2, 3, 4, 5]
備注:插入的值是當前指定的索引,原列表中的索引加1或(往后推一位)

第三種情況:負向索引

s?=[1,2,3,4,5,6]?#定義一個列表

s.insert(-1,'hello')?#給索引值為0的位置插入一個具體的值

print(s)?#[1, 2, 3, 4,5,'hello', 6]

5、remove? ?刪除

方法一:刪除的是具體的值

第一種情況:有對應的值,有且只有一個

c=[1,2,3,4,5,6,"a"]

c.remove(2)

print(c)

打印結果: [1, 3, 4, 5, 6, 'a']

第二種情況: 刪除有多個一樣的值,只刪除第一個

l?=?['c',?1,?2,?3,?4,'c'?,5,?6,?'c']??# 定義一個列表

l.remove("c")??# 移除l列表中對應的具體值

print(l)????#顯示結果 [1, 2, 3, 4, 'c', 5, 6, 'c']
備注:多個同樣的值,從左開始刪除第一個值,

# 移除l列表中對應的具體值

第三種情況:刪除不存在的值,報錯,不在刪除的列表中

l?=?['c',?1,?2,?3,?4,?5,?6,?'s']??# 定義一個列表

l.remove("a")??# 移除l列表中對應的具體值

print(l)??# 顯示結果:報錯??? 刪除的內容不存在列表中

6、del? ? 刪除

方法二:del 刪除

第一種情況:

del? 通過索引 刪除列表種對應的元素

# l1 =[1,2,3,4,5] #定義一個列表

# del l1[4] #刪除對應列表中對應的索引值對應的值

# print(l1) #打印結果:[1, 2, 3, 4]

第二種情況: 超出索引值,刪除列表是錯誤的

l1?=[1,2,3,4,5]?#定義一個列表

del?l1[6]?#刪除對應列表中對應的索引值對應的值

print(l1)?#顯示結果:list assignment index out of range
備注:報錯,列表索引超出范圍

7、sort? ? ? ? 升序

場景1、l1?=[5,4,3,2,1]?#定義一個列表

l1.sort()?#通過sort來對列表進行升序排序

print(l1)?#[1, 2, 3, 4, 5]


場景二:字符和數值在一個列表中不能進行排序,報錯

c=[1,2,"a",3,4,3,5,6,"a"]

c.sort()

print (c)

報錯TypeError: '

場景三:列表中出現多個相同的數值排序(根據數值的大小并列)

d=[1,2,9,4,3,6,6,5,6]

d.sort()

print(d)

打印結果:[1, 2, 3, 4, 5, 6, 6, 6, 9]

8、sorted? ? 降序

sorted要配合reverse一起使用才能實現升序與降序

格式:sorted(變量名,reverse=True)降序

sorted(變量名,reverse=False)升序

9、reverse? 反轉

格式:變量名.reverse()(實現列表中元素反向排列)

10、pop? 刪除(默認刪除最后一個元素,也可以通過索引來刪除)

格式:變量名.pop()

變量名.pop(索引號)

10、場景一:index根據列表中具體的值得出索引值

d=[1,2,9,4,3,6,6,5,6]

print(d.index(2))

打印結果:1

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

元組(tuple)

一、定義

元組定義后由于不可直接修改則相對于代碼來說要更加安全

1.a=(1,1,2,3,4,5,)

2.通過tuple()進行轉換

3.tuple(a)=tuple(b)+tuple(c) 元組的拼接

注意:元組不能進行元素的修改與添加,因此要修改元祖內的數據需要通過list(tuple)將元組轉化為列表

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

字典(dict)

1 python中的字典:dict類型

2 鍵值對組成

3 鍵是唯一,值可以不唯一

4 {} 英文的大括號 也叫花括號

5 字典中鍵值是一個整體,如有多個鍵值對要用英文的,逗號隔開

6 整數類型不需要加單雙引號外,其它都需要加單雙引號

7 鍵和值用英文的:冒號? 比如:name:zhangsan

(1)定義一個字典d ={'name':'zhangsan','age':18} #定義一個字典print(type(d))

字典的類型

print(d) #打印結果為:{'name': 'zhangsan', 'age': 18}

(2)列表轉換成字典步驟 重點:(使用dict 就可以轉換)

第一步:定義一個列表

l =[('name','zhangsan'),('age',18)]

第二步:使用dict 將列表轉換成字典

di_ct=dict(l)#將列表轉換成為字典

第三步:查看字典的類型

print(type(di_ct)) #字典類型

第四步:在打印字典

print(di_ct) #{'name': 'zhangsan', 'age': 18}

備注:字典轉換是鍵與值一組,所以是2個值一組

(3)字典中添加鍵值對: 格式:變量名[鍵] =值

注意:字典中添加新的的鍵和值

d ={'name':'zhangsan','age':18}#定義一個字典

d['scroe']=100

print(d) #{'name': 'zhangsan', 'age': 18, 'scroe': 100}

(4)字典中有鍵,替換值(鍵不變,值變)

c= {'name': 'zhangsan', 'age': '18'}

c['name'] = 200

print(c) # 打印結果:{'name': 200, 'age': '18'}

小結:《1》、給字典中增加一個鍵值對:如原字典內沒有相同的鍵值對則新增一個

《2》、如原有字典中有相同的鍵,則會將對于的鍵的值進行重新賦值''

3、通過keys取出對應的鍵

d?={'name':'lis','age':18}?#定義一個字典

print(d.keys())?#(['name', 'age'])

# 通過keys來取出對應的鍵

print(type(d.keys()))?#

4、通過values 取出字典中對應的值

v={'name':'lis','age':18}?#定義一個字典

print(v.values())?#['lis', 18]

5、通過鍵來獲取對應鍵的值

k?={'name':'lisi','age':18}?#定義一個字典

print(k['name'])?#lisi

6、6.1添加設置默認鍵值setdefault

mr ={'name':'lis','age':18} #定義一個字典6.1默認值不存在的情況下,直接添加鍵值mr.setdefault('scroe',100)

1

2

3

4

5

6

print(mr)?#{'name': 'lis', 'age': 18, 'scroe': 100}
6.2 已有鍵值,在使用默認鍵值不會進行修改,或者增加

mr.setdefault('name','zhangsan')

print(mr)?#{'name': 'lis', 'age':? 18, 'scroe': 100}
備注:已經存在的值的優先級>默認值
6.3 直接修改 值,顯示最新修改值? (修改默認值優先級小于直接添加的字典值)

mr['name']='wangwu'

print(mr)?#{'name': 'wangwu', 'age': 18, 'scroe': 100}

7、刪除鍵:(刪除鍵,值也沒有了)

1

2

3

dellkey={'name':'zhangsan','age':18}

del?dellkey[?'name']

print?(dellkey)
注意點:鍵和值都要用引號,除數值外

8、使用for 循環獲取key

1

2

3

d?={'name':'zhangsan','age':18}

for?k?in?d:

print(k)??#拿到的是:鍵 值不拿

9、使用for循環獲取key,values

1

2

3

s?={'name':'zhangsan','age':18}

for?k?in?s:

print(k,s[k])

10、# 通過items()方法來獲取對應鍵值對

1

2

3

t?={'name':'zhangsan','age':18}

for?k,v?in?t.items():

print(k,v)

11、'通過pop函數刪除指定的鍵,打印返回對應鍵的值'''

方法一:pop刪除指定的鍵,返回對應的值

1

2

d2?={'name':'zhangsan','age':18}

print(d2.pop('name'))?#zhangsan

方法二:popitem在字典刪除鍵值對,一般默認在末尾

1

2

d?={'name':'zhangsan','age':18,'':100}

print(d.popitem())?#('', 100)
備注:打印結果:字典中最后一個鍵值

12、clear??來清空當前字典中的鍵值對,返回一個空字典

1

2

3

d3?={'name':'zhangsan','age':18}

d3.clear()?#通過clear()來清空當前字典中的鍵值對

print(d3)?#? 打印結果:{}清空后返回就是一個空字典

13、get? ?,get通過鍵獲取對應的值

1

2

3

4

5

6

7

d?={'name':'zhangsan','age':18,'':100}

print(d)?#{'name': 'zhangsan', 'age': 18, '': 100}

print(d.get('name'))?#zhangsan #通過鍵獲取值

print(d.get(''))?#100

print(d.get('age'))?#18

print(d.get('score'))?#None? #通過不存在的鍵,返回的是none

print(d.get(100))?#None????? #通過值去獲取,返回時的none

14、快速生成一個新字典的方法fromkeys

方法一:

第一種情況:生成一個新的字典的鍵

print ({ }.fromkeys(['name','age']))??#{'name': None, 'age': None}

第二種情況:生成一個字典的鍵和值

print({}.fromkeys(['name','age'],'a')) #{'name': 'a', 'age': 'a'}

方法三:快速生成字典,并賦同樣的值

1

2

d={'name':'zhang','age':18}

print(d.fromkeys(['name','age'],'c'))?#{'name': 'c', 'age': 'c'}

15、update? 方法 將多個字典合并

1

2

3

4

d1?={'name':'zhangsan','age':18}?#定義一個字典

d2={'scroe':100}?#定義一個字典

d1.update(d2)?#通過update方法將d1字典和d2字典進行合并

print(d1)?#{'name': 'zhangsan', 'age': 18, 'scroe': 100}
備注:合并字典以后,在d1表中

16、copy 復制字典

1

2

3

4

s={"name":"zhangsan","age":15}

c=?s.copy()

print?(c)

print?(s)

17、del刪除字典

1

2

3

4

5

6

7

8

#場景一:

d={"name":"lixi","age":18}

del?d

#場景二:刪除鍵

d={"name":"lixi","age":18}

print(d)

# del (d["name"])

# print(d)

備注:has_key? 在python2中有,在python3中不存在

六、?Python中的語句

輸入語句input(‘xxx’),輸出語句:print(‘xxx’)

If語句:單分支,多分支,if嵌套

While循環語句

For循環語句

Continue語句(跳過指定條件,繼續執行后面)

Break語句(退出循環,不再執行break后面的內容)

七、?Python中的函數

1、函數:一個工具,隨調隨用

優點:

(1)降低代碼冗余

(2)增加代碼的復用性,提高開發效率

(3)提高程序擴展性

(3)函數有兩個階段:定義階段,調用階段。

(4)定義時:只檢查函數體內代碼語法,不執行函數體內代碼。

(5)比如:我們存儲的過程,就是把所有的語句塊,調用

(6)封裝:就是把代碼片段放在函數當中

2、自定義函數

def 自定義函數名():

函數體

函數 的調用格式 函數名()

舉例:def fun():

print(‘請輸入密碼:’)

調用:fun()

調試時調用多個函數:if __name__=='__main__':

從其他模塊調用:import aa (導入aa模塊)

aa.fun( )(調用aa模塊的fun函數)

3、可變長元組(*list)與可變長字典(**dict)

4、全局變量與局部變量

5、return(函數的返回值)

6、內置函數(format、zip、open、with open、abs、sum、map)

6.1format(格式化輸出函數)

a ='{}'.format('hello','ni','hao')

print(a) #打印結果 hello

6.2?zip(打包函數)

打包:zip(a,b) print(list(zip(a,b)))

解壓:s,c=zip(*zip(a,b)) print(list(s))

6.3?open(打開與編輯文件)

open完整的語法格式為:

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

file: 必需,文件路徑(相對或者絕對路徑)。

6.4?with?open(open的擴展)

url?=r'C:\Users\Administrator\PycharmProjects\untitled1\requester\ss.py'

with?open(url,'r',encoding='utf-8')as o:

a=o.read()

print(a)

八、?Python中的模塊

模塊的導入(import)

Time模塊(時間的顯示)

time.time()(顯示從1970年到現在一共經歷的秒數)

time.ctime()(顯示當前實時時間)

time.sleep()(休眠,括號內加上數字表示休眠多少秒后再執行)

time.strftime()(自定義時間格式:%Y-%m-%d-%H:%M:%S)

time.asctime()(轉換為asc碼形式顯示時間)

3、random模塊

random.random() 隨機生成0開頭的浮點數

random.randint(1,4) 隨機取一個在1-4范圍內的數(不包含4)

random.sample(a,4) 在a中隨機抽取4個數生成一個列表

random.randrange() 遞增隨機取一個值

random.choice(a) 在a列表中隨機取一個值

random.shuffle() 隨機洗牌(將列表中的所有元素隨機調?動輸出)

string模塊(字符串)

string.digits 生成0-9的整數

string.hexdigits 生成0-9的整數+大小寫的a-f和A-F

string.ascii_uppercase 生成26個大寫字母

string.ascii_lowercase 生成26個小寫字母

4、加密與解密

5、OS?模塊(對于目錄文件路徑常用的模塊)

OS.getcwd() 獲取當前文件對應的目錄(相對路徑)

os.path.isfile(a_path) 判斷當前是否為文件,返回布爾值

OS.path.isdir() 判斷是否為目錄

os.path.exists(a_path) 判斷文件(目錄)是否存在

os.mkdir() 創建目錄mkdir(a,755)注意:目要設置權限,755或者777

os.remove(a_path) 刪除文件(無法刪除目錄)

os.listdir(a_path) 獲取當前目錄下所有的文件和目錄

os.path.split(a_path) 對某個路徑進行分割,要求:把路徑?分隔以后,再通過索引取出分隔后的值,在使用得到的值進行拼接,拼接成新的路徑

例如:

#第一步先使用split分割 a_path ="D:\\bao" print(os.path.split(a_path)) # 第二步在根據索引取值 path=os.path.split(a_path)[0] #第三步在拼接 b_path=os.path.join(path,11.py) print(b_path)

os.path.abspath(a_path) 通過名稱獲取當前名稱對應的路徑(絕對路徑)

os.rename(old_path,new_path) 重命名目錄和文件

6、re模塊(正則匹配)

#?預定義字符集匹配:

\ d:? ??數字0-9

\D:? ?非數字

\s:? ?空白字符

\n:? ?換行符

\w:? ??匹配字母數字

\W:??匹配非字母數字

^:表示的匹配字符以什么開頭

$:表示的匹配字符以什么結尾

*:匹配*前面的字符0次或n次?#eg:ab(*?能匹配a?匹配ab?匹配abb?)

+:匹配+前面的字符1次或n次

?:匹配?前面的字符0次或1次

{m}:匹配前一個字符m次

{m,n}:匹配前一個字符m到n次(包括n次),m或n可以省略,mn都是

1、findall? ? #從第一個字符開始查找,找到全部相關匹配為止,找不到返回一個空列表[]

2、compile? ?#編譯模式生成對象,找到全部相關匹配為止,找不到返回一個列表[]

3、match? ???#?從第一個字符開始匹配,如果第一個字符不是要匹配的類型、則匹配失敗并報錯#?注意:如果規則帶了'+',則匹配1次或者多次,無' +'只匹配一次

4、search? ?#從第一個字符開始查找、一找到就返回第一個字符串,找到就不往下找,找不到則報錯

九、類與對象

1、面向對象的基本概念:類(所有具有相同屬性和方法的對象的集合)、對象(通過類定義的數據結構實例)、方法(類中定義的函數)、類變量(實例中對象公用的,定義在類中且在函數體之外)、實例變量(用self修飾的變量)

2、定義與使用類

定義格式:class?people()

Def?__init__(self,name)

創建對象:p=people(‘xx’)

3、類中的實例方法、動態方法、靜態方法

實例方法

定義:第一個參數必須是實例對象,該參數名一般約定為“self”,通過它來傳遞實例的屬性和方法(也可以傳類的屬性和方法);

調用:只能由實例對象調用。

動態方法(類方法classmethod)

定義:使用裝飾器@classmethod。第一個參數必須是當前類對象,該參數名一般約定為“cls”,通過它來傳遞類的屬性和方法(不能傳實例的屬性和方法);

調用:實例對象和類對象都可以調用。

靜態方法(staticmethod)

定義:使用裝飾器@staticmethod。參數隨意,沒有“self”和“cls”參數,但是方法體中不能使用類或實例的任何屬性和方法;

調用:實例對象和類對象都可以調用。

4、類的三大特性(封裝特性、繼承特性、多態特性)

===============================================================

總結

以上是生活随笔為你收集整理的python自动计算多个教学班的优秀率_第二个月课堂009python之总结(002)的全部內容,希望文章能夠幫你解決所遇到的問題。

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