文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

python字符串翻转教学设计

2023-09-11 06:07

关注

第1关:统计“唐诗三百首”中诗人出现的次数

def count_poet(file, poet):    """统计诗人出现的次数,包括以作者身份和出现的诗句中的情况,返回一个整数"""    with open(file, 'r', encoding='utf-8') as fr:        txt = fr.read()  # 读取全部内容为一个字符串,此句不用理解,只需知道txt是包含所有诗句的字符串即可    # 对齐此位置写程序语句,统计并返回诗人在字符串中出现的次数        return txt.count(poet_name)    if __name__ == '__main__':    filename = '/data/bigfiles/唐诗三百首.txt'  # 文件名    poet_name = input()                        # 输入诗人的名字    print(count_poet(filename, poet_name))     # 调用函数统计并输出诗人在字符串中出现的次数

第2关 统计文件中汉字字数

def count_words(file):    """替换掉全部全角' '与半角空格' ',标点符号,换行符和数字字符,使用下面的字符串:    ',【】[[],、 —《》() >~-·。:!?\n\r\'0123456789'    统计字数"""    with open(file, 'r', encoding='utf-8') as fr:        txt = fr.read()  # 读取全部内容为一个字符串,此句不用理解,只需知道txt是包含所有诗句的字符串即可    # 对齐此位置补充代码,替换掉指定的字符并返回包含汉字的数量    for c in ',【】[[],、 —《》() >~-·。:!?\n\r\'0123456789':         txt = txt.replace(c, '')    return len(txt)if __name__ == '__main__':    filename = input()  # 输入文件名字    print(count_words('/data/bigfiles/' + filename))

第3关 格式化输出全部诗名

def get_poem(file):    """读唐诗三百首,从每首诗的行中提取出序号、作者和诗名,输出序号作者与诗名,格式如下:    序号106的诗是【杜甫】作品“春望”    """    with open(file, 'r', encoding='utf-8') as fr:  # 打开文件创建文件对象        for line in fr:    # 遍历文件,每次循环line依次获取文件的一行,字符串类型,以换行符'\n'结尾            # 补充你的代码,按要求格式输出全部诗名的信息            if ":" in line:                order_number = line[:3]                  poet, poem = line[3:].strip().split(':', maxsplit=1)                print(f'序号{order_number}的诗是【{poet:3}】作品“{poem}”')     if __name__ == '__main__':    get_poem('/data/bigfiles/唐诗三百首.txt')   # 调用函数,函数内进行输出

第4关 随机输出一首诗

# 补充一条语句,导入random库import randomdef random_poem(file, num):    """接受文件名字符串和一个整数为参数,随机产生一个10-320之间的整数,返回对应序号的诗句,字符串类型 """    # 补充1条语句,用户输入的整数做随机数种子    random.seed(n)    # 补充1条语句,获取10-320之间一个整数    number = random.randint(10, 320)    poem = ''  # 空字符串,用于容纳目标诗    poet_flag = False                      # 做一个标记,假定当前行不是目标诗    with open(file, 'r', encoding='utf-8') as fr:  # 创建文件对象        for line in fr:                    # 遍历文件对象            # 补充3条语句,当当前行包含序号(序号用3位数,不足3位前面补0)时,将当前行拼接到poem上,改变poet_flag的值为True            number = f'{number:03}'            if  line[:3] == str(number):                poem = poem + line                  poet_flag = True             elif line[0] in '0123456789':  # 若当前行不包含序号但有数字                poet_flag = False          # 改变标记,后续几行不是目标诗句            elif poet_flag:                # 如果标记值为真(True)                poem = poem + line         # 将当前行拼接到字符串上        return poem                        # 遍历结束后返回包含目标诗的字符串if __name__ == '__main__':    n = int(input())                       # 输入一个整数做随机数种子    print(random_poem('/data/bigfiles/唐诗三百首.txt', n))

无需豪言壮语,默默行动会诠释一切!🐖

来源地址:https://blog.csdn.net/m0_70456205/article/details/129600593

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯