zoukankan      html  css  js  c++  java
  • python基础之函数(基础七)

    第九章python基础之函数(基础七)

    1. 初始函数
    2. 函数的结构
    3. 函数的调用
    4. 函数的返回值
    5. 函数的传参

    9.1 初始函数

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

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

    1. 获取任意一个字符串的元素的个数
    s1 = 'abcdefghijk'
    count = 0
    for i in s1:
        count += 1
    print(count)
    
    1. 获取列表的元素的个数
    l1 = [1, 2, 3]
    count = 0
    for i in l1:
        count += 1
    print(count)
    

    面向过程编程

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

    初识函数

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

    9.2函数的结构

    def 关键字:定义一个函数。紧跟着一个空格

    new_len函数名:与变量命名规范一致,一定要具有可描述性。

    (): 结构需要,传参使用.

    ​ : 分割符。

    tab键:四个空格,缩进,函数体

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

    9.3 函数的调用

    使用函数名加小括号就可以调用,写法:函数名(),函数体就会被执行

    1560756892042

    l1 = [1, 2, 3]
    def new_len():
        count = 0
        for i in l1:
            count += 1
        print(count)	##代码后缀没有申明函数名,函数体不被执行
    

    函数执行的方式写几次调用几次

    # 函数的执行写多少次,执行多少次。
    # new_len() # 函数名() 函数的执行者。调用者。
    # new_len()  # 函数名() 函数的执行者。
    # new_len()  # 函数名() 函数的执行者。
    
    
    for i in range(10):
        print(111)			#执行10次111
    
    for i in range(3):
        new_len()			#执行
    

    9.4 函数的返回值

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

    s1 = 'abcdefghijklm'
    print(len(s1))              #13个元素
    

    函数的返回值用return表示:

    9.4.1 结束函数

    l1 = [1, 2, 3]
    def new_len():
        print(111)
        print(222)
        if 1 == 1:
            return		##return执行之前的函数体,之后的不执行
        print(333)
        print(444)
    new_len()			##结果111,222
    

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

    l1 = [1, 2, 3]
    def new_len():
        count = 0
        for i in l1:
            count += 1
        return			#后面没有定义返回的值为None	
    print(new_len())
    

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

    def func():
        print(111)
        # return 100
        # return [1, 2, 3]		
        return {'name': 'lili'}	#return值字典类型输出也是字典类型
    ret = func()
    print(ret, type(ret))
    

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

    def func():
        print(111)
        return 1, 'abl', [22, 33]
    ret = func()
    print(ret, type(ret))  # 输出结果111,return返回的(1, 'abl', [22, 33])是元组
    
    def func():
        print(111)
        # return 1, '23期', [22, 33]
    a,b,c = func()
    print(a,b,c)            #报错'NoneType' object is not iterable
    
    def func():
        print(111)
        # return 1+1+2	#为2返回的是2
        return 2 > 1     #2>1为True,
    ret = func()
    print(ret)           #输出结果为111,return的返回的值是True
    

    9.5函数的传参

    函数的参数,函数是以功能为导向的,上面我们写的函数里面代码都是写死的,也就是这个函数里面的更改起来很麻烦。 通过传参能灵活的调用可变的代码内容,再拿我们之前学过的len 这个len是不是可以获取字符串的总个数?是不是可以获取列表的总个数?你更改了len函数内部的代码了?没有吧?你看下面的例子:

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

    9.5 函数的传参:函数的拓展性

    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))		#没有用函数调用
    

    实参角度:

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

    形参角度:

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

    9.5.1实参角度:

    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)
    
    1. 关键字参数。一一对应

      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')
      
    2. 混合参数。关键字参数一定在位置参数后面,一一对应。

      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,)
      

    9.5.2形参角度:

    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='women')
      meet('18~25','','women')
      
      
  • 相关阅读:
    ArcGIS API for Silverlight开发入门(3):Widgets<转>
    arcgis api for flex 开发入门(九)webservices 的使用<转>
    dell品牌笔记本装系统蓝屏
    VSFTP+MySQL虚拟用户配置
    linux下流量监控软件iftop的安装和使用
    Linux下安装ffmpeg
    ipvsadm的几个参数输出的说明
    ipvsadm的参数
    truncate命令学习
    mysql常用函数
  • 原文地址:https://www.cnblogs.com/yueling314/p/11041947.html
Copyright © 2011-2022 走看看