Functions & Modules(三)

  1. 自定義函數(shù)
    除了python自帶的函數(shù),還可使用def來自己定義函數(shù)。
  • 自定義名為my_func的函數(shù),不需輸入任何參數(shù)孟岛,當調用它時,會輸出三次spam:

def my_func():
print("spam")
print("spam")
print("spam")

調用該函數(shù):

my_func()

輸出結果為:

spam
spam
spam

每個函數(shù)中的代碼塊都以冒號(:)開始并縮進

  • 自定義需輸入一個參數(shù)的函數(shù)督勺,例如:

def print_with_exclamation(word):
print(word + "!")
print_with_exclamation("spam")
print_with_exclamation("eggs")
print_with_exclamation("python")

輸出結果為:

spam!
eggs!
python!

  • 自定義需輸入多個參數(shù)的函數(shù)渠羞,以逗號分隔多個參數(shù),例如:

def print_sum_twice(x, y):
print(x + y)
print(x + y)
print_sum_twice(5, 8)

輸出結果為:

13
13

  • 函數(shù)的參數(shù)可為變量智哀,但不可在函數(shù)外引用次询,只可在函數(shù)內引用、賦值瓷叫,例如:

def function(variable):
variable += 1
print(variable)
function(7)
print(variable)

輸出結果為:

8

  • 使用return返回自定義函數(shù)值的賦值屯吊,只能在函數(shù)內使用,例如:

def max(x, y):
if x >=y:
return x
else:
return y

調用該函數(shù):

print(max(4, 7))
z = max(8, 5)
print(z)

輸出結果為:

7
8

  • return之后的語句都不會被執(zhí)行摹菠,例如:

def add_numbers(x, y):
total = x + y
return total
print("This won't be printed")

調用該函數(shù):

print(add_numbers(4, 5))

輸出結果為:

9

  1. 注釋(#)
  • 使用#表示注釋盒卸,python中修飾需在一行內,#后面的語句不會被執(zhí)行辨嗽,注釋的加入也不會影響程序的運行世落,例如:

x = 365
y = 7
# this is a comment
print(x % y) # find the remainder
#print (x // y)
#another comment

輸出結果為:

1

  • Docstrings(文檔字符串)也用于注釋作用,但它可多行糟需,位于自定義函數(shù)第一行的下面屉佳,例如:

def shout(word):
"""
Print a word with an
exclamation mark following it.
"""

print(word + "!")

調用該函數(shù):

shout("spam")

輸出結果為:

spam!

  1. 將函數(shù)賦值到變量
  • 將自定義的函數(shù)賦值到一個變量,調用該變量時洲押,則該變量也具有該函數(shù)的功能武花,例如自定義函數(shù)multiple:

def multiply(x, y):
return x * y

將自定義函數(shù)賦值到變量operation,并調用operation:

a = 4
b = 7
operation = multiply
print(operation(a, b))

輸出結果為:

28

  • 函數(shù)還可作為另一函數(shù)中的項來使用杈帐,例如:

def add(x, y):
return x + y
def do_twice(func, x, y):
return func(func(x, y), func(x, y))
a = 5
b = 10
print(do_twice(add, a, b))

輸出結果為:

30

  1. Modules模塊
  • 模塊是別人已經(jīng)寫好的通用代碼体箕,例如產生隨機數(shù)专钉、加減運算等,若要在自己的代碼中調用某一模塊累铅,需在首行加上import module_name跃须,然后使用module_name.var來調用模塊中的函數(shù)及變量數(shù)值var,例如一下為調用產生隨機數(shù)的模塊來產生隨機數(shù):

import random
for i in range(5):
value = random.randint(1, 6)
print(value)

輸出結果為:

2
3
6
5

4

  • 在模塊調用中娃兽,使用import功能可以調用模塊中某一函數(shù)功能菇民,調用方式為from module_name import var,之后便可直接使用自己未曾定義過的var變量了投储,例如要從math模塊中調用pi:

from math import pi
print(pi)

輸出結果為:

3.141592653589793

還可使用間隔一次調用多個var第练,例如:

from math import pi, sqrt

可使用星號調用math模塊中的全部變量,但不推薦使用:

from math import *

  • 調用模塊或其中函數(shù)時玛荞,可使用as將其重命名娇掏,例如:

from math import sqrt as square_root
print(square_root(100))

輸出結果為:

10.0

  1. 模塊類型
  • 在Python中有三種主要的模塊類型,即自己寫的勋眯、從外部來源安裝的婴梧、Python預裝的。最后一種稱為標準庫凡恍,并包含許多有用的模塊志秃,包括:string、re嚼酝、datetime、math竟坛、random闽巩、os、multiprocessing担汤、subprocess涎跨、socket、email崭歧、json隅很、doctest、unittest率碾、pdb叔营、argparse、sys所宰。標準庫可以完成的任務包括字符串解析绒尊、數(shù)據(jù)序列化、測試仔粥、調試和操作日期婴谱、電子郵件蟹但、命令行參數(shù)等等,Python中廣泛的標準庫是其主要優(yōu)勢之一谭羔。
  • 許多第三方Python模塊都存儲在Python包索引(PyPI)中华糖。最好的安裝方法是使用一個叫做pip的程序。這是默認安裝Python的現(xiàn)代發(fā)行版瘟裸。如果你沒有它缅阳,很容易在線安裝。一旦擁有它景描,從PyPI安裝庫是很容易的十办。查找要安裝的庫的名稱,轉到命令行超棺,然后輸入pip install library_name向族。完成此操作后,導入庫并在代碼中使用它棠绘。
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末件相,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子氧苍,更是在濱河造成了極大的恐慌夜矗,老刑警劉巖,帶你破解...
    沈念sama閱讀 222,252評論 6 516
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件让虐,死亡現(xiàn)場離奇詭異紊撕,居然都是意外死亡,警方通過查閱死者的電腦和手機赡突,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,886評論 3 399
  • 文/潘曉璐 我一進店門对扶,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人惭缰,你說我怎么就攤上這事浪南。” “怎么了漱受?”我有些...
    開封第一講書人閱讀 168,814評論 0 361
  • 文/不壞的土叔 我叫張陵络凿,是天一觀的道長。 經(jīng)常有香客問我昂羡,道長絮记,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 59,869評論 1 299
  • 正文 為了忘掉前任紧憾,我火速辦了婚禮到千,結果婚禮上,老公的妹妹穿的比我還像新娘赴穗。我一直安慰自己憔四,他們只是感情好膀息,可當我...
    茶點故事閱讀 68,888評論 6 398
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著了赵,像睡著了一般潜支。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上柿汛,一...
    開封第一講書人閱讀 52,475評論 1 312
  • 那天冗酿,我揣著相機與錄音,去河邊找鬼络断。 笑死裁替,一個胖子當著我的面吹牛,可吹牛的內容都是我干的貌笨。 我是一名探鬼主播弱判,決...
    沈念sama閱讀 41,010評論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼锥惋!你這毒婦竟也來了昌腰?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 39,924評論 0 277
  • 序言:老撾萬榮一對情侶失蹤膀跌,失蹤者是張志新(化名)和其女友劉穎遭商,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體捅伤,經(jīng)...
    沈念sama閱讀 46,469評論 1 319
  • 正文 獨居荒郊野嶺守林人離奇死亡劫流,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 38,552評論 3 342
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了暑认。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片困介。...
    茶點故事閱讀 40,680評論 1 353
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖蘸际,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情徒扶,我是刑警寧澤粮彤,帶...
    沈念sama閱讀 36,362評論 5 351
  • 正文 年R本政府宣布,位于F島的核電站姜骡,受9級特大地震影響导坟,放射性物質發(fā)生泄漏。R本人自食惡果不足惜圈澈,卻給世界環(huán)境...
    茶點故事閱讀 42,037評論 3 335
  • 文/蒙蒙 一惫周、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧康栈,春花似錦递递、人聲如沸喷橙。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,519評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽贰逾。三九已至,卻和暖如春菠秒,著一層夾襖步出監(jiān)牢的瞬間疙剑,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,621評論 1 274
  • 我被黑心中介騙來泰國打工践叠, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留言缤,地道東北人。 一個月前我還...
    沈念sama閱讀 49,099評論 3 378
  • 正文 我出身青樓禁灼,卻偏偏與公主長得像管挟,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子匾二,可洞房花燭夜當晚...
    茶點故事閱讀 45,691評論 2 361

推薦閱讀更多精彩內容