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

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > python >内容正文

python

python函数五要素_Python---基本掌握要素(《Python编程从入门到实践》)

發(fā)布時(shí)間:2023/12/20 python 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python函数五要素_Python---基本掌握要素(《Python编程从入门到实践》) 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

這里主要是常見的元素,主要是為了方便查找。所以舉的例子都是一些最簡單的形式,重在舉一反三。希望對大家有用。

-------------------------------基礎(chǔ)篇--------------------------------------------------------

1.列表

1)創(chuàng)建列表。列表里面可以存放任何元素,元素之間沒有關(guān)系。用[ ]號表示列表。

bycyles=['trek','connondale']

print(bycycles)

2)訪問列表元素。通過指定索引即可查找相應(yīng)的元素。下表從0開始。

print(bycycles[0])

小技巧:訪問最后一個元素使用-1索引,即 bycycles[-1],其他類推,-2 為倒數(shù)第二個元素。

3)修改列表元素。指定索引即可修改響應(yīng)元素。

bycycles[0]='mobile'

4)添加列表元素。在末尾添加用append函數(shù);在指定位置插入元素,使用insert函數(shù),通過指定索引

bycycles.append('bike')

bycycles.insert(0,'car')#即第一個元素變?yōu)閏ar

5)刪除元素。使用del函數(shù),指定刪除元素的索引。如果你想在刪除后,知道刪除元素的值,則使用pop函數(shù),如果不加參數(shù),則是刪除列表中的最后一個元素,也可指定索引值刪除指定位置的元素,并返回元素的信息。如果你不確定刪除元素的索引,只知道刪除元素的值,則使用remove函數(shù)

注意:remove只會刪除第一個出現(xiàn)該值的元素,如果想刪除所有的值,則用循環(huán)語句。

bycycles.del(0)

var last = bycycles.pop()#刪除最后一輛車的名稱,并返回刪除元素的值

var first = bycycles.pop(0)

bycycles.remove('bike')

6)對列表永久性排序,即不能返回排序前的順序。使用sort函數(shù)。如果按照字母從小到大,則可以不傳參數(shù),如果想要從大到小,則傳入?yún)?shù)reverse=True;如果不想永久性,而想要臨時(shí)性,則可以使用sorted函數(shù),用法和sort一樣,但是原始列表的順序未變。

bycycles.sort()

bycycles.sort(reverse=True)

bycycles.sorted()

bycycles.sorted(reverse=True)

7)反轉(zhuǎn)列表元素。使用reverse函數(shù)即可。該函數(shù)也是永久性,但是只要reverse一下,又可以恢復(fù)原樣呀!

bycycles.reverse()

8)元素長度。使用len函數(shù)

len(bycycles)

2. 列表操作

1)for循環(huán)。

for bycycle in bycycles:

print(bycycle)#注意縮進(jìn),python 遵守縮進(jìn)原則。當(dāng)你輸入此句,回車時(shí)系統(tǒng)會自動給你帶上縮進(jìn)效果。相當(dāng)于花括號效果。{}

2)range函數(shù)。注意range的第二個參數(shù)不包含在生成的數(shù)。按順序生成一系列數(shù)字。

range(1,5)#生成1-4的四個數(shù)字,沒有5.

range(5)#默認(rèn)從0開始,生成0-4的五個數(shù)字。

3)使用list函數(shù),可將range 生成的數(shù)字變成數(shù)字列表。

numbers = list(range(1,5))#list使range類對象轉(zhuǎn)變?yōu)閘ist形式

range(2,11,2)#第三個參數(shù)為步長。

4)統(tǒng)計(jì)函數(shù)。max、min、sum函數(shù)

max(numbers)

min(numbers)

sum(numbers)

比較簡單的表示形式,確實(shí)是創(chuàng)造了一個列表,1到10的平方的列表。說不定你要讀這種代碼。

squares = [ for value**2 in range(2,11,2)]# 兩個*代表乘方運(yùn)算。

5)切片操作。與matlab 相似,利用 : 來代表數(shù)值范圍。

squares[:4]#該: 后面的和range函數(shù)的第二個參數(shù)具有相同的含義,該語句索引值為0-

#3。

squares[-3:]#指倒數(shù)三個數(shù)值。

6)切片復(fù)制。變量具有c語言的特點(diǎn),利用切片可以生成一個新的空間,如果使用賦值語句,則會公用一個存儲空間,達(dá)不到復(fù)制的效果。

squares_part = squares[:3]#創(chuàng)建一個新的空間,名稱為squares_part

squares_part2 = squares#不創(chuàng)建空間,與squares公用一個空間,只是該空間有第二個名字。

3 元組

元組相對于列表就變得約束,基本認(rèn)為元組內(nèi)的數(shù)值一般保持不變,當(dāng)通過索引值修改元組的某個元素,則會出現(xiàn)報(bào)錯,但是可以重新對元組名指定新值,即也就是換了另一個元組。元組主要是為了對于不能更改的內(nèi)容,防止誤操作。其基本內(nèi)容與list相同,只是list創(chuàng)建時(shí)使用[ ]賦值,而元組創(chuàng)建時(shí)使用()。而訪問的時(shí)候都使用[ 索引值 ]進(jìn)行訪問。此處不再重復(fù)。

小標(biāo)準(zhǔn):縮進(jìn)符號=4個空格

4 if語句與for 語句相似,需要帶有:,需要帶有縮進(jìn),elif 與 c語言中的else if 用法相同,記得帶:喲

if car == 'bike':

print('I like to ride a bike')

else :

print("I don't like other ways")

1)常見的操作符號。and 、or, 與其他語言相同,是“與”、“或”操作。檢查元素是否在某列表中使用in,其實(shí)在for中已經(jīng)使用。如果檢查某元素不在該列表使用not in。可以使用

if bycycles: 當(dāng)列表bycycles有一個元素,則為True,如果為空表,則為False。

5 字典

字典是鍵值對形式,key:value,創(chuàng)建字典使用{},字典不同列表和元組,它可以使用key值進(jìn)行讀取相應(yīng)的值。

alien_0 = {'color':'green','points':5}

alien_0['color']

1)添加字典元素。直接指定key和value

alien_0['x_position']=0

2 )刪除字典元素。使用del函數(shù)

del alien_0['x_position']

3)遍歷各種形式的的鍵、值 。函數(shù)返回的列表類型哦!

for key,value in alien_0.items():#第一個是鍵,第二個是值

print("\nKey:" + key)#print自帶回車效果喲

print("Value:" + value)

for key in alien_0.keys():#遍歷字典中的鍵。

print("\nKey:" + key)#print自帶回車效果喲

for value in alien_0.values():#遍歷字典中的鍵。

print("\nValue:" + value)#print自帶回車效果喲

4)如果想讓values返回的列表不出現(xiàn)重復(fù)數(shù)據(jù),則需要使用集合set函數(shù)。

for value in set(alien_0.values()):#遍歷字典中的鍵。

print("\nValue:" + value)#print自帶回車效果喲

5)字典和列表可以嵌套,當(dāng)字典的值為多個,即一對多,則可以使用列表類型。

6 用戶輸入和while循環(huán)

input 在Python2.7有問題,可以使用raw_input( ),而input函數(shù)只接受合法的表達(dá)式,可以將字符串加上引號,使用input。如果單獨(dú)輸入一個字符串,會當(dāng)作變量名使用。

message = input("What do you like?\n")

print(message)

輸入:"You"

輸出:'You'

使用int函數(shù)可以將一個數(shù)值字符串轉(zhuǎn)變?yōu)閿?shù)值,在Python2.7中輸入一個數(shù)值的話,會默認(rèn)為數(shù)值形式,不需要用int轉(zhuǎn)換,可能Python需要用該函數(shù)。在Python2.7中的raw_input與Python 中的input函數(shù)等價(jià),即都返回一個字符串。

2).while循環(huán)

i=5

while i<=5:

i+=1

print(i)

break 語句和 continue語句和c語言中的用法相同

7 函數(shù)

給出一個最簡單的函數(shù)形式

def greet():

"""greet function"""#該段描述主要生成函數(shù)文檔使用,作為函數(shù)功能的描述

print("Hello")

greet()#調(diào)用方式

def greet(username):#此處username稱為形參。

"""greet function"""#該段描述主要生成函數(shù)文檔使用,作為函數(shù)功能的描述

print("Hello "+username)

greet('byd')#輸出Hello byd,調(diào)用時(shí)此處的'byd'稱為實(shí)參。

1)傳遞實(shí)參

總共有兩種傳參方式:位置實(shí)參和關(guān)鍵字實(shí)參。

位置實(shí)參就是按照傳入的順序進(jìn)行賦值。例如上述的greet('byd')

關(guān)鍵字實(shí)參必須指明形參名稱和實(shí)參例如上式 greet(username='byd')只要指明關(guān)鍵字,輸入的順序可以不用考慮,但是位置參數(shù)則嚴(yán)格按照順序賦值。

2)記住順序,參數(shù)放置一般為 位置參數(shù)靠前放,默認(rèn)參數(shù)第二放,最后放任意數(shù)量的或者字典參數(shù)

def make_pizza(*pizzas):#接收任意數(shù)量的實(shí)參,用pizzas空元組接收。

"""打印pizza種類"""

print(pizzas)

make_pizza('pepperoni','green peppers')

def make_pizza(**pizzas):#接收任意數(shù)量的關(guān)鍵字實(shí)參,用pizzas空字典接收。

"""打印pizza種類"""

print(pizzas)

make_pizza(taste='best',meat='more')

此處不詳細(xì)講解return,和c語言用法相同。

3)簡單的將函數(shù)封裝為模塊,然后在另一個文件import 調(diào)用。

第一步創(chuàng)建一個py 模塊文件,如下:

pizza.py

def make_pizza(*pizzas):#接收任意數(shù)量的實(shí)參,用pizzas空元組接收。

"""打印pizza種類"""

print(pizzas)

創(chuàng)建另一個文件: import_pizza.py

import pizza#pizza.py與import_pizza.py文件放在同一個目錄下,此種引入,調(diào)用函數(shù)時(shí)需指明pizza

pizza.make_pizza('pepperoni','green peppers')

from pizza import make_pizza#pizza.py與import_pizza.py文件放在同一個目錄下,此種引入,調(diào)用函數(shù)時(shí)不能帶著pizza

make_pizza('pepperoni','green peppers')

4)使用as給函數(shù)和模塊起別名--當(dāng)出現(xiàn)重名或者名字太長的函數(shù)需要調(diào)用時(shí),方便起見,可以將其中一個函數(shù)利用as 起一個別名,進(jìn)行調(diào)用

import pizza as p# 此時(shí)只能使用p來調(diào)用make_pizza 這是模塊起別名

p.make_pizza('pepperoni','green peppers')

from pizza import make_pizza as mp# 此時(shí)只能使用p來調(diào)用make_pizza 這是函數(shù)起別名

mp('pepperoni','green peppers')

from pizza import * # 此處* 指pizza中所有的函數(shù)

其實(shí)大部分時(shí)間,程序員都會將有些數(shù)據(jù)結(jié)構(gòu)編寫為一些類,以方便理解與調(diào)用。

-------------------------------對象篇--------------------------------------------------------

1.創(chuàng)建dog類

class Dog():#括號里沒有object 說明是Python3 版本,如果有則為Python2.7

"""狗類"""

def __init__(self,name,age):

"""初始化屬性name和age"""

self.name = name

self.age = age

self.color = 'black'#當(dāng)指定默認(rèn)值時(shí),形參中可以不指明該屬性。

def sit(self):#在類里面的方法形參self不能缺少,而且必須放在首位。self與java中的this有異曲同工之妙。self不需要在調(diào)用的時(shí)候指明。此處調(diào)用使用sit()即可

"""蹲下"""

print(self.name+" is sitting")

my_dog = Dog('peppy',10)#創(chuàng)建實(shí)例對象

my_dog.sit()#調(diào)用類中方法

my_dog.name#調(diào)用屬性

2.繼承---當(dāng)我們需要在其他類的基礎(chǔ)上稍作改變,則可以利用繼承的思想,減少編寫的代碼量。

1)一個類繼承另一個類時(shí),將獲得該類所有的屬性和方法,被繼承的類為父類,新類為子類。子類需要先給父類創(chuàng)建后再給自己初始化。下面是Python3的寫法,Python2.7有點(diǎn)麻煩,嘿嘿,還是Python3簡單。

class Dog(): #首字母大寫指類

"""狗類"""

def __init__(self,name,age):# init 是特殊的方法,當(dāng)創(chuàng)建一個對象時(shí),默認(rèn)首先調(diào)用此函數(shù),與java中的構(gòu)造函數(shù)相似。self不需要在調(diào)用的時(shí)候指明。此處調(diào)用使用Dog('peppy',10)即可

"""初始化屬性name和age"""

self.name = name

self.age = age

def sit(self):#在類里面的方法形參self不能缺少,而且必須放在首位。self與java中的this有異曲同工之妙。self不需要在調(diào)用的時(shí)候指明。此處調(diào)用使用sit()即可

"""蹲下"""

print(self.name+" is sitting")

class Peppy(Dog):

"""小萌狗"""

def __init__(self,name,age):

super().__init__(name,age)#使用super()來調(diào)用父類

self.grade = 10

def meng(self):#萌數(shù)等級

print('萌數(shù)等級:'+str(self.grade))

my_peppy = Peppy('byd',5)

my_peppy.sit()#繼承父類所有的函數(shù)

3.重寫父類的方法--一定要和父類的方法重名,這要Python知道你要用自己的方法,而舍棄父類的方法

dog.py

class Dog(): #首字母大寫指類

"""狗類"""

def __init__(self,name,age):# init 是特殊的方法,當(dāng)創(chuàng)建一個對象時(shí),默認(rèn)首先調(diào)用此函數(shù),與java中的構(gòu)造函數(shù)相似。self不需要在調(diào)用的時(shí)候指明。此處調(diào)用使用Dog('peppy',10)即可

"""初始化屬性name和age"""

self.name = name

self.age = age

def sit(self):#在類里面的方法形參self不能缺少,而且必須放在首位。self與java中的this有異曲同工之妙。self不需要在調(diào)用的時(shí)候指明。此處調(diào)用使用sit()即可

"""蹲下"""

print(self.name+" is sitting")

class Peppy(Dog):

"""小萌狗"""

def __init__(self,name,age):

super().__init__(name,age)#使用super()來調(diào)用父類

self.grade = 10

def meng(self):#萌數(shù)等級

print('萌數(shù)等級:'+str(self.grade))

def sit(self):

print('I never sit! I am eating!')

my_peppy = Peppy('byd',5)

print(my_peppy.age)

print(my_peppy.name)

my_peppy.meng()

my_peppy.sit()#重寫父類的函數(shù)sit

4.類中的init函數(shù)中的屬性也可以是對象實(shí)例。通過 self.peppy = Peppy( )即可創(chuàng)建

5.導(dǎo)入類

導(dǎo)入類與導(dǎo)入函數(shù)相似,直接寫明導(dǎo)入的類名

from dog import Dog,Peppy

6.類編碼風(fēng)格

1)類名--每個單詞的首字母大寫,單詞間不需要連接符。比如:MyLove

2) 在類的第二行最好寫"""類的描述語言 """

3)在類中,用一個空行隔開類中的方法,用兩個空行隔開同一個模塊中的兩個類。

4)import語句先導(dǎo)入標(biāo)準(zhǔn)庫,空一行,在import 自己編寫的模塊。

下面兩個是以前整理的一點(diǎn)內(nèi)容,和上面有重合也有補(bǔ)充。嘿嘿Python 對象篇--參考《從Python開始學(xué)編程》?blog.csdn.netPython 資源篇----參考《從Python開始學(xué)編程》?blog.csdn.net

-------------------------------文件篇--------------------------------------------------------

1.讀文件時(shí)一般喜歡用with...as...函數(shù),該函數(shù)會在不需要文件的時(shí)候自動關(guān)閉文件,相對于手動的open和close,更輕便,避開繁瑣的檢查。主要注意一點(diǎn)是,print自帶換行功能,所以注意編寫代碼時(shí)是否需要對讀取的字符串進(jìn)行刪除空白符的需求。

1)讀取整個文件。read函數(shù)

pi_digit.txt

3.1415926535

8979323846

2643383279

file_reader.py

with open('pi_digit.txt') as file_object: #將open的返回值起別名為file_object

contents = file_object.read() #read函數(shù)返回值為一個字符串,即將文件所有內(nèi)容存儲為字符串形式

print(contents) #該方式在顯示時(shí)會有一個空行,是因?yàn)閞ead讀到文件最后會返回一個空字符串。 處理方法可以改為print(contents.rstrip())該rstrip 就是把右邊的空白符刪掉。

2)逐行讀取

with open('pi_digit.txt') as file_object: #將open的返回值起別名為file_object

for line in file_object:

print(line) #此處會出現(xiàn)多余的空行,因?yàn)槲募械膿Q行也會顯示,所有可以使用print(line.rstrip())

3)創(chuàng)建一個包含文件各行內(nèi)容的列表 readline函數(shù)是讀取文件每行內(nèi)容并存入一個列表中,返回值是一個列表。

with open('pi_digit.txt') as file_object: #將open的返回值起別名為file_object

lines = file_object.readlines()

for line in lines:

print(lines.rstrip())

2. 寫文件用'w',附加文件用 'a', 默認(rèn)為只讀文件'r',可寫可讀'r+'

with open('pi_digit.txt','w') as file_object: #將open的返回值起別名為file_object

file_object.write("I love programming\n")

3.使用r時(shí),如果文件不存在會報(bào)異常,使用w文件不存在會創(chuàng)建該文件再寫入,每次寫入該文件都是先清空再寫入,如果不想清空,可以使用'a'追加的方式進(jìn)行寫入。

4.異常處理

使用try...except...else結(jié)構(gòu) 對比JAVA try...catch結(jié)構(gòu),這里的else是和try有關(guān)聯(lián)的,當(dāng)try正常運(yùn)行沒有異常時(shí),會執(zhí)行else,然后執(zhí)行else后面的代碼塊。如果出錯,則進(jìn)入except塊處理,else不會運(yùn)行。如果沒有except 處理的話,程序會直接中斷,并顯示traceback 報(bào)錯信息,如果處理except,程序照樣運(yùn)行,不會中斷。

try:

answer1 = 5 / 2 #由于程序下一行異常,所以不能執(zhí)行else,所以只能顯示You can't divide by 0!

answer = 5 / 0

except ZeroDivisionError:

print("You can't divide by 0!")

else:

print(answer1)

5. 有一個關(guān)鍵字叫pass。在代碼中表示什么也不做,可以作為一種占位符。

6. json的dump保存和load讀取

import json

alien_0 = {'color': 'green', 'points': 5}

with open('uu.json', 'w') as file_object:

json.dump(alien_0, file_object)

with open('uu.json') as file_object:

content = json.load(file_object)

print(content)

-------------------------------測試用例篇-------------------------------------------------

和JAVA中的JUnit功能相似,在python中使用unittest模塊,下面簡單介紹用法。記住一個用法,是寫入測試的案例和期望的返回值。

1.測試函數(shù)

name_function.py 準(zhǔn)備測試的模塊

import unittest #導(dǎo)入unittest模塊

class NamesTestCase(unittest.TestCase):#創(chuàng)建一個類,但要繼承unittest.TestCase類

"""測試name_function.py"""

def test_first_laset_name(self): #創(chuàng)建測試方法 名字要以“ test:”_開頭

"""是否正確處理名字"""

formmated_name = get_formatted_name('jan','jop')

self.assertEqual(formmated_name,'Jan Jop') #該函數(shù)是檢查兩個參數(shù)是否相等

unittest.main() #執(zhí)行該測試類中的test_開頭的方法

2.測試類

除了上述見到的assertEqual斷言方法,還有下列:

assertNotEqual(a,b)

assertTrue(x)

assertFalse(x)

assertIn(item,list)

assertNotIn(item,list)

測試類時(shí),如果想創(chuàng)建一次類的實(shí)例在測試類中加入SetUp方法 ,Python會先運(yùn)行SetUp方法,然后運(yùn)行其他test_開頭的方法,SetUp函數(shù)相當(dāng)于平常的init方法

形式為:

def SetUp(self):

self.peppy = Peppy('byd',5)#后面函數(shù)中就可以直接用self.peppy.方法名來調(diào)用Peppy中的方法。

學(xué)習(xí)機(jī)器學(xué)習(xí)和深度學(xué)習(xí)必不可少的就是數(shù)據(jù)可視化,一方面可以很好的展示研究結(jié)果,另一方面可以找到改進(jìn)的靈感。下面就主要談?wù)剶?shù)據(jù)可視化。

-------------------------------數(shù)據(jù)可視化篇-------------------------------------------------

1 matlabplotlib

1)漂亮的折線圖 首先可以參照網(wǎng)上的方法加載matplotlib 模塊。

import matplotlib.pyplot as plt #導(dǎo)入pyplot模塊

squars = [1, 4, 9, 16, 25, 36, 49, 91]#plot 默認(rèn)x坐標(biāo)的第一個數(shù)字為0,如果不符合要求,則需自己設(shè)置x的數(shù)據(jù)

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

plt.plot(input_values, squars,linewidth=5)#顯示折線圖,線寬為5

#設(shè)置圖表標(biāo)題,并給坐標(biāo)軸加上標(biāo)簽

plt.title("Square Numbers", fontsize=24)

plt.xlabel("Value", fontsize=14)

plt.ylabel("Square of Value", fontsize=14)

#設(shè)置刻度標(biāo)記的大小

plt.tick_params(axis='both', labelsize=14)

plt.show()#顯示繪制的圖片折線圖

2)散點(diǎn)圖scatter

import matplotlib.pyplot as plt #導(dǎo)入pyplot模塊

x_values = list(range(1, 1100))

y_values = [x**2 for x in x_values]

plt.scatter(x_values, y_values, s=40, edgecolors='none', c=(0, 0, 0.8) )#顯示散點(diǎn)圖,點(diǎn)大小為100, c='red' c 還可以為rgb 三個分量值,值越接近0越深,越接近1,越淺

#設(shè)置圖表標(biāo)題,并給坐標(biāo)軸加上標(biāo)簽

plt.title("Square Numbers", fontsize=24)

plt.xlabel("Value", fontsize=14)

plt.ylabel("Square of Value", fontsize=14)

plt.axis([0, 1100, 0, 1100000])

#設(shè)置刻度標(biāo)記的大小

plt.tick_params(axis='both', which='major', labelsize=14)#此處major 指的主刻度線

plt.show()#顯示繪制的圖片

還可以用漸變顏色效果

import matplotlib.pyplot as plt #導(dǎo)入pyplot模塊

x_values = list(range(1, 1100))

y_values = [x**2 for x in x_values]

plt.scatter(x_values, y_values, s=40, edgecolors='none', c=y_values, cmap=plt.cm.Blues)

#設(shè)置圖表標(biāo)題,并給坐標(biāo)軸加上標(biāo)簽

plt.title("Square Numbers", fontsize=24)

plt.xlabel("Value", fontsize=14)

plt.ylabel("Square of Value", fontsize=14)

plt.axis([0, 1100, 0, 1100000])

#設(shè)置刻度標(biāo)記的大小

plt.tick_params(axis='both', which='major', labelsize=14)#此處major 指的主刻度線

plt.show()#顯示繪制的圖片

3)保存圖片

plt.savefig('square.png',bbox_inches='tight')#tight 指將圖表多余的空白區(qū)域刪掉。

總結(jié)

以上是生活随笔為你收集整理的python函数五要素_Python---基本掌握要素(《Python编程从入门到实践》)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。