zoukankan      html  css  js  c++  java
  • Python——函数,模块,简单文件读写(python programming)

    函数(function)定义原则:

    最大化代码重用,最小化代码冗余,流程符合思维逻辑,少用递归;

    函数的定义方法:

    def function_name(param_1, param_2):

      .....

      return output  #输出,结束函数

    注意:

    函数要在使用之前定义
    函数的使用方法以print()函数为例
    形式参数和实际参数
    在函数内定义的变量为本地变量,在函数外无法访问

    参数传递:

    实际参数通过赋值运算传递给形式参数
    注意:如果参数是列表,在函数内可以被修改 (列表可以原位传递)

    复制代码
    1 def add_ab(a,b):
    2     c = a + b
    3     return c
    4 n = add_ab(1.5,3)
    5 s = add_ab('mmm','nnn')
    6 print(m)
    7 print(n)
    复制代码

    函数返回多个变量:  

    如果一个函数需要返回多个变量:
    函数定义中的return语句后面放置多个变量,以逗号分隔
    该函数返回一个多元组
    调用函数时,等号左端放置相应数量的变量名,以逗号分隔
    也可以用一个变量承载函数返回的多元组,然后在拆分(元组,有序的小集合,不可原地修改)

    复制代码
     1 def max_min(a,b):
     2          if a > b:
     3                   return a,b
     4          else:
     5                   return b,a
     6 m1,n1 = max_min(1,2)
     7 m2,n2 = max_min(2,1)
     8 print('m1:', m1)
     9 print('n1:', n1)
    10 print('m2:', m2)
    11 print('n2:', n2)  
    复制代码

    声明全局变量:

    函数内的变量前加上关键字global以声明全局变量
    全局变量是模块级的
    不要滥用全局变量,尤其是在Python中
    使用全局变量不符合黑箱假设,不利于代码重用

    函数是一个对象:

    当我们使用def定义一个函数时,我们定义了一个函数类型的对象。
    将函数定义放在if else语句之中,可以分情况来定义不同的函数体
    函数名可以当作变量来进行赋值操作
    函数可以被重新定义
    函数可以有属性

    函数嵌套:

    如果函数A中需要调用函数B:
    在A第一次执行之前,B必须被定义
    不一定要在A定义之前就定义B

    默认参数

    1 def f(a, b = 2 , c = 3)

    lambda函数:lambda语句创建一个无名函数,并将该函数作为返回值

    只能包含一个表达式,连if这样的结构都不支持
    def语句中的函数名是预先设定好的,lambda语句则可以把产生的函数赋给任意一个变量名
    lambda产生的函数也可以不占用变量名

    模块:

    将一些函数或变量封装在.py文件中,以供调用
    比函数更高层次的封装
    .py文件的名字就是模块的名字
    通过这种封装,可以避免单个.py文件过长
    自定义的模块应该放在主程序目录下

    模块调用:

    import numpy as np
    from numpy import arccos
    from numpy import * #破坏命名空间,可能会破坏本来命名的和调用模块重名的方法函数

    读取文本文件

    打开一个文件
    input = open(‘file_name’, ‘r’)
    读取文件中的内容到一个字符串
    content = input.read()
    关闭文件
    input.close()

    转载自https://www.cnblogs.com/wwwwwei/p/10552915.html

  • 相关阅读:
    vSphere vCenter的个人理解及问题
    服务器账号过期处理
    虚拟化初探引入
    win10虚拟机跨网段迁移
    win7远程执行win10的抓取代码
    Jenkins+Sonar质量门禁【实践篇pipeline版】
    ELK7.10 license过期处理
    php 0108
    php 0110
    php 0111
  • 原文地址:https://www.cnblogs.com/caiyishuai/p/10594208.html
Copyright © 2011-2022 走看看