1. 程式人生 > >python基礎函式彙總

python基礎函式彙總

每當你迷茫徘徊的時候,你就可以開啟這篇文章,這時候,有人就不懂了,就會來跟我說:“大哥,大哥,這篇文章究竟講的是啥啊?”

哎!我現在就有責任和義務向大家介紹一下,這篇文章來自一本書,這本書它有他自己的名字,叫做:派等函式寶典。它是我花費了百年心血,我嘔心瀝血日夜凝華,在九九八十一天後,最終在火山噴發之時,天崩地裂之時,無數道驚雷交叉昇華而產生的一本書。

這本書,它可以教會你如何掌握python語言,如何用python語言開發你想要的遊戲或WEB網站,可以助你實現你的夢想,走上人生巔峰,迎娶白富美。

但是啊,這本書必須一頁一頁地翻閱,必須足足翻閱九九八十一頁方可完成此書的修煉學習。假如你在沒有學習完成之前,冒然翻開最後一頁,你是非常容易受到反噬的,輕則失去敲程式碼的能力,重則直接影響你的現實生活。

你看看啊,我現在就嘗試一下,我就僅僅地揭開最後一頁的一個角,“啊啊啊啊啊,反噬太厲害了啊~~~痛死我了~~”

話說回來啊,這本派等函式寶典在我凝成它的過程中,它逐漸產生了它自己的意識,在翻開第一頁準備學習之前,必須對著這本書大聲喊出:“派等函式寶典是我爸爸!",方可繼續使用。否則這本書將會自焚而滅,你將錯過改變命運的機會,終生後悔。

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

函式的核心呢,自然是def函式,可以自定義想要的演算法功能。

接下來我們簡單自定義一個列印個人資訊的函式:

def print_people_information(name,age,sex,college):

    print("your name is "+name+" .")
print("you are "+age+" years old.")
print("you may be "+ sex +"孩.")
print("you are from this college called: "
+college)

print_people_information("黃爸爸","20","男","清華大學")
print("````````````````````````````")
print_people_information("嚴媽媽","18","女","北京大學")

列印的結果很明顯了,括號內加粗的四個變數,就是你要使用這段函式時需要輸入的四個變數,即可打印出你想看到的內容。

當然了,我們還可以自定義一個演算法函式,例子如下:
def fuck(x,y):
x1=x*2
y1=y/4
result=x1+y1
print("The result is: "+str(result)+".")
fuck(2,4)

自定義了一個fuck函式,輸入兩個數字就會執行相應的計算,結果那麼這段函式的結果自然是5.0。

在函式中,類與物件是其中最經典的兩個概念。
那麼問題來了,類到底是什麼?
類是現實生活或思維世界中的實體在計算機中的反映,它將資料以及這些資料上的操作封裝到一起。

我們來簡單看一下下面的程式碼,加深理解,學會如何使用class類:
class Student():

name="Master跑跑" #初始的資料
age=20

     def student_information(self):     #self,是一個必要性的功能,能夠完成從class裡的引用。
#強制縮排,在class之下,del想要引用裡面的內容必須規範程式碼模組的位置。
print("name:"+self.name)
print("age:"+str(self.age))

student1=Student()
student1.student_information()

我們可以知道,這段程式碼中,建立了一個Studenet的class類,這個Student裡面含有兩個變數:name和age,這個時候我們可以輸入初始的資料,
如果對這段函式不進行任何操作的話,輸出會列印初始資料。
然後這時候自定義一個student1變數,去獲取Student的初始資料。然後對studenet1進行studenet_information()函式處理。輸出自然是:
name:Master跑跑
age:20
但是,要特別注意的是,這段程式碼中的def的函式,並沒有提供可以修改數值的功能,也就是說,這段程式碼只能提供初始資料的列印。


那麼我們來看看這一段更加複雜的函式,可以自行修改變數的值並輸出:

class Student():
    name='Master'
age=18
def __init__(self,name,age):
#__init__是建構函式。
#self其實並不是唯一選擇,this可以,that也可以,其他也可以。
self.name=name
self.age=age

print("姓名:"+self.name) #這兩段程式碼的意義實際上就是看__init__函式是否會自己列印一次。
print("年齡:"+str(self.age)) #從打印出來的結果可知,確實會自己列印了一次,所以可以刪掉下面的print語句。

def marking(self,score): #自定義一個成績函式
self.score=score
print("最後這位%s歲的%s同學的成績是:%s"%(self.age,self.name,self.score))


student1=Student('黃跑跑',5)
# student2=Student('嚴跑跑',6)
student1.marking(70)
# print(student2.__dict__)

這段程式碼可以好好解讀一下,首先是例行的定義Student的class類,先給name和age賦值初始資料。
重點就來到了__init__函式,注意,init左右兩側是兩個_ (曾經愚蠢的我為了這個愣是找了10分鐘的原因。)
__init__是建構函式,在使用一次這個函式時,裡面若是有print函式,會自行列印一次。
然後__init__函式的內容自然是self.name=name,self.age=age 這樣就可以自由輸入兩個想要列印的資料了。

然後我又加進去一個def自定義成績的函式,所以這段程式碼最後的輸出結果應該是:
姓名:黃跑跑
年齡:5
最後這位5歲的黃跑跑同學的成績是:70

__dict__是將一個變數集的內容以集合的形式打印出來。
最後我在這段程式碼後再加一句:
print(student1.__dict__)
最後的列印結果自然是:
{'name': '黃跑跑', 'age': 5, 'score': 70}


那麼問題就來了,我是否能讓這段程式碼更短?答案是可以的,你可以將輸入兩個變數的值的程式碼用新的函式形式表達,儲存到另一個檔案。
我們先建立一個c1.py檔案,在裡面輸入修改變數值的函式:
class FUCK():
    def __init__(self,name,age):
self.name=name
self.age=age

那麼這段函式的名字自然是FUCK了。然後我們開啟原始碼函式檔案,進行如下修改:
from c1 import FUCK
#file檔案的命名最好以字母開頭,和變數命令一樣。
# 比如我要是建立1.py檔案,這兒就無法引用。故改成c1.py.
class Student(FUCK):
name='Master'
age=18

def __init__(self,name,age):
FUCK.__init__(self,name,age)
#super(Student, self).__init__(name,age)#這句和上一行的功能是一樣的,使用了super函式智慧引用.
print("姓名:"+self.name)
print("年齡:"+str(self.age))

def marking(self,score):
self.score=score
print("最後這位%s歲的%s同學的成績是:%s"%(self.age,self.name,self.score))


student1=Student('黃跑跑',5)
student1.marking(70)


這樣看過去是不是實際上沒變多少長度?是的,因為多加了兩行程式碼

一個是從c1.py檔案中引用FUCK函式:from c1 import FUCK。然後為了完成接入,第二行須改成class Student(FUCK):
另一個是簡化的程式碼:FUCK.__init__(self,name,age)。其實不難理解:將功能存放在FUCK功能的檔案中,這段函式自然是呼叫c1.py檔案的功能
所以最後列印的結果是沒變的。

那麼有些人疑問就來了,你這樣花裡胡哨的操作,程式碼也沒有變得更短啊?

不不不,你們還是太過於年輕,太過於navie。如果你們這時候是在做遊戲呢?你面對成千上萬的函式計算怎麼辦?不會被弄混嗎?這樣的操作
的意義就在於秩序地存放功能,秩序地呼叫。

對了,其實
FUCK.__init__(self,name,age)

是可以寫成另外一個形式的:
super(Student, self).__init__(name,age)#使用了super函式,完成智慧呼叫。功能效果是一樣的。