DAY9 函数

一.脚本文件的执行

1.存放当前文件作为脚本文件执行的参数们:[‘当前文件的绝对路径’,手动传入的参数们]

2.脚本文件执行:直接用python解释器运行该文件

 print(sys.argv)
 # D:\fullstack_s4\day09\代码\0.复习.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_s4\day09\代码\cmd.txt', 'w', encoding='utf-8') as f:
             pass
     elif cmd == '2':
         print("书写文件")
         with open(r'D:\fullstack_s4\day09\代码\cmd.txt', 'w', encoding='utf-8') as f:
             f.write("写入内容")
     else:
         print("指令有误")
 else:
     print("没有指令传入")

二.函数

2.1 函数的定义

  函数:重复利用的工具可以完成特定功能的代码块,函数就是存放代码块的容器

2.2 函数的组成

 def 函数名(参数们):
  函数体
  return '返回值'

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

  2. 函数名:使用该函数的依据

  3.函数体:完成功能的代码块

  4.return:函数的返回值

  5. 参数:()参数列表,参数个数可以是0~n个,但()不能少

2.3 函数的使用

  def fn(num):
    print("传入的num值:%s" % num)
    return '收到了'

   res = fn(10)

   控制台会打印:传入的num值:10

   res的值为:‘收到了’

  注意:函数一定要先定义后调用

2.4 函数的分类

1. 从函数体进行分类

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

    def computed():

      pass

  1.2 非空函数

    def add_num(n1, n2):
      ''' 函数的注释
      :param n1: 第一个数
      :param n2: 第二个数
      :return: 两个数之和
      '''
    return n1 + n2
2. 从参数列表划分

  1.无参函数:不需外界资源

    def start():
      print('系统启动')
  start()

  2.有参函数:需要外键资源

      def login(usr, pwd):
      if usr == 'owen' and pwd == '123':
          print('登录通过')
  else:
        print('登录失败')
 
    login('owen', '123')
3.根据返回值划分(return用于结束函数)

  1. 空返回:返回None

    def demo(x, y):
      print( x + y )
     
  def demo(x, y):
    print( x + y )
    return  # 用来强行结束函数的(像break结束循环一样)

  2. 一值返回

      def demo(x, y):
      return x + y

  3.多值返回

      def demo(x, y):
    return x + y, x - y, x * y, x / y # 本质就是返回装有多个值的元组

2.5 函数的嵌套调用

  函数的嵌套调用:在一个函数体重调用另一个函数

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

     def fn1():
    print('fn1 run')
    fn2()
 ​
  def fn2():
    print('fn2 run')
    fn3()
 ​
  def fn3():
    print('fn3 run')
  # 注:在fn1中调用了fn2,所以调用fn1的逻辑应该在fn2定义之后
  fn1()

2.6 函数完成指定文件名文件的复制

     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('cmd.txt', 'aaa.txt')
  copy_file('temp.txt', 'ttt.txt')

 

 

 

posted @ 2019-03-28 15:18  Lip&Hip  阅读(119)  评论(0编辑  收藏  举报