-
自定義函數(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
- 注釋(#)
- 使用#表示注釋盒卸,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!
- 將函數(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
- 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
- 模塊類型
- 在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向族。完成此操作后,導入庫并在代碼中使用它棠绘。