题目
-
编写代码,根据完整路径从路径中分离文件路径(只需要分离出一个路径整体即可),文件名及文件扩展名。 str1 = "D:\ \软件\ \python\ \python39\ \Tools\ \scripts\ \abitype.py"
-
编写函数hanzi_count(str)统计任意字符串中汉字的个数。
-
编写函数trans(str)实现字符串中数字转化为大写汉字。例如 "0123456789"转化为 "零壹贰叁肆伍陆柒捌玖"。
-
编写程序,校验键盘录入的电子邮箱是否合法,并测试。
-
已知有字符串"张三 张四 王小玲 1320888XX23 4XX9599 XXXtom@126.com 676197687211@qq.com 1999-03-26 《凡人修仙传》《水浒传》", 设计正则表达式,并编写代码完成以下功能:
- 提取其中邮箱账号
- 提取手机号码
- 提取小说名称
- 提取日期
代码
1.编写代码,根据完整路径从路径中分离文件路径(只需要分离出一个路径整体即可),文件名及文件扩展名。 str1 = "D:\ \软件\ \python\ \python39\ \Tools\ \scripts\ \abitype.py"
思路:os.path模块或split()方法,我这里只写了os.path
import os
def file(path):
filepath,filename=os.path.split(path)
filename1,extension=os.path.splitext(filename)
print("您输入的完整文件路径为:{0}\n文件路径: {1}\n文件名为: {2}\n\
扩展名为: {3}".format(path,filepath,filename,extension))
str1 = "D:\\软件\\python\\python39\\Tools\\scripts\\abitype.py"
file(str1)
运行结果:
![]()
2.编写函数hanzi_count(str)统计任意字符串中汉字的个数。
思路:首先导入re模块,然后指定书上给的匹配给定字符串中常用汉字,正则表达式[\u4e00-\u9fa5]指定完后就就引用该正则表达式,findall()里面写出传入的字符串就可以找出汉字了。
import re
def hanzi_count(str):
hanzi_count = re.compile('[\u4e00-\u9fa5]')
hanzi_dict = hanzi_count.findall(str)
hanzi_join=''.join(hanzi_dict)
print("该输入的字符里有 {0} 个汉字分别是:\n{1}".
format(len(hanzi_dict), hanzi_join))
hanzi=input("请输入任意字符,但要确保里面含有汉字:")
hanzi_count(hanzi)
运行结果:
![]()
3. 编写函数trans(str)实现字符串中数字转化为大写汉字。例如 "0123456789"转化为 "零壹贰叁肆伍陆柒捌玖"。
han_number= ["零", "壹", "贰", "叁",
"肆", "伍", "陆",
"柒", "捌", "玖"]
def trans(str):
count = " "
for i in range(len(str)):
num = int(str[i])
count += han_number[num]
print(count)
Str=input("请输入数字:")
S=trans(Str)
运行结果:
4.编写程序,校验键盘录入的电子邮箱是否合法,并测试。
思路:格式就是最前面数字,字母所以我这里想到的是\w然后艾特符号@后面就是字符再后来就是"."后面又是字符所以['\w+@+\w+\.+\w']
import re
def Mail(Mail):
if re.findall('\w+@+\w+\.+\w',Mail):
print("合法!")
else:
print("不合法!!!")
mail=input("请输入邮箱账号:")
Mail(mail)
运行结果:
5.已知有字符串"张三 张四 王小玲 1320888XX23 4XX9599 XXXtom@126.com 676197687211@qq.com 1999-03-26 《凡人修仙传》《水浒传》", 设计正则表达式,并编写代码完成以下功能:
思路:首先导入提出给定的字符串,然后用re模块调用findall()方法来写出正则表达式的条件,然后就输出。
import re
str1="张三 张四 王小玲 13208888123 4819599\
zhangtom@126.com ,676197687211@qq.com 1999-03-26 \
《凡人修仙传》《水浒传》"
telephon1,telephon2=re.findall('(13[2-9]\d{8}|\d{7} )',str1)
mail1,mail2=re.findall('\w+@+\w+\.+\w', str1)
novel1,novel2=re.findall('\《+[\u4e00-\u9fa5]+\》',str1)
date=re.findall('\d{4}-\d{1,2}-\d{1,2}',str1)
print("手机号码为:{0}\t{1}\n邮箱账号为:{2}\t{3}\n\
小说名称为:{4}\t{5}\n日期为:{6}".format(telephon1,telephon2
,mail1,mail2,novel1,novel2,date[0]))
运行结果:
感觉写的好乱