【Python】Python函数

Python 函数

  函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段。函数能提高应用的模块性,和代码的重复利用率。Python提供了许多内建函数,比如print()。也可以自己创建函数,这被叫做用户自定义函数。

定义一个函数

  • 函数代码块以 def 关键词开头,后接函数标识符名称圆括号()
  • 任何传入参数和自变量必须放在圆括号中间。圆括号之间可以用于定义参数。
  • 函数的第一行语句可以选择性地使用文档字符串—用于存放函数说明。
  • 函数内容以冒号起始,并且缩进
  • return [表达式] 结束函数,选择性地返回一个值给调用方。不带表达式的return相当于返回 None。

语法:

def functionname( parameters ):
   "函数_文档字符串"
   function_suite
   return [expression]

实例:

# 创建函数
>>> def MyFirstFunction():
    print('这是我创建的第一个函数!')
    print('谭宝宝!')
# 调用函数
>>> MyFirstFunction()
这是我创建的第一个函数!
谭宝宝!

函数的参数:

  在 python 中,类型属于对象,变量是没有类型的:

a=[1,2,3]
a="Runoob"

PS:以上代码中,[1,2,3] 是 List 类型,"Runoob" 是 String 类型,而变量 a 是没有类型,她仅仅是一个对象的引用(一个指针),可以是 List 类型对象,也可以指向 String 类型对象。

# 如果设置了函数参数,在调用时需要填写上参数值,不然会报错
>>> def MySecondFunction(name):
    print(name + 'I Love You')

    
>>> MySecondFunction()
Traceback (most recent call last):
  File "<pyshell#10>", line 1, in <module>
    MySecondFunction()
TypeError: MySecondFunction() missing 1 required positional argument: 'name'
>>> MySecondFunction('tanbaobao')
tanbaobaoI Love You

  # 定义add函数

  >>> def add(num1,num2):
  result = num1 + num2
  print(result)

 
 


  >>> add(2,3)
  5

形参(parameter)和实参(argument):

>>> def MySecondFunction(name):
    '函数定义过程中的name叫形参'
# 因为他只是个形式,表示占据一个参数的位置
print('传递进来的' + name + '叫实参,因为他是具体的参数值') >>> MySecondFunction('tanbaobao') '传递进来的tanbaobao是实参,因为他是具体的参数值'

关键字参数: 

  关键字参数和函数调用关系紧密,函数调用使用关键字参数来确定传入的参数值。使用关键字参数允许函数调用时参数的顺序与声明时不一致,因为 Python 解释器能够用参数名匹配参数值。

  如果没有加上关键字,则会按输入的内容进行索引,加上则按照关键字索引,会按参数上的顺序输出:

默认参数:

  默认参数即定义了默认值的参数。调用函数时,默认参数的值如果没有传入,则被认为是默认值。

不定长参数(收集参数,可变参数):

  需要一个函数能处理比当初声明时更多的参数。这些参数叫做不定长参数,和上述2种参数不同,声明时不会命名。加了星号(*)的变量名会存放所有未命名的变量参数

def functionname([formal_args,] *var_args_tuple ):
   "函数_文档字符串"
   function_suite
   return [expression]

PS:如果既有不定长参数,又有其他参数,建议将其他参数定义为默认参数,这样能减少出错。

# 定义可变参数,还有其他的参数
>>> def test(*params,other):
    print('参数长度:',len(params))
    print('第二个参数:',params[1])

# 调用的时候如果忘记设置其他参数的值会报错
>>> test(1,'谭酱',3.14,5,6,7,8)
Traceback (most recent call last):
  File "<pyshell#58>", line 1, in <module>
    test(1,'谭酱',3.14,5,6,7,8)
TypeError: test() missing 1 required keyword-only argument: 'other'
# 最好的建议是将其他参数设置为默认参数,这样就算忘记传参数,也不会报错
>>> def test(*params,other=2):
    print('参数长度:',len(params),other)
    print('第二个参数:',params[1])

    
>>> test(1,'谭酱',3.14,5,6,7,8)
参数长度: 7 2
第二个参数: 谭酱

猜你喜欢

转载自www.cnblogs.com/HeiDi-BoKe/p/12102931.html