zoukankan      html  css  js  c++  java
  • 函数

    一、函数的定义:跟变量名的定义大同小异

    1、声明函数的关键词:def

    2、函数(变量)名:使用函数的依据

    3、参数列表:()   参数个数可以为0到n个,但()一定不能丢,完成功能的必要条件

    4、函数体:实现函数功能的具体代码

    5、函数的返回值:return,功能完成的返回信息

            例:def fn(moeny):

                       print('付了%s钱'%money)

                        print('函数的一行代码')

                        return'冰红茶'

                   print(fn,id(fn))                     #fn直接打印,只能看到函数存放代码的地址

    二、使用函数:函数名()

              fn(10)

            函数的返回值也称之为函数值,就是函数执行之后得到的结果

            可以用变量接受(msg = fn(10))、可以直接打印(print(fn(10)))、可以直接使用

             函数执行的本质:执行函数体,得到函数返回值

    三、从函数体进行分类:

    重点:先定义后调用

    1、空函数:项目之初,知道项目有哪些功能,但还没有明确功能体,可以用pass进行函数体填充

                  例:   def  computed():

                                   pass

    2、非空函数:用函数体

                  例: def add_num(n1,n2):

                               return n1 + n2

                          res = add_num(10,20)

                          print(res)                        #  30

    四、从参数列表进行分类:

    1、无参函数:函数体运行不需要外界提供参数

         例:def print_msg():

                      print('welcome')

                print_msg()

    2、有参函数:函数体运行需要外界提供参数

         例:  def print_school_msg(p1,p2):

                         print('welcome %s and %s'%(p1,p2))

                 p1 = input('输入名字:')

                  p2 = input('输入名字')         

                  print_school_msg(p1,p2)

    五、从返回值进行分类:

    空返回:

    1、没有return的函数:

         例: def fn1():

                      print('fn1 run!!!')

                  res = fn1()

                  print('没有return的返回值:%s',%res)      #None

    2、空return

         例:   def fn2():

                        print('fn2  run!!!')

                        return

                   ren = fn2()

                   print('空return的返回值,%s'%res)          #None

    注:没有return函数和空return函数的区别:

          空return:可以根据具体情况主动退出函数(像break一样结束循环)

    值返回:

    1、返回一个值:

         例: def add_num(n1,n2):

                         return n1+ n2

                 print(add_num(10+15))          #25

               

                

             def computed(n1, n2):
    # 返回四则运算的结果
    r1 = n1 + n2
    r2 = n1 - n2
    r3 = n1 / n2
    r4 = n1 * n2
    return [r1, r2, r3, r4]
    a,b,c,d = computed(10,20)
    print(a,b,c,d)

    2、返回多个值:本质就是返回装有多个值得元组

         def computed_sup(n1, n2):

        # 返回四则运算的结果
    r1 = n1 + n2
    r2 = n1 - n2
    r3 = n1 // n2
    r4 = n1 ** n2
    return r1, r2, r3, r4
    a, b, c, d = computed_sup(50, 25)
    print(a, b, c, d)
    res = computed_sup(10,20)
    print(res) #得到的是装有所有结果的元组

    六、函数的嵌套使用:在一个函数体中调用另一个函数

          注:在解释过程中,不执行函数体,在函数被调用时,函数体才被执行

    def max_2(n1, n2):
    if n1 > n2:
    return n1
    return n2 #比较两个数的大小
    
    
    def max_3(n1, n2, n3):
    m2 = max_2(n1, n2)
    return max_2(m2, n3) #比较三个数的大小
    
    
    def max_4(n1, n2, n3, n4):
    m2 = max_2(n1, n2)
    return max_3(m2, n3, n4) #比较四个数的大小
    七、应用场景:
    指定文件名的文件复制:
    def copy_file(source, target):
    '''
    :param source: 被复制的文件
    :param target: 复制得到的文件
    :return: #函数体的注释
    '''
    with open(source, 'rb') as r, open(target, 'wb') as w:
    for line in r:
    w.write(line)
    copy_file('被复制的文件','复制得到的文件')

    八、了解:脚本文件的执行
    import sys
    # 存放当前文件作为脚本文件执行的参数们:['当前文件的绝对路径', 手动传入的参数们]
    # 脚本文件执行:直接用python解释器运行该文件
    print(sys.argv)
    # D:fullstack_s4day09代码.复习.py

    length = len(sys.argv)
    if length > 1:
    print("有指令传入")
    cmd = sys.argv[1]
    if cmd == '1':
    print("新建文件")
    # f = open('cmd.txt', 'w', encoding='utf-8')
    # f.close()
    with open(r'D:fullstack_s4day09代码cmd.txt', 'w', encoding='utf-8') as f:
    pass
    elif cmd == '2':
    print("书写文件")
    with open(r'D:fullstack_s4day09代码cmd.txt', 'w', encoding='utf-8') as f:
    f.write("写入内容")
    else:
    print("指令有误")
    else:
    print("没有指令传入")
     

     

      

                         

                          

       

                                

  • 相关阅读:
    HDFS文件系统上传时序图 PB级文件存储时序图
    HDFS 文件系统流程图。PB级文件存储时序图。
    HBase 1.1.2 优化插入 Region预分配
    InputStream、OutputStream
    StringBuffer_StringBuilder
    java中的字符串
    升级的三个因素
    装饰设计模式
    IO字符流之读写缓冲区(BufferedWriter、BufferedReader)
    IO(FileWriter/FileReader)字符流:文件的写入、续写、读
  • 原文地址:https://www.cnblogs.com/yanminggang/p/10615370.html
Copyright © 2011-2022 走看看