python的相关问题

编写一个程序,从键盘输入一个英文句子,按字母序输出每个单词及其重复次数。英文句子中只用空格分割单词,不包含其它标点符号



# 从键盘输入一个英文句子
sentence = input("请输入一个英文句子:")

# 将句子按空格分割成单词
words = sentence.split()

# 统计每个单词出现的次数
word_count = {}
for word in words:
    if word in word_count:
        word_count[word] += 1
    else:
        word_count[word] = 1

# 按字母序输出每个单词及其重复次数
for word in sorted(word_count):
    print(word, word_count[word])

不知道你这个问题是否已经解决, 如果还没有解决的话:
  • 这有个类似的问题, 你可以参考下: https://ask.csdn.net/questions/7743828
  • 这篇博客也不错, 你可以看下使用Python相关技术实现对一本中文小说(自选)进行词频分析,字数不低于10万字,显示小说中出现率前50的中文词组,并用图表展示。
  • 你还可以看下python参考手册中的 python- 定义扩展类型:已分类主题- 属性管理
  • 除此之外, 这篇博客: python爬虫如何实现对大文件的爬取,以及在爬取过程中对暂停爬取,继续爬取,取消爬取等系列功能的实现!中的 爬取过程中进行暂停,继续,取消一系列动作 部分也许能够解决你的问题, 你可以仔细阅读以下内容或者直接跳转源博客中阅读:

    如果我们对一个文件进行爬取,想给爬取的过程增加一些动作,比如暂停,继续,取消,怎样才能让这些功能实现呢?

    下面是经过博主不断踩坑试错得到的可以实现这些功能的代码(可能不是最优秀的代码,望大家多多指教!!!)

    from dlpackage import model_download as dm
    from dlpackage import requests_header
    from dlpackage import setting
    from dlpackage import share
    import threading
    import time
    import os
    
    
    
    
    
    # 定义的全局变量
    pause_flag = False            #暂停标志
    cancel_flag = False           #取消下载标志
    length = None                 #用来保存已经下载文件的长度
    mode = None                   #用来保存文件的存储模式
    file_status = False           #用来保存文件的打开或关闭状态
    file_path_name = None         #用来保存文件的存储路径
    
    
    # 暂停/继续下载
    def pause_or_continue():
    
        global pause_flag
        if share.m3.m.get() == '暂停下载':
            share.m3.m.set('继续下载')
            pause_flag = True
        else:
            share.m3.m.set('暂停下载')
            pause_flag = False
            m3u8_href = share.m3.button_url.get().rstrip()
            video_name = share.m3.button_video_name.get().rstrip()
            t = threading.Thread(
                target=download_mp4, args=(
                    m3u8_href, video_name,))
            # 设置守护线程,进程退出不用等待子线程完成
            t.setDaemon(True)
            t.start()
    
    #取消下载的线程
    def cancel_thread():
        t = threading.Thread(
            target=cancel)
        # 设置守护线程,进程退出不用等待子线程完成
        t.setDaemon(True)
        t.start()
    
    
    # 取消下载
    def cancel():
        global pause_flag
        global cancel_flag
        global file_status
        global file_path_name
        if not pause_flag:
            cancel_flag = True
            # 判断download_mp4()中打开的文件是否关闭,file_path_name是否被赋值,如果没有就再给它一点时间
            while file_status == False or file_path_name == None:
                time.sleep(1)
            #移除已经下载完成的部分文件
            os.remove(file_path_name)
            #进度条归零
            share.set_progress(0)
            share.m3.show_info("取消成功!")
            cancel_flag = False
            file_status = False
            file_path_name = None
    
        else:
            os.remove(file_path_name)
            share.set_progress(0)
            share.m3.m.set('暂停下载')
            pause_flag = False
            share.m3.show_info("取消成功!")
    
    
    
    #对文件进行下载
    def download_file(m3u8_href, video_name):
        global length
        global cancel_flag
        global mode
        global file_path_name
        global file_status
        share.m3.clear_alert()
        video_name = share.check_video_name(video_name)
        video_name = setting.path + "/" + video_name  # 将保存路径与文件名称进行拼接
        video_name = video_name + share.m3.button_url.get()[share.m3.button_url.get(
        ).rfind('.'):share.m3.button_url.get().rfind('.') + 4]  # 将文件的后缀与整体路径进行拼接
        chunk_size = 512
        # 当这个文件已经下载过
        if os.path.exists(
                video_name):
            response = dm.easy_download(
                url=m3u8_href,
                stream=True,
                #请求头中加入'Range': 'bytes'参数实现断点续传
                header=requests_header.get_user_agent1(
                    os.path.getsize(video_name)))
            mode = 'ab'
            size = os.path.getsize(video_name)
            content_size = length
        else:
            response = dm.easy_download(
                url=m3u8_href,
                stream=True,
                header=requests_header.get_user_agent())
            mode = 'wb'
            size = 0
            content_size = int(response.headers['content-length'])
        share.m3.alert('[文件大小]:%0.2f MB' % (content_size / 1024 / 1024))
        with open(video_name, mode) as f:
            for data in response.iter_content(chunk_size=chunk_size):
                try:
                    #如果既没有暂停也没有取消下载就正常下载
                    if pause_flag == False and cancel_flag == False:
                        f.write(data)
                        size = size + len(data)
                        p = (size / content_size) * 100
                        share.set_progress(p)
                        share.m3.str.set('%.2f%%' % p)
                    #如果取消下载
                    elif cancel_flag:
                        f.close()
                        file_status = f.closed
                        file_path_name = video_name
                        break
                    #如果暂停下载
                    elif pause_flag:
                        f.close()
                        length = content_size
                        file_path_name = video_name
                        break
                except BaseException:
                    share.m3.show_info("下载出现异常!")
        if size == content_size:
            share.m3.alert('下载完成!')
            share.m3.show_info("下载完成!")
            share.set_progress(0)
            share.m3.str.set('')
    

    以上代码是从博主的毕业设计中截取的,有部分导入的包是博主自己定义的,不过不影响对暂停,继续,取消这些功能代码的观看,理解噢!

  • 您还可以看一下 jeevan老师的Python量化交易,大操手量化投资系列课程之内功修炼篇课程中的 讲师简介,量化交易介绍及自动化交易演示小节, 巩固相关知识点

如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^