Python基础-函数初识

Posted 鸿飞漫天

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python基础-函数初识相关的知识,希望对你有一定的参考价值。

一 函数的作用

1. 解决代码复用的问题

2. 提高代码的可维护性

3. 程序的组织结构更清晰,提高程序的可读性

 

1.1 函数的定义与调用

# 定义函数:
def my_len():
    ‘‘‘计算s1的长度‘‘‘
    s1 = fdsgdfkjlgdfgrewioj
    count = 0
    for i in s1:
        count += 1
    # print(count)

my_len()  # 函数名+()  执行函数 #函数的调用
定义:
    def  关键词开头,空格之后接函数名称和圆括号(),最后还有一个‘:‘。
    def  是固定的,不能变  它是定义函数的关键字
    空格: 为了将def与函数名分开,必须空!
    函数名: 函数名的定义与变量一致,只能包含字符串、下划线和数字,且不能以数字开头。要求函数名尽量简短,并且能表达函数功能
    括号: 必须添加
    
    注释:每一个函数都应该对功能和参数进行相应的说明,应该写在定义函数的下一行,一增强代码的可读性。
    调用: 就是 函数名()   要记得加上括号

 

1.2 函数的返回值 return

‘‘‘
    1,遇到return,结束函数。
    def func1():
        print(111)
        return
        print(222)
    func1()  #只打印111 
    2,给函数的调用者(执行者)返回值。
        无 return 返回None
        return 不写 或者 None 返回None
        return 返回单个数.
        return 返回多个数,将多个数放在元组中返回。
‘‘‘
s1 = fdsgdfkjlgdfgrewioj

##函数返回值是str类型
def my_len():
    count = 0
    for i in s1:
        count += 1
    return 666  ##将666返回给函数执行结果
print(my_len(),type(my_len())   

## 返回多个值的时候,会将多个值放在元组中
def my_len():
    count = 0
    for i in s1:
        count += 1
    return 666,222,count,老男孩
print(my_len(),type(my_len()))
#在元组中分别赋值:
def my_len():
    count = 0
    for i in s1:
        count += 1
    return 666,222,count
ret1,ret2,ret3 = my_len()  # (666, 222, 19,)
print(ret1)
print(ret2)
print(ret3)

 

1.3 函数的传参

1.3.1 参数的定义

技术分享图片
li = [1, 2, 3, 43, fdsa, alex]
s1 = fdsgdfkjlgdfgrewioj
def my_len(a):    # 函数的定义 ()里放的是形式参数,形参
    count = 0
    for i in a:
        count += 1
    return count
ret = my_len(li)  # 函数的执行() 实际参数,实参
print(ret)
print(len(s1))

# 从实参角度
    #1,位置参数。 必须一一对应,按顺序
def func1(x,y):
    print(x,y)
func1(1, 2)
    #2,关键字参数。必须一一对应,不分顺序。
def func1(x,y,z):
    print(x,y,z)
func1(y=2,x=1,z=5,)

# 参数练习
def max(a,b):
    if a > b:
        return a
    else:
        return b
print(max(100,102))

#简写形式
def max(a,b):return a if a > b else b
print(max(100,102))

参数的定义
参数的定义

1. 形参:在函数名后面的()中的参数,为形式参数,称为形参

2. 实参:在调用函数时写入()的参数,为实际参数,称为实参。

3. 从实参角度,又分为:

  1) 位置参数:按实际位置、顺序一一对应的参数

  2)关键字参数:a=b,必须一一对应,但不分顺序

  3)混合参数: 一一对应,切关键字参数必须在位置参数后面

# 混合参数。 关键字参数必须在位置参数后面
def func2(argv1,argv2,argv3):
    print(argv1)
    print(argv2)
    print(argv3)
func2(1,2,argv3=4)

4.从形参角度:

  1)位置参数,必须一一对应,按顺序

  2)默认参数,必须在位置参数后面

def register(name,sex=):
    with open(register,encoding=utf-8,mode=a) as f1:
        f1.write({} {}\n.format(name,sex))

while True:
    username = input(请输入姓名:/q 或者 Q 退出)
    if username.upper() == Q:break
    if a in username:
        sex = input(请输入性别:)
        register(username,sex)
    else:
        register(username)

  3)动态参数 *args *kwargs   万能参数

# args 与 kwargs接收的内容
def func2(*args,**kwargs):
    print(args)  # 元组(所有位置参数)
    print(kwargs)  # 字典,所有关键字参数
func2(1,2,3,4,5,6,7,11,alex,老男孩,a=ww,b=qq,c=222)

混合参数中,arte与kwargs的位置
# 位置参数,*args, 默认参数
def func3(a,b,*args,sex=):
    print(a)
    print(b)
    print(sex)
    print(args)
func3(1,2,老男孩,alex,wusir,sex=)
# 位置参数,*args, 默认参数, **kwargs
def func3(a,b,*args,sex=,**kwargs):
    print(a)
    print(b)
    print(sex)
    print(args)
    print(kwargs)
func3(1,2,老男孩,alex,wusir,name=alex,age=46)

args与kwargs的使用

def func1(*args,**kwargs):  # 函数的定义 * 聚合。
    print(args)
    print(kwargs)
l1 = [1,2,3,4]
l11 = (1,2,3,4)
l2 = [alex,wusir,4]
# func1(l1,l2,l11)  。
# func1(*l1,*l2,*l11)  # 函数的执行:* 打散功能。
# func1(1,2,3,4,‘alex‘,‘wusir‘,4,1,2,3,4)
dic1 = {name1:alex}
dic2 = {name2:laonanhai}
func1(**dic1,**dic2)  # * 打散功能

 

以上是关于Python基础-函数初识的主要内容,如果未能解决你的问题,请参考以下文章

Python 基础之函数初识与函数参数

python基础—初识函数

python基础-第七篇-7.1初识类和对象

python基础详解

Python学习之路基础篇--09Python基础,初识函数

Python基础—初识函数