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