栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

python学习实验报告(第六周)

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

python学习实验报告(第六周)

一、实验目的 1. 掌握:字符串格式化方法; 2. 掌握:字符串常用操作split()、strip()、translate()等方法使用; 3. 掌握:正则表达式语法基本语法。 4. 掌握:正则表达式模块re的常用函数用法。 注:本文对re库的使用主要参考菜鸟教程和一篇博客,若对re库的某些用法不理解可以参考一下或私信我 二、实验内容及结果 1. 编写代码,根据完整路径从路径中分离文件路径(只需要分离出一个路径整体即可),文件名及文件扩展名。 str1 = “D: 软件 python python39 Tools scripts abitype.py”
import os

str1 = "D:\软件\python\python39\Tools\scripts\abitype.py"
dirname = os.path.dirname(str1)
basename = os.path.basename(str1)
filename, extension = os.path.splitext(basename)
print("文件路径为:", dirname)
print("文件名为:", filename)
print("文件扩展名为:", extension)

2. 编写函数hanzi_count(str)统计任意字符串中汉字的个数。
def hanzi_count(str):
    count = 0
    for s in str:
        if 'u4e00' <= s <= 'u9fff':
            count += 1
    return count

string = input("请输入一个字符串:")
print("字符串汉字个数为: ", hanzi_count(string))

3. 编写函数trans(str)实现字符串中数字转化为大写汉字。例如 "0123456789"转化为 “零壹贰叁肆伍陆柒捌玖”。
def trans(str):
    intab = "0123456789"
    outtab = "零壹贰叁肆伍陆柒捌玖"
    transtab = str.maketrans(intab, outtab)
    return str.translate(transtab)

string = input("请输入一个字符串:")
print("数字转大写汉字后的字符串为:", trans(string))

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

email = input("请输入一个电子邮箱:")
if re.match("A([w-]+)@([w-]+).([w]+)Z", email):
    print("该电子邮箱合法")
else:
    print("该电子邮箱不合法")

5. 已知有字符串"张三 张四 王小玲 13208888123 4819599 zhangtom@126.com 676197687211@qq.com 1999-03-26 《凡人修仙传》《水浒传》", 设计正则表达式,并编写代码完成以下功能:
  • 提取其中邮箱账号
  • 提取手机号码
  • 提取小说名称
  • 提取日期
import re

def ex_email(string):
    email = re.findall("[w-]+@[w-]+.[w]+", string)
    if len(email) > 0:
        print("字符串中包括的邮箱帐号有:")
        for e in email:
            print(e, end=" ")
        print("n")

def ex_mob_num(string):
    mob_num = re.findall("1[3-9]d{9}(?:s|$)", string)
    if len(mob_num) > 0:
        print("字符串中包括的手机号码有:")
        for m in mob_num:
            print(m, end=" ")
        print("n")

def ex_nov_name(string):
    nov_name = re.findall("《.+》", string)
    if len(nov_name) > 0:
        print("字符串中包括的小说名称有:")
        for n in nov_name:
            print(n, end=" ")
        print("n")

def ex_date(string):
    date = re.findall("(d{1,4})-(0?d|1[0-2])-(3d|[0-2]?d)", string)
    if len(date) > 0:
        print("字符串中包括的日期有:")
        for year, month, day in date:
            print("{}-{}-{}".format(year, month, day), end=" ")
    print("n")

string = input("请输入一要提取的字符串:")
ex_email(string)
ex_mob_num(string)
ex_nov_name(string)
ex_date(string)

三、实验小结

本周题型针对的是字符串的操作,虽说字符串是最基础的数据类型,但是在目前我自身在日常写代码的过程中,对其相关操作使用还是相对较少的,re库也只是在要用到时粗浅地百度一下复制其用法,就是所谓的浅尝辄止吧。经过本周的作业,我相对详细地去了解了一下re库的使用,发现其功能还是很强大的。另外对于正则表达式的使用,也有了更深刻的理解,以往听说正则表达式在很多地方都可以用,这次总算是相对系统地学习了一下。总体来说,目前对re库及正则表达式的理解使用,我还有很大进步空间,以后还需结合实际开发加深理解。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/862093.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号