Python中的函数以及相关知识(一)

如何理解Python函数Function:

1.函数(Function)是组织好的可重复使用的,用来实现单一,或相关联功能的代码段。

2.函数能提高应用的模块性,和代码的重复利用率

那么如何定义一个函数呢?   它定义的基本规则如下:

1.函数代码块以 def 关键词开头,后接函数标识符名称圆括号()

2.任何传入参数和自变量必须放在圆括号中间。圆括号之间可以用于定义参数

3.函数的第一行语句可以选择性地使用文档字符串用于存放函数说明。

4.函数内容以冒号起始,并且缩进

5.return [表达式] 结束函数,选择性地返回一个值给调用方。

6.不带表达式的return相当于返回 None

例如:

def 函数标识名称( 参数列表 ):
  "函数_文档字符串,对函数进行说明"
   函数体
   return [表达式]

写函数必须调用函数不然没有太大意义,接下来以一个简单的自定义函数清晰的体现出函数的调用

ef addOne(x, y):  #自定义一个addOne函数
    x += 1
    y += 1
    return x, y #一次返回多个结果
    pass
m, n = addOne(1, 2)  #定义多个变量接受返回结果
print(m," ", n)
>>>2   3

参数的传递:

python 中,strings, tuples, numbers 不可更改的对象,而 list, dict 等则是可以修改的对象

不可变数据的传递

def sayHello(name, toName): #pythonn 是完全面向对象的
    name = "dashu"  
    print("{0} 对 {1} 说你好".format(name, toName))
    pass
name1 = "xiaogege"
toName1 = "xiaojiejie"
sayHello(name1, toName1)
print(name1)
>>>dashu 对 xiaojiejie 说你好

看例子的输出结果是dashu对小姐姐说你好而不是xiaogege对小姐姐说你好,可以看出传给不可变数据是无意义的

可变数据的传递

def addUser(userList, userName):
  
    userList.append(userName)        #只是修改了列表的元素里的值。
    pass
userList1 = ['zhangsan']
addUser(userList1, 'lisi')
print(userList1)
>>>['zhangsan', 'lisi']

我们可以看出把数据传给可变数据是完全ok的

调用函数时可使用的正式参数类型:

必备参数,默认参数,不定长参数

必备参数:

def sum(x, y): 
    return  x+y
    pass
print(sum(1, 2))
>>>3

默认参数:(注意带默认值的参数必须放在定义)

def sum(x, y = 0):
    
    return x+y
    pass
print(sum(1))
print(sum(1, y = 10)) # 以前调用函数时:参数列表的顺序时固定的,但是python可以匹配参数名

>>>1
>>>11

不定长参数:

*args:加了星号(*)的变量名会存放所有未命名的变量参数。选择不多传参数也可,可变长参数的类型为元组

def 函数名称(formal_args,  *args ):
   "函数_文档字符串"
   函数体
   return [表达式]

**kw:加了星号(**)的变量名会存放所有未命名的变量参数。选择不多传参数也可,可变长参数的类型为字典

def 函数名称(formal_args,  **kw ):
   "函数_文档字符串"
   函数体
   return [表达式]

这里小编把他俩放在一起举一个最简单的例子

def test(*a, **aa):
    print(a, aa)
    pass
test(1,2,3,4,5,6, **{'a':1, 'b':2, 'c':3})
>>>(1, 2, 3, 4, 5, 6) {'a': 1, 'b': 2, 'c': 3}

可以看出输出的结果分别为元组和字典(不定长参数*args和**kw 在**后面的字母可以自己随便定义不过国际上习惯写args和kw)

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章