zoukankan      html  css  js  c++  java
  • 函数

    函数

    初识函数

    函数初识

    # 例子
    def new_len():
        count = 0
        for el in s:
            count += 1
        print(count)
    new_len() # "函数名()" 函数的 执行者 和 调用者. 写几次执行几次
    
    
    1. 函数:以功能为导向,并且一个函数封装一个功能.(登录,注册,文件的改的操作,评论,日记)
    2. 函数减少了代码的重复性,增强了代码的 可读性 (可描述性) ---函数解决了是什么?

    函数的结构

    '''
    ==============================
    def 关键字: 定义一个函数.(关键字  一些特殊意义的单词  for while if else.......) 紧跟一个空格.
    ==============================
    new_len函数名: (限制) 与变量命名规范一致. 一定要具有可描述性.
    ==============================
    括号"()" :结构需要, 传参用
    ==============================
    冒号":" :分割符 分割函数名和函数体
    ==============================
    "tab"键 :四个空格.缩进
    ==============================
    '''
    

    函数的调用(函数的执行)

    # 例子
    def new_len():
        count = 0
        for el in s:
            count += 1
        print(count)
    new_len() # "函数名()" 函数的 执行者 和 调用者. 写几次执行几次
    
    

    ❗必须 "函数名()" 才是函数的执行者和调用者. 只写函数名不行!!!

    ❗函数 写在同一代码块 函数必须放前面后面才能执行

    函数的返回值

    return 第一个作用:结束函数 (只能在函数中用)

    # 例子
    s = [1, 2, 5, 3, 6]
    def new_len():
        count = 0
        for el in s:
            count += 1
        print(count)
        print(count) # ---输出到这 return 结束函数
        
        return
    	print(count)
        print(count)
        
    new_len() # "函数名()" 函数的 执行者 和 调用者. 写几次执行几次
    

    return 第二个作用:给函数的执行者返回具体的值

    # 例子
    s = [1, 2, 5, 3, 6]
    def new_len():
        count = 0
        for el in s:
            count += 1
        print(count)
        print(count) # ---输出到这 return 结束函数
        
        return count
    	print(count)
        print(count)  
    c = new_len()
    print(c)
    

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

    def func():
    	return
    print(func()) #None
    
    def func1():
        a = 1
    print(func1()) #None
    

    函数中return后面是 单个值 , 函数的执行者 得到的是 这个值

    def func():
    	return "hello"
    print(func()) # hello 类型字符串
    

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

    def func1():
        return "hello", "world", 1+2+3
    print(func1()) #('hello', 'world', 6) 类型元组
    

    函数的传参

    • 让函数函数具有拓展性
    l1 = [1, 2, 5, 3, 6]
    def new(a): # 定义函数时:参数:形参
        print(a)
        return "函数"
    # new(l1) #函数的调用者:参数:实参
    print(new(l1))
    

    实参角度:

    • 位置参数
    • 关键字参数
    • 混合参数
    1. 位置参数 (弊端:参数多的时候 必须保证顺序正确)
    def meet(x, y, z):
        print('左划一下')
        print('又划一下')
        print(f'寻找目标 x:{x} y:{y} z:{z}')
        print('分析')
        print('锁定')
        print('清除')
    meet(10,20,30)
    
    ============================================================
    def compare(x, y):
        print(x if x > y else y)
    compare(int(input("第一个数")), int(input("第二个数")))
    ============================================================
    def compare(x, y):
        return x if x > y else y
    print("更大的数是:",compare(int(input("第一个数")), int(input("第二个数"))), end="")
    ============================================================
    def compare(x, y):
        return x if x > y else ("两数相等" if x == y else y)
    print(compare(int(input("第一个数")), int(input("第二个数"))), end="")
    ============================================================
    
    1. 关键字参数 (必须一一对应)
    def meet(x, y, z):
        print('左划一下')
        print('又划一下')
        print(f'寻找目标 x:{x} y:{y} z:{z}')
        print('分析')
        print('锁定')
        print('清除')
        return f"x:{x} y:{y} z:{z}"
    print(meet(x=10, z=30, y=20))
    
    1. 混合参数 (位置和关键字混着用 关键字参数一定要在位置参数后面)
      • 函数名(位置参数 ,关键字参数) 否则报错
    def meet(x, y, z):
        print('左划一下')
        print('又划一下')
        print(f'寻找目标 x:{x} y:{y} z:{z}')
        print('分析')
        print('锁定')
        print('清除')
        return f"x:{x} y:{y} z:{z}"
    print(meet(10, 30, y=20))
    

    形参角度:

    • 位置参数
    • 默认参数
    • 动态参数
    • 仅限关键字参数
    1. 位置参数 同 实参
    2. 默认参数 (一定在位置参数的后面,不传参即沿用默认的参数)
      • 为什么要用默认参数 无所谓 经常用的 设置 约定俗称的
      • open() #mode默认 r 读模式
    def meet(x, y, z=0):
        print('左划一下')
        print('又划一下')
        print(f'寻找目标 x:{x} y:{y} z:{z}')
        print('分析')
        print('锁定')
        print('清除')
        return f"x:{x} y:{y} z:{z}"
    print(meet(10, y=20, z=10))
    
  • 相关阅读:
    Haproxy 【转载】
    Nginx介绍
    Day 13 进程和线程
    运维第一课
    面试bb
    Day 12 字符串和正则表达式
    Day 11 文件和异常
    Day10 图形用户界面和游戏开发
    Day9 面向对象进阶
    day8 面向对象编程基础
  • 原文地址:https://www.cnblogs.com/xintiao9/p/11041909.html
Copyright © 2011-2022 走看看