• 初识函数及文件操作


    1. 函数的基本作用

    • 函数式:将某功能代码封装到函数中,日后便无需重复编写,仅调用函数即可
    • 面向对象:对函数进行分类和封装,让开发“更快更好更强...”

    函数式编程最重要的是增强代码的重用性和可读性

    2. 定义和使用

    def 函数名(参数):

    ...

    函数体

    ...

    返回值

    函数的定义主要有如下要点:

    • def:表示函数的关键字
    • 函数名:函数的名称,日后根据函数名调用函数
    • 函数体:函数中进行一系列的逻辑计算,如:发送邮件、计算出 [11,22,38,888,2]中的最大数等...
    • 参数:为函数体提供数据
    • 返回值:当函数执行完毕后,可以给调用者返回数据

    return值是用来给调用者的。

    在函数中,一旦执行了return,函数执行过程立即终止。

    在未设置return值得时候,自动返回none。

    3.参数

    (1)普通参数(严格按照顺序,将实际参数赋值给形式参数)

    (2)默认参数(必须放到最后)

    (3)指定参数(将实际参数赋值给制定的形式参数)

    (4)动态参数

    *  默认将传入的参数,全部放置在元组中(以元组传入)

    **默认将传入的参数,全部放置在字典中(以字典传入)

    def f1(*args): #
    print(args,type(args))

    li = [11,22,'hahah']
    f1(li)
    f1(*li)
    结果:

    ([11, 22, 'hahah'],) <class 'tuple'>
    (11, 22, 'hahah') <class 'tuple'>

    def f1(**args): # 以字典传入
    print(args,type(args))
    f1(n1="haha", n2=18)
    dic = {'k1':'v1','k2':'v2'}
    f1(kk=dic)
    f1(**dic) # 直接赋值args
    结果:

    {'n2': 18, 'n1': 'haha'} <class 'dict'>
    {'kk': {'k2': 'v2', 'k1': 'v1'}} <class 'dict'>
    {'k1': 'v1', 'k2': 'v2'} <class 'dict'>

    (5)万能参数  *args在前  **kwargs在后

    image

    str format 格式化输出

    s1 = "I am {0}, age{1}".format('haha', 18)
    print(s1)
    s2 = "I am {0}, age{1}".format(*['haha', 18])
    print(s2)
    结果:

    I am haha, age18
    I am haha, age18

    s1 = "I am {name}, age{age}".format(name='haha', age=18)
    print(s1)
    dic = {'name': 'haha', 'age':18}
    s2 = "I am {name}, age{age}".format(**dic)
    print(s2)
    结果:

    I am haha, age18
    I am haha, age18

    函数参数传递说明:传递的是引用值。即同一值在内存中,只有一个位置

    def f1(a1):
    a1.append(999)

    li = [11,22,33,44]
    f1(li)
    print(li)
    结果:
    [11, 22, 33, 44, 999]
    全局变量,所有的作用域都可读优先使用自己域中
    对全局变量进行重新赋值,需要global
    特殊:列表、字典。可修改,不可重新赋值
    全局变量----大写

    4. 小细节

    函数与函数之间加两行空格------PEP8

    读取文件每一行的时候 加上.strip()--去掉换行符及空格

    5. 三元运算/三目运算

    if 1==1:
    name = 'alex'
    else:
    name = 'hahah'
    等同:

    name = 'alex' if 1 == 1 else 'hahah'

    6. Lambda表达式

    针对简单赋值函数,简化

    def f1(a1):
    return a1 + 100
    等同:

    f2 = lambda a1: a1 + 100

    7. 内建函数

    [], '', 0, False
    all() # 里面每一个均为真,则为真,有一个为假,则为假

    any()  # 只要有真,则为真

    bin()  # 将传进去的10进制转为2进制  0b—>二进制

    oct()  # 转为8进制  0o—>八进制

    hex()  # 转为16进制  0x—>十六进制

    字符串转换字节类型

    bytes(只要转换的字符串,按照什么编码)

    n = bytes("李杰", encoding="utf-8")
    print(n)
    n = bytes("李杰", encoding="gbk")
    print(n)

    字节转化成字符串

    new_str = str(bytes("李杰", encoding="utf-8"), encoding="utf-8")

    8. 文件操作

    f = open("db", 'r+', encoding = "utf-8")

    # 如果打开模式为r+,无b,则read按照字符读取

    f.tell()

    # tell当前指针所在的位置(字节—>一个汉字,三个字节

    f.seek()

    # 调整当前指着的位置(字节

    f.seek(f.tell())

    # 当前指针位置开始覆盖

    f.flush()  # 强制刷新

    f.truncate()  # seek位置,清空后面数据

  • 相关阅读:
    负载均衡服务之HAProxy基础入门
    WEB缓存系统之varnish代理以及健康状态检测配置
    WEB缓存系统之varnish缓存项修剪
    WEB缓存系统之varnish状态引擎
    WEB缓存系统之varnish基础入门
    WEB缓存控制机制与varnish简介
    WEB应用之httpd基础入门(五)
    Appium移动端测试--基础预热
    postman接口测试-参数化-测试数据Text文本
    机器学习环境搭建安装TensorFlow1.13.1+Anaconda3.5.3+Python3.7.1+Win10
  • 原文地址:https://www.cnblogs.com/qpzm/p/5924962.html
Copyright © 2020-2023  润新知