zoukankan      html  css  js  c++  java
  • python学习之【第八篇】:Python中的函数基础

    1.前言

    函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段。函数能提高应用的模块性,和代码的重复利用率。

    2.函数的定义

    定义函数时需要遵守以下规则:

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

    语法:

    def 函数名(参数1,参数2,参数3,...):                   
    	'''注释'''
    	函数体
    	return 返回的值
    

    3.函数的调用

    函数的调用:函数名加括号

    1. 先找到名字
    2. 根据名字调用代码

    4.函数的参数

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

    • 位置参数
    • 关键字参数
    • 默认参数
    • 不定长参数

    位置参数

    位置参数,也叫必需参数,在调用函数时位置参数必须传值,并且必须以正确的顺序和相同的数量传入传入。

    def func(name,age):
    	print ('我叫%s,我今年%s岁了' %(name,age))
    	
    func('张三',18)
    #输出
    '我叫张三,我今年18岁了'
    

    关键字参数

    以“参数名 = 参数值”的形式作为传入函数称为关键字参数,使用关键字参数允许函数调用时参数的顺序与声明时不一致,因为 Python 解释器能够用参数名匹配参数值。

    def func(name,age):
    	print ('我叫%s,我今年%s岁了' %(name,age))
    	
    func(age=18,name='张三')
    #输出
    '我叫张三,我今年18岁了'
    

    默认参数

    在定义函数时,如果某些参数的值不会经常变化,可以将其设置为默认参数,调用函数时,如果给默认参数传递了实参,则使用传递来的实参,如果没有传递实参,则会使用默认参数。

    # age为默认参数,默认为18
    def func(name,age=18):
    	print ('我叫%s,我今年%s岁了' %(name,age))
    
    func(age=28,name='张三')	  #age传了28,则使用传来的28
    func(name='李四')          #age没有传参,则使用默认的18
    #输出
    '我叫张三,我今年28岁了'
    '我叫李四,我今年18岁了'
    

    不定长参数

    如果需要传给函数的参数很多,并且在函数声明时不确定在调用时会传入多少个参数,这种情况下,就要使用到不定长参数了
    不定长参数使用*args和**kwargs来接收:

    • 加单星号(*)的变量*args用来接收除去键值对以外的所有参数,以元组形式保存;
    • 加双星号(**)的变量**kwargs用来接收命名参数,即形如key=value的参数,以字典形式保存;
    def func(a,b,*args,**kwargs):
    	print(a)
    	print(b)
    	print(args)
    	print(kwargs)
    
    func(1,2,3,4,5,6,w=7,j=8)
    #输出
    1
    2
    (3, 4, 5, 6)
    {'w': 7, 'j': 8}
    

    5.案例

    编写一个求和函数,计算用户传入的所有参数之和,不能限制用户传入参数的个数

    def sum(*args):
    	res = 0
    	for i in args:
    		res += i
    	return res
    
    print(sum(1,2))	
    print(sum(1,2,3,4,5,6,7,8,9))	
    #输出
    3 
    45
    
  • 相关阅读:
    配置Python3 Pip3环境变量
    超级搜索术-读书笔记
    技术笔记-图片管理器
    Python不错的资料、网站
    输入法9键 VS 26键,哪个更适合?
    超级搜索术-思维导图
    Linux知识-Docker
    Python知识体系-基础知识03-函数/类/模块
    js基础(BOM对象)
    js基础(事件)
  • 原文地址:https://www.cnblogs.com/wangjiachen666/p/9610327.html
Copyright © 2011-2022 走看看