Python经典基础习题(字符串与正则表达式)

目录

1.编写代码,根据完整路径从路径中分离文件路径(只需要分离出一个路径整体即可),文件名及文件扩展名。

str1 = "D:\ \软件\ \python\ \python39\ \Tools\ \scripts\ \abitype.py"

2.编写函数hanzi_count(str)统计任意字符串中汉字的个数。

3.编写函数trans(str)实现字符串中数字转化为大写汉字。例如 "0123456789"转化为 "零壹贰叁肆伍陆柒捌玖"。

4.编写程序,校验键盘录入的电子邮箱是否合法,并测试。

5.已知有字符串"张三 张四 王小玲 13208888123 4819599 zhangtom@126.com 676197687211@qq.com 1999-03-26 《凡人修仙传》《水浒传》", 设计正则表达式,并编写代码完成以下功能:

提取其中邮箱账号

提取手机号码

提取小说名称

提取日期


1.编写代码,根据完整路径从路径中分离文件路径(只需要分离出一个路径整体即可),文件名及文件扩展名。

str1 = "D:\ \软件\ \python\ \python39\ \Tools\ \scripts\ \abitype.py"

程序代码:

str1 = "D:\\软件\\python\\python39\\Tools\\scripts\\abitype.py"
lis = str1.split("\\")
lis_road = "\\".join(lis)
print(lis_road)
lis_road_end = lis_road.split("\\")
print(lis_road_end[len(lis_road_end)-1])

运行结果:

C:\ProgramData\Anaconda3\python.exe D:/blue6/01.py
D:\软件\python\python39\Tools\scripts\abitype.py
abitype.py

进程已结束,退出代码0

2.编写函数hanzi_count(str)统计任意字符串中汉字的个数。

程序代码:

import  string
def hanzi_count(str):
    a = 0
    for i in str:
        if (i in string.ascii_letters):
            continue
        elif(i.isalpha()):
            a += 1
    return a
b = hanzi_count("杜杜是笨蛋!")
print(f"汉字的个数为{b}个")

运行结果:

C:\ProgramData\Anaconda3\python.exe D:/blue6/02.py
汉字的个数为5个

进程已结束,退出代码0

3.编写函数trans(str)实现字符串中数字转化为大写汉字。例如 "0123456789"转化为 "零壹贰叁肆伍陆柒捌玖"。

程序代码:

number = str(int(input("请输入数字:")))
n = int(input("您在数字前输入了多少个零:"))
lis1 = ["零","壹","贰","叁","肆","伍","陆","柒","捌","玖"]
number_end = number.zfill(len(number) + n)
number_endd = ""
def trans(str):
    global number_endd
    for i in range(0,len(str)):
        number_endd += lis1[int(number_end[i])]
    return number_endd

print(trans(number_end))

运行结果:

C:\ProgramData\Anaconda3\python.exe D:/blue6/03.py
请输入数字:0123456789
您在开头输入了多少个零:1
零壹贰叁肆伍陆柒捌玖

进程已结束,退出代码0

4.编写程序,校验键盘录入的电子邮箱是否合法,并测试。

程序代码1:

import re
mail_number = input("请输入您的QQ邮箱账号:")
if (re.match("[0-9]{5,11}@qq.com",mail_number)):
    print("您输入的QQ邮箱账号有效!")
else:
    print("您输入的QQ账号无效!")

运行结果:

C:\ProgramData\Anaconda3\python.exe D:/blue6/04.py
请输入您的QQ邮箱账号:5561616@ll
您输入的QQ账号无效!

进程已结束,退出代码0

运行结果:

C:\ProgramData\Anaconda3\python.exe D:/blue6/04.py
请输入您的QQ邮箱账号:860804662@qq.com
您输入的QQ邮箱账号有效!

进程已结束,退出代码0

程序代码2:

import re
mail_number = input("请输入您的网易邮箱账号:")
if (re.match("[0-9]{11}@163.com|[a-zA-Z]{1}[a-zA-Z0-9]{5,17}@163.com",mail_number)):
    print("您输入的网易邮箱账号有效!")
else:
    print("您输入的网易账号无效!")

运行结果:

C:\ProgramData\Anaconda3\python.exe D:/blue6/04.py
请输入您的网易邮箱账号:1sdsa@163.com
您输入的网易账号无效!

进程已结束,退出代码0

运行结果:

C:\ProgramData\Anaconda3\python.exe D:/blue6/04.py
请输入您的网易邮箱账号:LIAOLOVEDU@163.com
您输入的网易邮箱账号有效!

进程已结束,退出代码0

C:\ProgramData\Anaconda3\python.exe D:/blue6/04.py
请输入您的网易邮箱账号:17397551104@163.com
您输入的网易邮箱账号有效!

进程已结束,退出代码0

5.已知有字符串"张三 张四 王小玲 13208888123 4819599 zhangtom@126.com 676197687211@qq.com 1999-03-26 《凡人修仙传》《水浒传》", 设计正则表达式,并编写代码完成以下功能:

  1. 提取其中邮箱账号

  2. 提取手机号码

  3. 提取小说名称

  4. 提取日期

程序代码:

import re
message = "张三 张四 王小玲 13208888123 " \
          "4819599 zhangtom@126.com 676197687211@qq.com " \
          "1999-03-26 《凡人修仙传》《水浒传》"
mail_number = re.findall(r"\w+@+\w+.com",message)
mail_number_end = "  ".join(mail_number)
print("邮箱账号是:{}".format(mail_number_end))
text_name = re.findall(r"《\w+》",message)
text_name_end ="".join(text_name)
print(f"小说名称是:{text_name_end}")
date = re.findall("\d+\w[-]+\d\d+[-]+\d\d",message)
date_end = "".join(date)
print(f"日期是:{date_end}")
phone_number = re.findall("[0-9]{11}\s",message)
phone_number_end = "".join(phone_number)
print("电话号码是:%s"%phone_number_end)

运行结果:


C:\ProgramData\Anaconda3\python.exe D:/blue6/05.py
邮箱账号是:zhangtom@126.com  676197687211@qq.com
小说名称是:《凡人修仙传》《水浒传》
日期是:1999-03-26
电话号码是:13208888123 

进程已结束,退出代码0
  • 2
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值