【python】入门学习(十)

#入门学习系列的内容均是在学习《Python编程入门(第3版)》时的学习笔记

统计一个文本文档的信息,并输出出现频率最高的10个单词

#text.py
#保留的字符
keep = {‘a‘,‘b‘,‘c‘,‘d‘,‘e‘,‘f‘,‘g‘,‘h‘,‘i‘,‘j‘,‘k‘,‘l‘,‘m‘,‘n‘,‘o‘,‘p‘
        ‘q‘,‘r‘,‘s‘,‘t‘,‘u‘,‘v‘,‘w‘,‘x‘,‘y‘,‘z‘,‘ ‘,‘-‘,"‘"}
#将文本规范化
def normalize(s):
    """Convert s to a normalized string."""
    result = ‘‘
    for c in s.lower():
        if c in keep:
            result += c
    return result

#获取文本基本信息
def file_stats(fname):
    """Print statistics for the given file."""
    s = open(fname,‘r‘).read()
    num_chars = len(s)
    num_lines = s.count(‘\n‘)
    num_words = len(normalize(s).split())
    print("The file %s has:" % fname)
    print("  %s characters" % num_chars)
    print("  %s lines" % num_lines)
    print("  %s words" % num_words)

#将字符串转化为字典
def make_freq_dict(s):
    """Return a dictionary whose keys are the words of s,and whose values are the counts of those words."""
    s = normalize(s)
    words = s.split()
    d = {}
    for w in words:
        if w in d:
            d[w] += 1
        else:
            d[w] = 1
    return d

#获取文本基本信息
def file_stats2(fname):
    """Print statistics for the given file."""
    s = open(fname,‘r‘).read()
    num_chars = len(s)
    num_lines = s.count(‘\n‘)
    d = make_freq_dict(s)
    num_words = sum(d[w] for w in d)
    lst = [(d[w],w) for w in d]
    lst.sort()
    lst.reverse()
    print("The file %s has:" % fname)
    print("  %s characters" % num_chars)
    print("  %s lines" % num_lines)
    print("  %s words" % num_words)
    print("\nThe top 10 most frequent words are:")
    i = 1
    for count,word in lst[:99]:
        print(‘%2s. %4s %s‘ % (i, count, word))
        i += 1
>>> file_stats2(‘a.txt‘)
The file a.txt has:
  12927 characters
  297 lines
  1645 words

The top 10 most frequent words are:
 1.   62 to
 2.   62 the
 3.   47 is
 4.   42 a
 5.   41 of
 6.   40 it
 7.   36 that
 8.   35 and
 9.   32 as
10.   24 so

进一步完善的代码:

#text.py
#保留的字符
keep = {‘a‘,‘b‘,‘c‘,‘d‘,‘e‘,‘f‘,‘g‘,‘h‘,‘i‘,‘j‘,‘k‘,‘l‘,‘m‘,‘n‘,‘o‘,‘p‘
        ‘q‘,‘r‘,‘s‘,‘t‘,‘u‘,‘v‘,‘w‘,‘x‘,‘y‘,‘z‘,‘ ‘,‘-‘,"‘"}
#将文本规范化
def normalize(s):
    """Convert s to a normalized string."""
    result = ‘‘
    for c in s.lower():
        if c in keep:
            result += c
    return result

#获取文本基本信息
def file_stats(fname):
    """Print statistics for the given file."""
    s = open(fname,‘r‘).read()
    num_chars = len(s)
    num_lines = s.count(‘\n‘)
    num_words = len(normalize(s).split())
    print("The file %s has:" % fname)
    print("  %s characters" % num_chars)
    print("  %s lines" % num_lines)
    print("  %s words" % num_words)

#将字符串转化为字典
def make_freq_dict(s):
    """Return a dictionary whose keys are the words of s,and whose values are the counts of those words."""
    s = normalize(s)
    words = s.split()
    d = {}
    for w in words:
        if w in d:
            d[w] += 1
        else:
            d[w] = 1
    return d

#获取文本基本信息
def file_stats2(fname):
    """Print statistics for the given file."""
    s = open(fname,‘r‘).read()
    num_chars = len(s)
    num_lines = s.count(‘\n‘)
    d = make_freq_dict(s)
    num_different_words = sum(d[w]/d[w] for w in d)
    num_words = sum(d[w] for w in d)
    words_average_length = sum(len(w) for w in d)/num_different_words
    num_once = sum(d[w] for w in d if d[w] == 1)
    lst = [(d[w],w) for w in d]
    lst.sort()
    lst.reverse()
    print("The file %s has:" % fname)
    print("  %s characters" % num_chars)
    print("  %s lines" % num_lines)
    print("  %s words" % num_words)
    print("  %s words appreance one time" % num_once)
    print("  %s different words" % int(num_different_words))
    print("  %s average length" % words_average_length)
    print("\nThe top 10 most frequent words are:")
    i = 1
    for count,word in lst[:10]:
        print(‘%2s. %4s %s‘ % (i, count, word))
        i += 1

def main():
    file_stats2(‘a.txt‘)

if __name__==‘__main__‘:
    main()
>>> ================================ RESTART ================================
>>>
The file a.txt has:
  12927 characters
  297 lines
  1645 words
  515 words appreance one time
  699 different words
  6.539341917024321 average length

The top 10 most frequent words are:
 1.   62 to
 2.   62 the
 3.   47 is
 4.   42 a
 5.   41 of
 6.   40 it
 7.   36 that
 8.   35 and
 9.   32 as
10.   24 so
时间: 2024-11-08 11:01:50

【python】入门学习(十)的相关文章

python 入门学习 载抄

python入门 解释型语言 和编译型语言 计算机本身不能识别高级语言,当我们运行一个程序的时候,需要一个“翻译” 来把 高级语言转换成计算机能读懂的语言. “翻译”过程分两种: 编译 编译型语言在执行程序前,首先会通过编译器执行一个编译的过程,把程序编译成机器语言. 之后,程序再次运行的时候,就不要“翻译”了,而是可以直接执行.比如C语言. 编译型语言的优点在于在运行程序的时候不用解释,可直接利用已经翻译过的文件. 解释 解释型语言就没有编译的过程,而是在程序运行的时候,通过解释器逐行解释代码

python入门第二十六天--网络通信

网络编程 自从互联网诞生以来,现在基本上所有的程序都是网络程序,很少有单机版的程序了. 计算机网络就是把各个计算机连接到一起,让网络中的计算机可以互相通信.网络编程就是如何在程序中实现两台计算机的通信. 举个例子,当你使用浏览器访问新浪网时,你的计算机就和新浪的某台服务器通过互联网连接起来了,然后,新浪的服务器把网页内容作为数据通过互联网传输到你的电脑上. 由于你的电脑上可能不止浏览器,还有QQ.Skype.Dropbox.邮件客户端等,不同的程序连接的别的计算机也会不同,所以,更确切地说,网络

Python入门学习:1.变量和简单的数据类型

python入门学习:1.变量和简单的数据类型 关键点:变量.字符串.数字 1.1 变量的命名和使用1.2 字符串1.3 数字1.4 注释 1.1 变量的命名和使用 ??变量,顾名思义是一个可变的量,每个变量都存储一个值--与变量关联的信息. 1message = "hello world!"2# message 是一个变量3print(message) ??在python中使用变量时,需要遵循一些规则和指南. 变量名只能包含字母.数字和下划线.变量名可以字母或者下划线打头,但不能以数

python入门学习:7.函数

python入门学习:7.函数 关键点:函数 7.1 定义函数7.2 传递实参7.3 返回值7.4 传递列表7.5 传递任意数量的实参7.6 将函数存储在模块中 7.1 定义函数 ??使用关键字def告诉python要定义一个函数,紧接着跟着函数名,冒号.后面的缩进构成函数体.例如: 1def func_name():2    函数体34def greet_user():5    """显示简单问候语"""6    print("hel

python入门学习:8.类

python入门学习:8.类 关键点:类 8.1 创建和使用类8.2 使用类和实例8.3 继承8.4 导入类 8.1 创建和使用类 ??面向对象编程是最有效的软件编写方法之一.在面向对象编程中,你编写表示现实世界中的事物和情景的类,并基于这些类来创建对象.根据类来创建对象被称为实例化,这让你能够使用类.8.1.1 创建dog类??下面创建一个dog类: 1calss Dog(): 2 3    def __init__(self,name,age): 4        self.name = n

Python入门学习指南--内附学习框架

Python入门学习指南 最近开始整理python的资料,博主建立了一个qq群,希望给大家提供一个交流的同平台: 78486745 ,欢迎大家加入共同交流学习. 对于初学者,入门至关重要,这关系到初学者是从入门到精通还是从入门到放弃.以下是结合Python的学习经验,整理出的一条学习路径,主要有四个阶段 NO.1 新手入门阶段,学习基础知识 总体来讲,找一本靠谱的书,由浅入深,边看边练. 网上的学习教程有很多,多到不知道如何选择.所有教程在基础知识介绍方面都差不多,区别在于讲的是否足够细(例如运

Python入门学习:一步步教你怎么用Python写贪吃蛇游戏

前几天,有人提到贪吃蛇,一下子就勾起了我的兴趣,毕竟在那个Nokia称霸的年代,这款游戏可是经典中的经典啊!而用Python(蛇)玩Snake(贪吃蛇),再合适不过了. 这里通过一个Python入门学习的例子跟大家详细讲解一下! 先通过下面这个效果图来感受下吧! 1 环境 操作系统:Windows Python版本:3.7.3 2 需求分析 我们先来回顾下贪吃蛇中的游戏元素及游戏规则. 首先呢,需要有贪吃蛇.有食物:需要能控制贪吃蛇来上下移动获取食物:贪吃蛇在吃取食物后,自身长度增加,同时食物消

python入门学习课程推荐

最近在学习自动化,学习过程中,越来越发现coding能力的重要性,不会coding,基本不能开展自动化测试(自动化工具只是辅助). 故:痛定思痛,先花2个星期将python基础知识学习后,再进入自动化的学习. 现推荐几个学习python基础知识的途径: 1.<笨办法学python>(第三版),从头到尾一个字一个字的照着程序敲: 2.慕课网<python入门>课程: 3.网易云课堂<疯狂的python>公开课. 4.<廖雪峰Python3>pdf文件. 这也是

python入门学习

最近闲来无事,搞搞py交易吧! 作为一个快速崛起的语言,python编程确实是好用的不得了,当然这不是说他就可以代替其他语言,这是目前所有语言都不可能做到的: python有他的优点: 简单,简洁,易懂,入门快: 学过python的应该都有体会,python比其他很多语言都要轻便的多,易于编写: 比如python的hello world: #!/usr/bin/python print('hello world') 就这一句就ok了: 简单的了解下python,下面我们来了解下python2和3

Python入门学习 DAY 01 计算机基础

Python入门 DAY 01 作为一名刚刚学习python的小白,我首先去学习的并不是python语言的基础知识,而是先对计算机的基础进行了一个初步的了解,以下内容便是在学习python之前我去学习到的大致内容. 1.什么是编程语言    语言是一个事物与另外一个事物沟通的介质    编程语言是程序员与计算机沟通的介质    2.什么是编程    编程就是程序按照某种编程语言的语法规范将自己想要让计算机做的事情表达出来    表达的结果就是程序,程序就是一系列的文件    3.为什么要编程