《第六部分-练习题5:re正则使用统计行数-判断手机号(5道题)》

目录

关联文章

一、使用os模块写一个递归调用打印出E:\\home下的所有文件名的绝对路径

二、用正则方法实现统计指定字符如"python"的所在文件的行数?(文件中的python字符)

三、随机生成11位数,并判断是否是电话号码

四、统计指定文件中字符出现的次数(如中error和warning单词出现的次数)

五、通过指定的整数列表,计算出目标值的可能性



关联文章

《第六部分:6.1-Python之基本操作+Python常见的运算》

《第六部分:6.2-Python之字符-元组-字典-列表》

《第六部分:6.3-Python之判断-三目-循环》

《第六部分:6.4-Python之函数-定义和使用》

《第六部分:6.5-Python之模块-定义和使用》

《第六部分:6.6-Python之类与对象-定义和使用》

《第六部分-练习题1:列表-字典-循环练习(10道题)》

《第六部分-练习题2:使用递归-模块-自定义函数(8道题)》

《第六部分-练习题3:使用open()函数处理文件(3道题)》

《第六部分-练习题4:random函数生成随机数(3道题)》

《第六部分-练习题5:re正则使用统计行数-判断手机号(5道题)》

一、使用os模块写一个递归调用打印出E:\\home下的所有文件名的绝对路径

注意需要应用模块:

import os

import re

代码部分:

# 1,使用os模块写一个递归调用打印出E:\\home下的所有文件名的绝对路径
#------------------------------------------------------------------(1)
import os
import re
url=r"D:\QGFile\Projects\PythonProjects"
listAll=[]
def getFileUrl(url):
    for i  in os.listdir(url):
        newPath=os.path.join(url,i)
        if os.path.isfile(newPath):
            listAll.append(newPath)
            print(newPath)
        else:
            getFileUrl(newPath)
    return listAll
#调用函数
getFileUrl(url)

二、用正则方法实现统计指定字符如"python"的所在文件的行数?(文件中的python字符)

如:E:\\python文件中test.txtwen

注意需要应用模块:

import os

import re

 代码部分:

# # 2,用正则方法实现统计E:\\python文件中指定字符如"python"的行数?(文件中的python字符)
#------------------------------------------------------------------------------(2)
fileUrl=r'D:\QGFile\Projects\PythonProjects\python\shenSir\testPython.txt'
selectStr='python'
def fileCount(url,string):
    with open(url,'r',encoding='utf-8') as file:
        count=0
        listStr=[]
        listNum=[]
        #(1)首先拿到文件中所有的行数
        allLine=file.readlines()
        #(2)通过正则找出关键字,并统计出行数
        for i in allLine:
            if len(re.findall(string , i))>0:
                count+=1
                listStr.append(i)
                listNum.append(allLine.index(i)+1)
                print(listNum)
        return [count,listStr,listNum]

#调用函数
print('出现关键字行数:{0[0]} ,\n其中行号如下:{0[2]}'.format(fileCount(fileUrl,selectStr)))

三、随机生成11位数,并判断是否是电话号码

注意需要应用模块:

import os

import re

 代码部分:



# 3,使用正则完成市面上手机规则的编写,随机生成11位数字然后通过正则匹配出符合规则的11为数手机号码?
#规则:第一位必须是1、第二位不能是0-2,、第三位则是0-9
#------------------------------------------------------------------------------(3)
import string
import random
import re
def judgeTelPhone():
    phoneNum=''
    #(1)随机生成11位纯数字
    for i in range(11):
        phoneNum+=random.choice(string.digits)
    #(2)使用正则匹配手机编写规则并打印出来(不符合一直递归走)
    str1=re.findall('^1[3-9][0-9]\d{8}',phoneNum)
    if len(str1)>0:
        return str1
    else:
       return judgeTelPhone()

#调用函数
print('随机生成的手机号是:'+judgeTelPhone()[0])

四、统计指定文件中字符出现的次数(如中error和warning单词出现的次数)

注意需要应用模块:

import os

import re

 代码部分:


# 4,用正则实现写一段代码统计E:\\log文件中error和warning单词出现的次数分别为几次?
#------------------------------------------------------------------------------(4)
fileUrl=r'D:\QGFile\Projects\PythonProjects\python\shenSir\testPython.txt'
listStr=['error','warning']
def fileListCount(url,strList):
    with open(url,'r',encoding='utf-8') as file:
        count=0
        dicStr={}
        #(1)拿到文件转字符串
        allLine=file.read()
        print(file.read())
        #(2)通过正则找出关键字,并统计字符出现次数
        for i in set(strList):
            str1 = re.findall(i, allLine)
            dicStr.setdefault(i,len(str1))
        print(dicStr)

#调用函数
fileListCount(fileUrl,listStr)

五、通过指定的整数列表,计算出目标值的可能性

# 5、给定一个整数列表nums和一个整数目标值target,请你在该列表中找出“和为目标值target的两个整数,

# 并返回他们的下标”,你可以假设每种输入只会对应一个答案,但是,列表中同一个元素的下标在答案里不能重复出现,

# 可以按照任意顺序返回答案

#--------------------------------------------

# 示例:

# 输入:nums = [2,7,11,15],target = 9

# 输出:[0,1]

# 解释:因为nums[0]+nums[1] == 9,返回[0,1]

#------------------------------------------------------------------------------(4)

 代码部分:


# 5、给定一个整数列表nums和一个整数目标值target,请你在该列表中找出“和为目标值target的两个整数,
# 并返回他们的下标”,你可以假设每种输入只会对应一个答案,但是,列表中同一个元素的下标在答案里不能重复出现,
# 可以按照任意顺序返回答案
#--------------------------------------------
# 示例:
# 输入:nums = [2,7,11,15],target = 9
# 输出:[0,1]
# 解释:因为nums[0]+nums[1] == 9,返回[0,1]
#------------------------------------------------------------------------------(4)
nums,target= [2,7,10,6,-1,10,8,1], 9
def jiSuanTarget(nums,target):

    listAll=[]
    for i in range(len(nums)):
        for j in range(len(nums)-i-1):
            if nums[i]+nums[i+j+1]==target:
                listAll.append((i,j+i+1))
    print(listAll)

jiSuanTarget(nums,target)

  • 1
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

大大大钢琴

开启一个愿望池,许下你愿望吧

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值