python函数和模块有什么特性_python-函数包和模块
python函數(shù)的作用: 在Python代碼段中如果有一段幾十行的代碼,需要多次重復(fù)使用這幾十行代碼時(shí),為了提高代碼的可用性,將代碼段放進(jìn)函數(shù)體內(nèi),以后在使用中直接調(diào)用該函數(shù)模塊即可,函數(shù)是一個(gè)獨(dú)立的函數(shù)體或是一段獨(dú)立的功能體,最主要的作用是解決代碼的重用性。同時(shí)函數(shù)也具備一定的靈活性。
包定義與使用
一、包定義:
含有__init__.py文件的目錄我們稱之為包
二、包使用:
目錄內(nèi)的文件我們稱之為模塊,我們利用包和模塊的目的是找模塊也就是Python文件內(nèi)的內(nèi)容,主要是哪些內(nèi)容,一般都是功能體、代碼段比較封閉,主要有兩個(gè),一個(gè)是類、一個(gè)是函數(shù)。
import package.module
package.module.myfunc()
三、包的定義和使用——示例
、首先創(chuàng)建一個(gè)目錄,命名為pack。目錄內(nèi)包含_init_.py的就稱之為包。
、在包內(nèi)創(chuàng)建一個(gè)模塊,命名為main.py。
、在模塊main.py中我們定義一個(gè)函數(shù),名稱為myfunc();
、在主程序下的index.py下調(diào)用函數(shù),其中as bm是為包下的main.py起的別名。
其包含關(guān)系為:包(pack)模塊(main.py)函數(shù)(myfunc();)
函數(shù)的定義與使用
、myfunc函數(shù)定義與使用
def myfunc():
//函數(shù)體
print('hello world');
myfunc();
運(yùn)行結(jié)果:
hello world
[Finished in 0.1s]
變量作用域
、全局變量
在一個(gè)函數(shù)體外的變量,我們稱之為全局變量,可以在函數(shù)內(nèi)直接使用。
a=10;
def myfunc():
print(a);
myfunc();
運(yùn)行結(jié)果:
10
[Finished in 0.2s]
、局部變量
在一個(gè)函數(shù)體內(nèi)的變量,我們稱之為局部變量,不可以在函數(shù)外面直接使用。
def myfunc():
a=10;
myfunc();
print(a);
運(yùn)行結(jié)果:
Traceback (most recent call last):
File "D:pythonindex.py", line 9, in
print(a);
NameError: name 'a' is not defined
[Finished in 0.1s with exit code 1]
函數(shù)參數(shù)
、普通參數(shù)
參數(shù)把外面真實(shí)的值傳遞給里面去使用,外面的稱之為實(shí)參、里面的稱之為形參
a=10;
def myfunc(i):
print(i);
myfunc(a);
注:a就是實(shí)參、i就是形參,將a的值傳遞給i,被i使用。
運(yùn)行結(jié)果:
10
[Finished in 0.1s]
計(jì)算兩數(shù)之和
普通參數(shù)示例
#已知2018年,求2018年是閏年還是平年?
#閏年的條件有兩個(gè):
#1、能被4整除,但不能被100整除。
#2、能被4整除,同時(shí)如果能被100整除的話,則必須同是能被400整除。
year=2000;
def getYear(y):
if (y%4==0) and (y%100!=0) or (y%400==0):
print('yes');
else:
print('no');
getYear(year);
注:通過函數(shù)傳參,將year傳遞給y,然后在內(nèi)部進(jìn)行計(jì)算。
、默認(rèn)參數(shù)
#默認(rèn)參數(shù)
a=10;
b=20;
def sum(i=1,j=2):
print(i+j);
sum();
注:如果將a和b傳給了i和j,則執(zhí)行傳遞的值進(jìn)行計(jì)算,如果沒有傳遞值,則使用默認(rèn)的1和2進(jìn)行計(jì)算,這就是默認(rèn)參數(shù)。默認(rèn)參數(shù)一般在沒有傳遞參數(shù)的時(shí)候使用。
另外,參數(shù)傳值是按照順序傳值的。
x運(yùn)行結(jié)果:
3
[Finished in 0.1s]
、序列參數(shù)
#序列參數(shù)
def sum(i):
print(i);
arr=[1,3,5,7,9]
sum(arr);
運(yùn)行結(jié)果:
[1, 3, 5, 7, 9]
[Finished in 0.1s]
、任意參數(shù)
#任意參數(shù)
def sum(*vals):
tot=0;
for i in vals:
tot+=i;
print(tot);
sum(2,4,6,8,10);
運(yùn)行結(jié)果:
30
[Finished in 0.1s]
、字典參數(shù)
#字典參數(shù)
def sum(**vals):
print(vals);
sum(name1='user1',name2='user2',name3='user3');
住:變量和值的關(guān)系,變量不能加單引號(hào)
x運(yùn)行結(jié)果:
{'name1': 'user1', 'name2': 'user2', 'name3': 'user3'}
[Finished in 0.1s]
字典遍歷:
#字典參數(shù)
def sum(**vals):
for i in vals:
print(i,vals[i]);
sum(name1='user1',name2='user2',name3='user3');
運(yùn)行結(jié)果:
name1 user1
name2 user2
name3 user3
[Finished in 0.1s]
函數(shù)的返回值
、print();
#函數(shù)返回值
ef sum(i,j):
# print(i+j);
return(i+j);
print(sum(1,2));
注:return(i+j);只返回,不打印,誰調(diào)用就返回給誰,如果想打印,在sum前使用print即可。
運(yùn)行結(jié)果:
3
[Finished in 0.1s]
、return()或return;
是直接打印好,還是直接返回好?
返回能體現(xiàn)出函數(shù)的特點(diǎn),是一個(gè)獨(dú)立的代碼段或功能體,如果用print它不獨(dú)立,為什么,如果我用sum(1,2)傳進(jìn)去得到的值就是3呢,但是結(jié)果3并不著急打印,后續(xù)還要處理。
函數(shù)如果沒有返回值,返回的就是none。
def sum(i,j):
# print(i+j);
return(i+j);
a=10;
b=20;
str='{}+{}={}'.format(a,b,sum(a,b));
print(str);
運(yùn)行結(jié)果:
10+20=30
[Finished in 0.1s]
創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎(jiǎng)勵(lì)來咯,堅(jiān)持創(chuàng)作打卡瓜分現(xiàn)金大獎(jiǎng)總結(jié)
以上是生活随笔為你收集整理的python函数和模块有什么特性_python-函数包和模块的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: [C#]六十甲子纳音WM版 v2.1 B
- 下一篇: python easygui进度条_Py