zoukankan      html  css  js  c++  java
  • python之函数的初识

    1. 面向过程编程的缺点

    1. 代码重复
    2. 代码可可读性不高

    2. 函数的定义***

    ​ 函数是以功能为导向,一个函数封装一个功能。登录,注册,文件的改的操

    3.函数的作用***

    ​ 函数减少代码的重复性,增强了代码的可读性。

    4.例题:

    获取任意一个字符串的元素的个数
    s1 = 'fdskjlgfdgfdjkslgdfjkjafdsajk'
    count = 0
    for i in s1:
        count += 1
    print(count)
    
    
    获取列表的元素的个数
    l1 = [1, 2, 3]
    count = 0
    for i in l1:
        count += 1
    print(count)
    
    
    函数的格式:***
    l1 = [1, 2, 3]
    def new_len():
        count = 0
        for i in l1:
            count += 1
        print(count)
    new_len()
    
    

    二、函数的结构

    l1 = [1, 2, 3]
    
    def new_len():
        count = 0
        for i in l1:
            count += 1
        print(count)
    new_len()
    '''
    def 关键字: 定义一个函数。紧跟一个空格。
    new_len函数名:与变量命名规范一致。一定要具有可描述性。 
    ():结构需要,传参使用。
        : 分割符。
    tab键:四个空格。缩进。函数体
    new_len() 函数名加括号是函数的调用者
    '''
    

    三、函数的调用

    函数怎么调用***

    ​ 函数名加括号()

    ​ 函数名()写多少次,函数就执行多少次

    # l1 = [1, 2, 3]
    # def new_len():
    #     count = 0
    #     for i in l1:
    #         count += 1
    #     print(count)
    
    # 函数的执行写多少次,执行多少次。
    # new_len() # 函数名() 函数的执行者。调用者。
    # new_len()  # 函数名() 函数的执行者。
    # new_len()  # 函数名() 函数的执行者。
    # new_len()  # 函数名() 函数的执行者。
    # new_len()  # 函数名() 函数的执行者。
    
    
    l1 = [1, 2, 3]
    def new_len():
        count = 0
        for i in l1:
            count += 1
        print(count)
    
    for i in range(10):
        print(111)
    
    for i in range(3):
        new_len()
    

    四、函数的返回值

    一个函数就是封装一个功能,这个功能一般都会有一个最终结果的,比如你写一个登录函数,最终登录成功与否是不是需要返回你一个结果?还有咱们是不是都用过len这个函数,他是获取一个对象的元素的总个数,最终肯定会返回一个元素个数这样的结果:

    s1 = 'abfdas'
    print(len(s1))  # 6
    

    1. 函数的返回值用return表示

    2. 函数返回值的作用

    2.1 结束函数

    l1 = [1, 2, 3]
    def new_len():
        print(111)
        print(222)
        if 1 == 1:
            return
        print(333)
        print(444)
    new_len()
    

    2.2 函数中没有return或者只写一个return,函数的执行者得到的是None

     l1 = [1, 2, 3]
     def new_len():
         count = 0
         for i in l1:
             count += 1
         return
    print(new_len())
    

    2.3 函数中return后面是单个值,函数的执行者得到的是这个值(不改变值的类型)

    def func():
        print(111)
        # return 100
        # return [1, 2, 3]
        return {'name': '太白'}
    ret = func()
    print(ret, type(ret))
    

    2.4 函数中return后面是多个值,函数的执行者得到的是一个元组

    # def func():
    #     print(111)
    #     return 1, '23期', [22, 33]
    # ret = func()
    # print(ret, type(ret))  # (1, '23期', [22, 33])
    
    # def func():
    #     print(111)
    #     # return 1, '23期', [22, 33]
    # a,b,c = func()
    # print(a,b,c)
    
    
    def func():
        print(111)
        # return 1+1+2
        return 2 > 1
    ret = func()
    print(ret)
    

    五、函数的传参

    我们上面研究了,函数的结构,函数的执行,以及函数的返回值。对函数有一个初步的了解,那么接下来就是一个非常重要的知识点,函数的参数。函数是以功能为导向的,上面我们写的函数里面的代码都是写死的,也就是说,这个函数里面的更改起来很麻烦,试想一下,我们使用探探,陌陌等软件,可不可以进行筛选,比如选择性别,年龄等,导出结果? 再拿我们之前学过的len 这个len是不是可以获取字符串的总个数?是不是可以获取列表的总个数?你更改了len函数内部的代码了?没有吧?你看下面的例子:

    s1 = 'sfdas'
    l1 = [1, 3, 7]
    print(len(s1))  # 5
    print(len(l1))  # 3
    

    1. 函数的传参:函数的拓展性

    # def new_len(a):  # 定义函数时:参数:形参。
    #     count = 0
    #     for i in a:
    #         count += 1
    #     return count
    # l1 = [1, 2, 3]
    # s1 = 'fdsjaklsfjgfds'
    # # print(new_len(l1)) # 函数的调用者:参数 实参。
    # print(new_len(s1)) # 函数的调用者:参数 实参。
    # print(len(s1))
    

    2. 实参角度

    1. 位置参数。
    2. 关键字参数。
    3. 混合参数。

    3. 形参角度

    1. 位置参数。
    2. 默认参数。
    3. 动态参数。
    4. 仅限关键字参数。(了解)

    4. 例题:

    实参角度

    1. 位置参数

    从左至右,按照顺序,一一对应 ***
    # 1. 位置参数。: 
    def meet(sex,age,job,):
        print('左划一下')
        print('右划一下')
        print(f'寻找性别{sex},年龄{age}岁,{job}')
        print('聊天')
        print('约吗')
        print('约....')
    meet('女','18~25','讲师')
    
    # 写一个函数,接收两个数字的参数,将较大的数字返回。
    # def comp(a,b):
    #     if a > b:
    #         return a
    #     else:
    #         return b
    # ret = comp(1,2000)
    # print(ret)
    
    # 三元运算符:简单的if else。
    # a1 = 1
    # b2 = 2
    # ret = a1 if a1 > b2 else b2
    # # print(ret)
    #
    # def comp(a,b):
    #     # ret = a if a > b else b
    #     # return ret
    #     return a if a > b else b
    # ret = comp(1,2000)
    # # print(ret)
    

    2. 关键字参数***

    顺序无所谓, 像sex='18' 这种就是关键字,要一对一对应
    def meet(sex,age,job,hight,weight,):
        print('左划一下')
        print('右划一下')
        print(f'寻找性别{sex},年龄{age}岁,身高{hight},体重{weight},工作{job}')
        print('聊天')
        print('约吗')
        print('约....')
    
    # meet(sex='女',job='学生',weight=120,hight=170,age='18~25')
    

    3. 混合参数***

    关键字参数一定在位置参数后面,一一对应
     def meet(sex,age,job,hight,weight,):
         print('左划一下')
         print('右划一下')
         print(f'寻找性别{sex},年龄{age}岁,身高{hight},体重{weight},工作{job}')
         print('聊天')
         print('约吗')
         print('约....')
    
    meet('男',27,'ITC语言',weight=120,hight=175,)
    

    形参角度

    1. 位置参数

    与实参角度位置参数一样
    # def meet(sex,age,job):
    #     print('左划一下')
    #     print('右划一下')
    #     print(f'寻找性别{sex},年龄{age}岁,{job}')
    #     print('聊天')
    #     print('约吗')
    #     print('约....')
    # meet('女','18~25','讲师')
    

    2. 默认参数

    一定在位置参数后面,不传参数即沿用默认的参数。
    # open('文件的改',encoding='utf-8')
    def meet(age,job,sex='女'):
        print('左划一下')
        print('右划一下')
        print(f'寻找性别{sex},年龄{age}岁,{job}')
        print('聊天')
        print('约吗')
        print('约....')
    # meet('18~25','幼师')
    # 更改默认参数
    # meet('18~25','幼师',sex='laddy_boy')
    meet('18~25','幼师','laddy_boy')
    
    
  • 相关阅读:
    VC 读取服务器上的文件(HTTP方式) [转]
    ActiveX控件打包成Cab置于网页中自动下载安装 [转]
    C# 使用xenocode混淆加密【转】
    jenkins插件安装失败更改插件源
    jenkins调用shell脚本 输出带颜色字体
    Centos7 搭建最新 Nexus3 Maven 私服
    jenkins构建java项目找不到命令mvn,java的解决方法
    如何在 Linux 中找到你的 公网IP 地址
    CentOS 7安装Zabbix 3.4
    Linux常见服务器——DHCP服务器的搭建
  • 原文地址:https://www.cnblogs.com/zanao/p/11042239.html
Copyright © 2011-2022 走看看