zoukankan      html  css  js  c++  java
  • python 23day--python模块的应用

    一、random模块的应用:

    生成五为数字与字母组合的验证码:

     1 import random
     2 def v_code():#生成随机验证码
     3     ret = ''
     4     for i in range(5):
     5         num = random.randint(0,9)
     6         num1 = str(num)
     7         ref = chr(random.randint(65,122))
     8         ret += random.choice([num1,ref])
     9     print(ret)
    10 v_code()

    二、re模块的应用

    10个重要的re 的元字符:

    ^    以什么开头

    $   以什么结尾

    .    匹配任意字符(除外)

    *   匹配0到任意次

    ?  匹配0次或者1次(非贪婪模式)

    +  匹配1到任意次

    {}  {m,n}至少重复m次,最多重复n次

    []  [a-z]匹配a到z的字符

    ()  分组

      转义

    I  或的关系

    计算器:

     1 # 编辑者:闫龙
     2 import re #导入re模块(正则表达式)
     3 calc2 = "1-2*((60-30+(-40/52)*(9-2*5/3+7/3*-99/4*2998+10*568/14))-(-4*3)/(16-3*2))"
     4 calc1 = "1-2*((60-30+(-40/5)*(9-2*5/3+7/3*99/4*2998+10*568/14))-(-4*3)/(16-3*2))"
     5 calc = "1-2*((60*30+(-40/5)*(9*2*5/3+7/3*99/4*2998+10*568/14))-(-4*32)/(16-3*2))"
     6 def Format(Str):
     7     "格式化运算式"
     8     Str = Str.replace("+-","-")
     9     Str = Str.replace("-+", "-")
    10     Str = Str.replace("++", "+")
    11     Str = Str.replace("--", "+")
    12     return Str
    13 def SumCut(Str):
    14     while re.search("-?[0-9]+.?[0-9]*[-+][0-9]+.?[0-9]*",Str):
    15         newRes= re.search("-?[0-9]+.?[0-9]*[-+][0-9]+.?[0-9]*",Str)
    16         WhatIs = newRes.group()
    17         if(WhatIs.find("-") > 0):
    18             l = WhatIs.split("-")
    19             Str = Str.replace(WhatIs,str(float(l[0])-float(l[1])))
    20         elif(WhatIs.find("+") > 0):
    21             l = WhatIs.split("+")
    22             Str = Str.replace(WhatIs,str(float(l[0])+float(l[1])))
    23     return Str.replace("(","").replace(")","")
    24 def MulDiv(Str):
    25     while re.search("-?[0-9]+.?[0-9]*[/*].?[0-9]+.?[0-9]*",Str):
    26         newRes= re.search("-?[0-9]+.?[0-9]*[/*].?[0-9]+.?[0-9]*",Str)
    27         WhatIs = newRes.group()
    28         if(WhatIs.find("/") > 0):
    29             l = WhatIs.split("/")
    30             Str = Str.replace(WhatIs,str(float(l[0])/float(l[1])))
    31         elif(WhatIs.find("*") > 0):
    32             l = WhatIs.split("*")
    33             if(float(l[0])<0 and float(l[1])<0):
    34                 Str = Str.replace(WhatIs, "+"+str(float(l[0]) * float(l[1])))
    35             else:
    36                 Str = Str.replace(WhatIs,str(float(l[0])*float(l[1])))
    37     return Format(Str)
    38 while re.search("([^()]+)",calc):
    39     res = re.search("([^()]+)", calc)
    40     resTwo = MulDiv(Format(res.group()))
    41     resTwo = SumCut(resTwo)
    42     calc = calc.replace(res.group(),resTwo)
    43 else:
    44     resTwo = MulDiv(calc)
    45     resTwo = SumCut(resTwo)
    46     calc = resTwo
    47 print(calc)
  • 相关阅读:
    hibernate 字段名最好不要使用数据库的保留字
    Tomcat Java内存溢出 PermGen space 解决方案
    jsp关于include html、jsp等文件出现乱码问题的解决方案
    hibernate annotation注解 columnDefinition用法
    hibernate annotation注解 主键ID自增长
    Java将整个文件夹里的文本中的字符串替换成另外一个字符串(可用于项目复制,变成另一个项目)
    FreeMarker 乱码解决方案 生成静态html文件
    Java发送post请求
    编程式导航
    vue-router 的重定向-redirect
  • 原文地址:https://www.cnblogs.com/yuzhiboyou/p/10179735.html
Copyright © 2011-2022 走看看