zoukankan      html  css  js  c++  java
  • python 拼接字

    在编译脚本的时候,由于脚本的框架是统一写好的,于是乎用上了拼接字的功能, 本脚本实现的是波特率设置的自动化,利用的是正则表达式,TASK函数是统一写好的,此处只做调用

    from Args import Args
    import time
    cz_IPR = [9600,19200,38400,57600,115200] # 此模组支持的波特率范围
    s1 = 'AT+IPR=' #拼接字的其中一个字符串

    cmds = [
    Args(request="AT",regex="^ OK $",retry_limit=3,can_skip=True),

    ]
    reboot = [
    Args(request="AT+CFUN=1,1",regex=r"^ OK $",delay=20,can_skip=True),
    Args(request="AT",regex="^ OK $",retry_limit=3,can_skip=True),
    ]

    if __name__ == "__main__" or True:
    from task import Task
    Task(cmds).execute()
    for n in range(10): # 循环执行波特率设置次数
    for i in cz_IPR:
    print(i)
    s2 = i #拼接字的另外字符串
    cz_iprset = [Args(request='{}{}'.format(s1, s2), regex="^ OK $", can_skip=True)] # 此处采用的是拼接字符串的format()拼接方式,通过for循环来赋予不同波特率来循环配置
    Task(cz_iprset).execute()
    Task.update_baudrate(i)
    time.sleep(10)
    Task(cmds).execute()
    Task(reboot).execute()
    Task.update_baudrate(115200) # 更新串口波特率的功能
    time.sleep(5)
    由于脚本用到了拼接字的功能,于是学习顺带学习了python中的相关拼接子的应用:
    1、format()的拼接方式介绍:
    例如:
    # format 拼接方式:使用花括号{}做占位符,在format方法中再转入实际的拼接值
    '''方式一'''
    s1 = 'AT+IPR='
    s2 = 9600
    request='{}{}'.format(s1, s2)
    print(request) #打印结果:AT+IPR=9600
    '''方式二'''
    request = '{str1}{str2}'.format(str1 = 'AT+IPR=',str2 = 9600) #
    key-value的方式

    print(request) #打印结果:AT+IPR=9600

    request ='{0}{1}'.format('AT+IPR=',9600)    # 序号的方式
    print(request)

    上例中,方式一的花括号中无内容,缺点是容易弄错次序。方式二,一种传入序列号,一种则使用key-value的方式。实战中,我们更推荐方式二
    2、'''来自C语言的%'''
    cmd = '%s%d'%('AT+IPR=',9600)
    print(cmd)

    3、
    '''() 类似元组方式'''
    s_tuple = ('Hello', ' ', 'world')
    s_like_tuple = ('Hello' ' ' 'world')

    print(s_tuple) #('Hello', ' ', 'world')
    print(s_like_tuple) #Hello world
    print(type(s_like_tuple)) #<class 'str'>
    这种方式看起来很快捷,但是,括号()内要求元素是真实字符串,不能混用变量,所以不够灵活
    4、'''面向对象模板拼接'''
    from string import Template
    s = Template('${s1} ${s2}!')
    print(s.safe_substitute(s1='Hello',s2='world'))

    5、
    '''常用的+号方式'''
    str_1 = 'Hello world! '
    str_2 = 'My name is Python猫.'
    print(str_1 + str_2)
    print(str_1)



  • 相关阅读:
    Java工作流引擎全局变量的介绍
    Java工作流系统-CCBPM如何自动升级?
    驰骋工作流系统-Java共工作流引擎配置定时任务
    那些年下过的大雨
    移动端APP列表点透事件处理方法
    关于React中状态保存的研究
    几个关于js数组方法reduce的经典片段
    关于React组件之间如何优雅地传值的探讨
    模拟制作网易云音乐(AudioContext)
    移动端效果之IndexList
  • 原文地址:https://www.cnblogs.com/wellons/p/14185809.html
Copyright © 2011-2022 走看看