日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程语言 > python >内容正文

python

python中def fun(a、b=200)_python 基础 函数

發(fā)布時(shí)間:2024/10/8 python 38 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python中def fun(a、b=200)_python 基础 函数 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

函數(shù)

什么是函數(shù)函數(shù)就是完成特定功能的一個(gè)語(yǔ)句組,這組語(yǔ)句可以作為一個(gè)單位使用,并且給它取一個(gè)名字。

可以通過函數(shù)名在程序的不同地方多次執(zhí)行(這通常叫做函數(shù)調(diào)用),卻不需要再所有地方重復(fù)編寫這些語(yǔ)句。

函數(shù)的分類-自定義函數(shù)(用戶自己編寫)

-預(yù)定義的python函數(shù)(系統(tǒng)自帶的一些函數(shù),還有一些第三方編寫的函數(shù),如其它程序員編寫的一些函數(shù),對(duì)于這些現(xiàn)成的函數(shù)用戶可以直接拿來(lái)使用)

函數(shù)的定義:

def 函數(shù)名 (函數(shù)列表)

#可以沒有參數(shù)

#函數(shù)名的定義和變量的定義是相同的

注意:

函數(shù)名是兩個(gè)以上單詞時(shí),第二個(gè)單詞的首字母需要大寫>>>?a?=?10

>>>?b?=?20

>>>?def?add():

...?????c=a+b

...?????print?c

...

>>>?add()

30

函數(shù)的調(diào)用#/usr/bin/python

def?fun():

if?True:

print?"kong"

print?"a"

if?True:

fun()

if?fun():

print?"ok"

[root@zabbix?tools]#?python?8.py

a

kong

kong

函數(shù)的參數(shù)

*形式參數(shù):

- 在定義函數(shù)時(shí)函數(shù)名后面圓括號(hào)中的變量名稱叫做”形式參數(shù)“,簡(jiǎn)稱:形參;#~/usr/bin/python

def?fun(x):???????????????????#x形參

print?x

s?=?raw_input("please?input?something")

fun(s)

[root@zabbix?tools]#?python?8.py

please?input?something100?????#100實(shí)參

100錯(cuò)誤傳參[root@zabbix?tools]#?python?8.py

please?input?somethingd

Traceback?(most?recent?call?last):

File?"8.py",?line?5,?in?

fun()

TypeError:?fun()?takes?exactly?1?argument?(0?given)

#類型錯(cuò)誤,fun()函數(shù)未傳參。#TypeError:?fun()?takes?exactly?1?argument?(2?given)

多個(gè)參數(shù)定義:#!/usr/bin/python

def?fun(a,b):

if?a?==?b?:

print?"ok"

else:

print?x,?'!='?,y

x=raw_input("please??number?something:")

y=raw_input("please??number?something:")

fun(x,y)[root@zabbix?tools]#?python?9.py

please??number?something:2

please??number?something:2

ok

[root@zabbix?tools]#?python?9.py

please??number?something:3

please??number?something:5

3?!=?5

*實(shí)際參數(shù):

- 在調(diào)用函數(shù)時(shí),函數(shù)名后面圓括號(hào)中的變量名稱叫做“實(shí)際參數(shù)”,簡(jiǎn)稱:實(shí)參;

小游戲:

[root@zabbix?tools]#?python?9.py

please??something:10

please???something:巧克力

正在生成一個(gè)?10?元?巧克力?口味的冰激凌!

[root@zabbix?tools]#?cat?9.py

#!/usr/bin/python

#!coding:utf8

def?mashine(x,y):

print?"正在生成一個(gè)",x,'元',y,"口味的冰激凌!"

x=raw_input("please??something:")

y=raw_input("please??something:")

mashine(x,y)

#在上述的小游戲中,當(dāng)用戶什么都不輸入的時(shí)候,這時(shí)候就需要函數(shù)的缺省參數(shù)(默認(rèn)參數(shù))。

缺省參數(shù)

總結(jié):當(dāng)設(shè)置默認(rèn)參數(shù)時(shí)是自右向左開始的!可以通過調(diào)換順序調(diào)整!#!/usr/bin/python

#!coding:utf8

def?mashine(x,y="奶油"):

print?"正在生成一個(gè)",x,'元',y,"口味的冰激凌!"

mashine(3)

[root@zabbix?tools]#?python?9.py

正在生成一個(gè)?3?元?奶油?口味的冰激凌!

當(dāng)然x?也可以有默認(rèn)值

#!/usr/bin/python

#!coding:utf8

def?mashine(x=10,y="奶油"):

print?"正在生成一個(gè)",x,'元',y,"口味的冰激凌!"

mashine()

[root@zabbix?tools]#?python?9.py

正在生成一個(gè)?10?元?奶油?口味的冰激凌!

當(dāng)傳值得時(shí)候,會(huì)使用所傳的參數(shù)

#!/usr/bin/python

#!coding:utf8

def?mashine(x=10,y="奶油"):

print?"正在生成一個(gè)",x,'元',y,"口味的冰激凌!"

mashine(3,"巧克力")

小問題:

當(dāng)參數(shù)只傳一個(gè)價(jià)格的時(shí)候:#!/usr/bin/python#!coding:utf8def?mashine(x=10,y="奶油"):????print?"正在生成一個(gè)",x,'元',y,"口味的冰激凌!"mashine(3)[root@zabbix?tools]#?python?9.py?正在生成一個(gè)?3?元?奶油?口味的冰激凌!

當(dāng)傳遞口味的時(shí)候:#!/usr/bin/python#!coding:utf8def?mashine(x=10,y="奶油"):????print?"正在生成一個(gè)",x,'元',y,"口味的冰激凌!"mashine('巧克力')[root@zabbix?tools]#?python?9.py?正在生成一個(gè)?巧克力?元?奶油?口味的冰激凌!#!/usr/bin/python#!coding:utf8def mashine(x=10,y="奶油"): ? ?print "正在生成一個(gè)",x,'元',y,"口味的冰激凌!"mashine(y='巧克力')[root@zabbix?tools]#?python?9.py?正在生成一個(gè)?10?元?巧克力?口味的冰激凌!#傳遞形參、實(shí)參的時(shí)候都可以固定給值。

如果x值有默認(rèn)參數(shù),y沒有,如下:#!/usr/bin/python

#!coding:utf8

def?mashine(x=10,y):

print?"正在生成一個(gè)",x,'元',y,"口味的冰激凌!"

mashine('巧克力')

[root@zabbix?tools]#?python?9.py

File?"9.py",?line?3

def?mashine(x=10,y):

SyntaxError:?non-default?argument?follows?default?argument

#報(bào)語(yǔ)法錯(cuò)誤;

總結(jié):當(dāng)設(shè)置默認(rèn)參數(shù)時(shí)是自右向左開始的!可以通過調(diào)換順序調(diào)整!#!/usr/bin/python

#!coding:utf8

def?mashine(x,y=10):

print?"正在生成一個(gè)",y,'元',x,"口味的冰激凌!"

mashine('巧克力')

[root@zabbix?tools]#?python?9.py

正在生成一個(gè)?10?元?巧克力?口味的冰激凌!

函數(shù)中的變量

#python 中定義的變量都有其特定的作用域

*局部變量???? : ? -在函數(shù)中定義的變量一般只能在該函數(shù)內(nèi)部使用,這些只能在程序的特定部分使用的變量我們稱為局部變量;例證:#!/usr/bin/python

def?fun():

a=100

print?a

print??a

[root@zabbix?tools]#?python?10.py

Traceback?(most?recent?call?last):

File?"10.py",?line?5,?in?

print??a

NameError:?name?'a'?is?not?defined

調(diào)用函數(shù):#!/usr/bin/python

def?fun():

a=100

print?a

fun()

print?"#"*50

print??a

[root@zabbix?tools]#?python?10.py

100

##################################################

Traceback?(most?recent?call?last):

File?"10.py",?line?7,?in?

print??a

NameError:?name?'a'?is?not?defined

#表明100是由函數(shù)調(diào)用顯示。

*全局變量;:--在一個(gè)文件頂部定義的變量可以供該文件中的任何函數(shù)調(diào)用,這些可以為整個(gè)程序所使用的變量稱為全局變量;無(wú)

全局變量和局部變量重名#!/usr/bin/python

a=10

def?fun():

a=100

x=1

print?x

print?a

fun()

print?a

[root@zabbix?123]#?python?c.py

1

100

10注意變量和函數(shù)的位置關(guān)系#!/usr/bin/python

a=10

def?fun():

a=100

x=1

print?x

print?a

print?a

fun()

[root@zabbix?123]#?python?c.py

10

1

100

global 語(yǔ)句

global? 變量名

強(qiáng)制聲明為全局變量范例:

#!/usr/bin/python

x="my?name?is?HIBOY"

def?fun():

x=100

global?y

y?=?200

print?x

fun()

print?y#!/usr/bin/python

a=10

def?fun():

global??a

a?=?100

print?a

print?a

fun()

print?a

[root@zabbix?123]#?python?c.py

10

100

100

總結(jié): 在函數(shù)之前全局變量值不變,在函數(shù)之后全局變量為函數(shù)的中全局變量的值

函數(shù)的返回值

函數(shù)被調(diào)用后會(huì)返回一個(gè)指定的值

函數(shù)調(diào)用后默認(rèn)返回None>>>?def?f(x,y):

...?????print?x+y

...

>>>?f(2,3)

5

>>>?z?=?f(5,6)

11?????????????????????#此處只是打印

>>>?print?z

None

return 返回值>>>?def?fun(x,y):

...????print?"hello!!!"

...????return?x+y

...

>>>?fun(5,7)

hello!!!

12

>>>?z?=?fun(5,7)

hello!!!

>>>?print?z

12

返回值可以是任意類型>>>?def?fun():

...?????return??range(10)

...

>>>?a?=?fun()

>>>?print?a

[0,?1,?2,?3,?4,?5,?6,?7,?8,?9]

return執(zhí)行后,函數(shù)終止>>>?def?fun():

...?????print?"hello"

...?????print?"word"

...

>>>?fun()

hello

word

>>>?def?fun():

...?????return?"hello"

...?????return?"word"

...

>>>?fun()

'hello'

區(qū)分返回值和打印>>>?def?f(x,y):

...?????if?x

...?????????return?-1

...?????print?"hello?word!"

...

>>>?f(5,6)

-1

>>>?f(7,6)

hello?word!

>>>?z?=?f(7,6)

hello?word!

>>>?print?z

None

多類型傳值和傳值冗余

-向函數(shù)傳元組和序列

*表示傳值元組和序列

>>>?t?=?('name','kong')

>>>?def?fun(x,y):

...?????print?"%s?:?%s"?%(x,y)

...

>>>?fun(*t)

name?:?kong

>>>?print?"%s?%s"?%('name','kong')

name?kong>>>?def?fun(x,y):

...?????print?x,y

...

>>>?fun('a',1)

a?1

>>>?t=('b','c')

>>>?fun(t)

Traceback?(most?recent?call?last):

File?"",?line?1,?in?

TypeError:?fun()?takes?exactly?2?arguments?(1?given)

#t是一個(gè)元組類型數(shù)據(jù)的整體,傳值時(shí)值只能對(duì)應(yīng)到x,y無(wú)法接受任何值

>>>?fun(t,10)

('b',?'c')?10

#傳值要一一對(duì)應(yīng)

>>>?f?=('kong','123','xlo')

>>>?fun(*f)

Traceback?(most?recent?call?last):

File?"",?line?1,?in?

TypeError:?fun()?takes?exactly?2?arguments?(3?given)

-向函數(shù)傳值字典

**表示傳值字典>>>?def?fun(name="name",age="0"):

...????print?"name:%s"?%?name

...????print?"age:%s"?%?age

...

>>>?fun("kong",30)

name:kong

age:30

>>>?fun("kong")

name:kong

age:0

字典傳值

>>>?d?=?{'age':30,'name':'mail'}

>>>?fun(age=30,name='mail')

name:mail

age:30

>>>?fun(**d)

name:mail

age:30

>>>?d['age']=31

>>>?fun(**d)

name:mail

age:31

>>>?c={'a':1,'b':2}

>>>?fun(**c)

Traceback?(most?recent?call?last):

File?"",?line?1,?in?

TypeError:?fun()?got?an?unexpected?keyword?argument?'a'

多類型的傳遞方式

>>>?fun(c['a'],c['b'])

name:1

age:2

處理多余的實(shí)參>>>?def?f(x,*all):

...????print?x

...????print?all

...

>>>?f(1)

1

()

>>>?f(1,2,3)

1

(2,?3)

傳遞默認(rèn)參數(shù)

>>>?f(x=4,y=10)

Traceback?(most?recent?call?last):

File?"",?line?1,?in?

TypeError:?f()?got?an?unexpected?keyword?argument?'y'

#10不是單純傳值

多類型傳參

>>>?def?fun(x,*all,**arges):

...????print?x

...????print?all

...????print?arges

...

**變量名定義字典

>>>?fun(1)

1

()

{}

>>>?fun(1,2,3,4,5,6)

1

(2,?3,?4,?5,?6)

{}

#多余的沒有映射關(guān)系,所以放到元組里;

>>>?fun(1,2,3,4,5,6,arges=-2)

1

(2,?3,?4,?5,?6)

{'arges':?-2}

(x給了過多的值)

>>>?fun(1,2,3,4,5,6,x=10,y=20,arges=30)

Traceback?(most?recent?call?last):

File?"",?line?1,?in?

TypeError:?fun()?got?multiple?values?for?keyword?argument?'x'

>>>?fun(1,2,3,4,5,6,y=20,arges=30)

1

(2,?3,?4,?5,?6)

{'y':?20,?'arges':?30}

總結(jié)

以上是生活随笔為你收集整理的python中def fun(a、b=200)_python 基础 函数的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。