文章目录

  • Python语言程序设计-嵩天老师(MOOC)听课笔记 第6周
    • 知识点一
      • 集合类型的定义
      • 重点
      • 集合间操作
      • 集合操作符
      • 集合类型的定义
      • 集合处理方法
      • 集合类型应用场景
      • 序列类型定义
      • 序列类型通用操作符
      • 序列类型操作实例
      • 序列类型通用函数和方法
      • 序列类型操作实例
      • 元组类型定义
      • 元组类型操作
      • 列表类型定义
      • 列表类型操作函数和方法
      • 列表类型操作
      • 序列类型应用场景
    • 实例 "基本统计值计算"问题分析
      • 问题分析
      • 基本统计值计算
      • 举一反三
    • 知识点二
      • 字典类型定义
      • 字典类型的用法
      • 字典类型定义和使用
      • 字典类型操作函数和方法
      • 列表类型操作函数和方法
      • 字典类型操作
      • 字典功能
      • 字典类型应用场景
    • 知识点三
      • jieba库概述
      • jieba库的安装
      • jieba分词的原理
      • jieba分词的三种模式
      • jieba库常用函数
    • 实例 文本词频统计
      • 问题分析
      • 哈姆雷特(HAMLET)
      • 《三国演义》人物出场统计
      • 举一反三
    • 课后练习题
      • 实例一 基本统计值计算
      • 实例二 文本词频统计--Hamlet
      • 实例三 人名独特性统计
      • 实例四 字典翻转输出
      • 实例五 《沉默的羔羊》之最多单词
    • 第六周测验题目
      • 单项选择题
        • 第一题
        • 第二题
        • 第三题
        • 第四题
        • 第六题
        • 第七题
        • 第九题
      • 程序设计题
        • 第一题 数字不同数之和
        • 第二题 人名最多数统计

Python语言程序设计-嵩天老师(MOOC)听课笔记 第6周

知识点一

集合类型的定义

  • 集合是多个元素的无序组合
  • 集合类型与数学中的集合概念一致
  • 集合元素之间无序,每个元素唯一,不存在相同元素
  • 集合元素不可更改,不能是可变数据类型
  • 集合是多个元素的无序组合
  • 集合用大括号{}表示,元素间用逗号分隔
  • 建立集合类型用{}或set()
  • 建立空集合类型,必须使用set()
>>> A={"python",123,("python",123)}
>>> A
{123, 'python', ('python', 123)}
>>> B=set("pypy123")
>>> B
{'1', '2', '3', 'y', 'p'}
>>> C={"python",123,"python",123}
>>> C
{123, 'python'}

重点

  • 集合用大括号{}表示,元素间用逗号分隔
  • 集合中每个元素唯一,不存在相同元素
  • 集合元素之间无序

集合间操作

集合操作符

  • 6个操作符
操作符及应用 描述
S<=T或S<T 返回True/False,True/False,True/False,判断S和T的子集关系
S>=T或S>T 返回True/False,True/False,True/False,判断S和T的包含关系
  • 4个增强操作符

集合类型的定义

>>> A={"p","y",123}
>>> B=set("pypy123")
>>> A-B
{123}
>>> B-A
{'1', '2', '3'}
>>> A&B
{'y', 'p'}
>>> A|B
{'2', '1', 'y', 123, '3', 'p'}
>>> A^B
{'2', '1', 123, '3'}

集合处理方法

操作函数或方法 描述
S.add(x) 如果x不在集合S中,将x增加到S
S.discard(x) 移除S中元素x,如果x不在集合S中,不报错
S.remove(x) 移除S中元素x,如果x不在集合S中,产生KeyError异常
S.clear() 移除S中所有元素
S.pop() 随机返回S的一个元素,更新S,若S为空产生KeyError异常
S.copy 返回集合S的一个副本
len(S) 返回集合S的元素个数
x in S 判断S中元素x,x在集合S中,返回True,否则返回False
x not in S 判断S中元素x,x不在集合S中,返回True,否则返回False
set(x) 将其他类型变量转变为集合类型
>>> A={"p","y",123}
>>> for item in A:print(item,end="")
123yp
>>> A
{123, 'y', 'p'}
>>> try:while True:print(A.pop(),end="")
except:pass
123yp
>>> A
set()

集合类型应用场景

  • 包含关系比较
>>> "p" in {"p","y",123}
True
>>>{"p","y"} >={"p","y",123}
False
  • 数据去重:集合类型所有元素无重复
>>>ls=["p","p","y","y",123]
>>>s=set(ls)    #利用了集合无重复元素的特点
{'p','y',123}
>>>lt=list(s)    #将集合转换为列表
['p','y',123]

序列类型定义

  • 序列是具有先后关系的一组元素
  • 序列是一维元素向量,元素类型可以不同
  • 类似数学元素序列:s0,s1,...,sn−1s_0,s_1,...,s_{n-1}s0​,s1​,...,sn−1​
  • 元素间由序号引导,通过下标访问序列的特定元素
  • 序列是一个基类类型
  • 序号的定义

序列类型通用操作符

  • 6个操作符

序列类型操作实例

>>>ls=["python",123,".io"]
>>>ls[::-1]
['.io',123,'python']
>>>s="python123.io"
>>>s[::-1]
'oi.321nohtyp'

序列类型通用函数和方法

  • 5个函数和方法
函数和方法 描述
len(s) 返回序列s的长度
min(x) 返回序列s的最小元素,s中元素需要可比较
max(x) 返回序列s的最大元素,s中元素需要可比较
s.index(x)或s.index(x,i,j) 返回序列s从i开始到j位置中第一次出现元素s的位置
s.count(x) 返回序列s中出现x的总次数

序列类型操作实例

>>>ls=["python",123,".io"]
>>>len(ls)
3
>>>s="python123.io"
>>>max(s)
'y'

元组类型定义

  • 元组是序列类型的一种扩展
  • 元组是一种序列类型,一旦创建就不能被修改
  • 使用小括号()或tuple()创建,元素间用逗号分隔
  • 可以使用或不使用小括号
def func():return 1,2
>>>creature="cat","dog","tiger","human"
>>>creature
('cat','dog','tiger','human')
>>>color=(0x001100,"blue",creature)
>>>color
(4352,'blue',('cat','dog','tiger','human'))

元组类型操作

  • 元组继承序列类型的全部通用操作
  • 元组继承了序列类型的全部通用操作
  • 元组因为创建后不能修改,因此没有特殊操作
  • 使用或不使用小括号
>>>creature="cat","dog","tiger","human"
>>>creature[::-1]
('human','tiger','dog','cat')
>>>color=(0x001100,"blue",creature)
>>>color[-1][2]
'tiger'

列表类型定义

  • 列表是序列类型的一种扩展,十分常用
  • 列表是一种序列类型,创建后可以随意被修改
  • 使用方括号[]或list()创建,元素间用逗号分隔
  • 列表中各元素类型可以不同,无长度限制
>>>ls=["cat","dog","tiger",1024]
>>>ls
['cat','dog','tiger',1024]    #方括号[]真正创建一个列表,赋值仅传递引用
>>>lt=ls.
>>>lt
['cat','dog','tiger',1024]

列表类型操作函数和方法


列表类型操作

>>>ls=["cat","dog","tiger",1024]
>>>ls[1:2]=[1,2,3,4]
['cat',1,2,3,4,'tiger',1024]
>>>del ls[::3]
[1,2,4,'tiger']
>>>ls*2
[1,2,4,'tiger',1,2,4,'tiger']
>>>ls=["cat","dog","tiger",1024]
>>>ls.append(1234)
['cat','dog','tiger',1024,1234]
>>>ls.insert(3,"human")
['cat','dog','tiger','human',1024,1234]
>>>ls.reverse()
[1234,1024,'human','tiger','dog','cat']

序列类型应用场景

  • 序列类型应用场景
  • 元组用于元素不改变的应用场景,更多用于固定搭配场景
  • 列表更加灵活,它是最常用的序列类型
  • 最主要作用L:表示一组有序数列,进而操作它们
  • 数据保护
  • 如果不希望数据被程序所改变,转换成元组类型
>>>ls=["cat","dog","tiger",1024]
>>>lt=tuple(ls)
>>>lt
('cat','dog','tiger',1024)

实例 "基本统计值计算"问题分析

问题分析

  • 基本统计值
  • 需求:给出一组数,对它们有个别概要理解
  • 该怎么做呢?
    总个数,求和,平均值,方差,中位数…
  • 总个数:len()
  • 求和:for … in
  • 平均值:求和/总个数
  • 方差:各数据与平均数差的平方的和的平均数
  • 中位数L:排序,然后…奇数找中间1个,偶数找中间2个取平均

基本统计值计算

def getNum():    #获取用户不定长度的输入nums=[]iNumStr=input("请输入数字(回车退出):")while iNumStr !="":nums.append(eval(iNumStr))iNumStr=input("请输入数字(回车退出):")return nums
def mean(numbers):s=0.0for num in numbers:s=s+numreturn s/len(numbers)
def dev(numbers,mean):    #计算方差sdev=0.0for num in numbers:sdev=sdev+(num-mean)**2return pow(sdev/(len(numbers)-1),0.5)
def median(numbers):    #计算中位数sorted(numbers)size=len(numbers)if size%2 ==0:med=(number[size//2-1]+numbers[size//2])/2else:med=numbers[size//2]return med
n=getNum()
m=mean(n)
print("平均值:{},方差:{:.2},中位数:{}.".format(m,dev(n,m),median(n)))

举一反三

  • 技术能力扩展
  • 获取多个数据:从控制台获取多个不确定数据的方法
  • 分隔多个函数:模块化设计方法
  • 充分利用函数:充分利用Python提供的内容函数

知识点二

字典类型定义

  • 理解"映射"
  • 映射是一种键(索引)和值(数据)的对应


  • 字典类型是"映射"的体现
  • 键值对:键是数据索引的扩展
  • 字典是键值对的集合,键值对之间无序
  • 采用大括号{}和dict()创建,键值对用冒号:表示
    {< 键1>:< 值1>,< 键2>:< 值2>,...,< 键3>:< 值3>}

字典类型的用法

  • 在字典变量中,通过键获得值
<字典变量>={<键1>:<值1>,...,<键n>:<值n>}
<值>=<字典变量>[<键>]
<字典变量>[<键>]=<值>
[]用来向字典变量中索引或增加元素

字典类型定义和使用

>>>d={"中国":"北京","美国":"华盛顿","法国":"巴黎"}
>>>d
{'中国':'北京','美国':'华盛顿','法国':'巴黎'}
>>>d["中国"]
'北京'
>>>de={};type(de)    #type(x),返回变量x的类型
<class 'dict'>

字典类型操作函数和方法

>>>d={"中国":"北京","美国":"华盛顿","法国":"巴黎"}
>>>"中国" in d
True
>>>d.keys()
dict_keys(['中国','美国','法国'])
>>>d.values()
dict_values(['北京','华盛顿','巴黎'])

列表类型操作函数和方法

字典类型操作

>>>d={"中国":"北京","美国":"华盛顿","法国":"巴黎"}
>>>d.get("中国","伊斯兰堡")
'北京'
>>>d.get("巴基斯坦","伊斯兰堡")
'伊斯兰堡'
>>>d.popitem()
('美国','华盛顿')

字典功能

定义空字典d    >>>d={}
向d新增2个键值对元素     >>>d["a"]=1;d["b"]=2
修改第2个元素    >>>d["b"]=3
判断字符"c"是否是d的键    >>>"c" in d
计算d的长度    >>>len(d)
清空d    >>>d.clear()

字典类型应用场景

  • 映射的表达
  • 映射无处不在,键值对无处不在
  • 例如:统计数据出现的次数,数据是键,次数是值
  • 最主要作用:表达键值对数据,进而操作它们

知识点三

jieba库概述

  • 中文文本需要通过分词获得单个的词语
  • jieba是优秀的中文分词第三方库,需要额外安装
  • jieba库提供三种分词模式,最简单只需要掌握一个函数

jieba库的安装

  • (cmd命令行) pip install jieba

jieba分词的原理

  • jieba分词依靠中文词库
  • 利用一个中文词库,确定汉字之间的关联概率
  • 汉字间概率大的组成词组,形成分词结果
  • 除了分词,用户还可以添加自定义的词组

jieba分词的三种模式

  • 精确模式、全模式、搜索引擎模式
  • 精确模式:把文本精确的切分开,不存在冗余单词
  • 全模式:把文本中所有可能的词语都扫描出来,有冗余
  • 搜索引擎模式:在精确模式基础上,对长词再次切分

jieba库常用函数


实例 文本词频统计

问题分析

  • 文本词频统计
  • 需求:一篇文章,出现了哪些词?哪些词出现得最多?
  • 该怎么做?
  • 英文文本:Hamet 分析词频
    https://python123.io/resources/pye/hamlet.txt
  • 中文文本:《三国演义》 分析人物
    https://python123.io/resources/pye/threekingdoms.txt

哈姆雷特(HAMLET)

def getText():txt=open("hamlet.txt","r").read()txt=txt.lower()for ch in '|"#$%&()*+,-./:;<=>?@[\\]^_‘{|}~':txt=txt.replace(ch," ")return txt
hamletTxt=getText()
words=hamletTxt.split()
counts={}
for word in words:counts[word]=counts.get(word,0)+1
items=list(counts.items())
items.sort(key=lambda x:x[1],reverse=True)for i in range(10):word,count=items[i]print("{0:<10}{1:>5}".format(word,count))
输出结果:
>>>
the       1138
and        965
to         754
of         669
you        550
i          542
a          542
my         514
hamlet     462
in         436

《三国演义》人物出场统计

import jieba
txt=open("threekingdoms.txt","r",encoding="utf-8").read()
excludes={"将军","却说","荆州","二人",“"不可","不能","如此"}
words=jieba.lcut(txt)
counts={}
for word in words:if len(word)==1:continueelif word =="诸葛亮" or word =="孔明曰":rword="孔明"elif word=="关公" or word=="云长":rword="关羽"elif word=="玄德" or word=="玄德曰":rword="刘备"elif word="孟德" or word=="丞相":rword="曹操"else:rword=wordcounts[rword]=counts.get(rword,0)+1
for word in words:del counts[words]
items=list(counts.items())
items.sort(key=lambda x:x[1],reverse=True)
for i in range(10):word,count=items[i]print("{0:<10}{1:>5}".format(word,count))
#输出结果:
>>>
曹操    1451
孔明    1383
刘备    1252
关羽    784
张飞    358
商议    344
如何    338
主公    331
军士    317
吕布    300

举一反三

  • 应用问题的扩展
  • 《红楼梦》、《西游记》、《水浒传》…
  • 政府工作报告、科研论文、新闻报道…
  • 进一步呢?未来还有词云…

课后练习题

实例一 基本统计值计算

题目描述:获取以逗号分隔的多个数据输入(输入为一行),计算基本统计值(平均值、标准差、中位数)‪‬‪‬‪‬‪‬‪‬‮‬‫‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬
除中位数外,其他输出保留小数点后两位。‪‬‪‬‪‬‪‬‪‬‮‬‫‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬
请补充编程模板中代码完成
输入示例:1,3,6,9,2,5,1
输出示例:平均值:3.86,标准差:2.97,中位数:3

题目要求:
#请在...补充一行或多行代码
#CalStatisticsV1.py
def getNum():       #获取用户不定长度的输入...def mean(numbers):  #计算平均值...def dev(numbers, mean): #计算标准差sdev = 0.0for num in numbers:sdev = sdev + (num - mean)**2return pow(sdev / (len(numbers)-1), 0.5)def median(numbers):    #计算中位数...n =  getNum() #主体函数
m =  mean(n)
print("平均值:{:.2f},标准差:{:.2f},中位数:{}".format(...))
代码如下:
#CalStatisticsV1.py
def getNum():       #获取用户不定长度的输入s = input()ls = list(eval(s))return lsdef mean(numbers):  #计算平均值s = 0.0for num in numbers:s = s + numreturn s / len(numbers)def dev(numbers, mean): #计算标准差sdev = 0.0for num in numbers:sdev = sdev + (num - mean)**2return pow(sdev / (len(numbers)-1), 0.5)def median(numbers):    #计算中位数numbers.sort()size = len(numbers)if size % 2 == 0:med = (numbers[size//2-1] + numbers[size//2])/2else:med = numbers[size//2]return medn =  getNum() #主体函数
m =  mean(n)
print("平均值:{:.2f},标准差:{:.2f},中位数:{}".format(m, dev(n,m),median(n)))

实例二 文本词频统计–Hamlet

题目描述:文本词频统计::一篇文章,出现了哪些词?哪些词出现的最多? ‪‬‪‬‪‬‪‬‪‬‮‬‫‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬
英文文本:hamlet‪‬‪‬‪‬‪‬‪‬‮‬‫‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬.txt,参考附件
题目要求:请统计hamlet.txt文件中出现的英文单词情况,统计并输出出现最多的10个单词,注意:‪‬‪‬‪‬‪‬‪‬‮‬‫‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬
(1) 单词不区分大小写,即单词的大小写或组合形式一样;‪‬‪‬‪‬‪‬‪‬‮‬‫‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬
(2) 请在文本中剔除如下特殊符号:!"#$%&()*+,-./:;<=>?@[]^_‘{|}~‪‬‪‬‪‬‪‬‪‬‮‬‫‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬
(3) 输出10个单词,每个单词一行;‪‬‪‬‪‬‪‬‪‬‮‬‫‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬
(4) 输出单词为小写形式。
输出格式:‪‬‪‬‪‬‪‬‪‬‮‬‫‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬以下仅是输出样例(仅列出3个,需要列出10个),不是最终结果:‪‬‪‬‪‬‪‬‪‬‮‬‫‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬
输出示例:
‪‬‪‬‪‬‪‬‪‬‮‬‫‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬the
hamlet
be

#请在...处补充代码def getText():txt = open("hamlet.txt", "r").read()......
代码如下:
def getText():txt = open("hamlet.txt", "r").read()txt = txt.lower()for ch in '!"#$%&()*+,-./:;<=>?@[\\]^_‘{|}~':txt = txt.replace(ch, " ")   #将文本中特殊字符替换为空格return txthamletTxt = getText()
words  = hamletTxt.split()
counts = {}
for word in words:          counts[word] = counts.get(word,0) + 1
items = list(counts.items())
items.sort(key=lambda x:x[1], reverse=True)
for i in range(10):word, count = items[i]# print ("{0:<10}{1:>5}".format(word, count))  输出出现最多的10个单词和其出现次数print (word)  #输出出现最多的10个单词

实例三 人名独特性统计

题目描述:编程模板中给出了一个字符串,其中包含了含有重复的人名,请去重后给出独特性人名的统计。‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬
输出模板中字符串共有多少个独特人名。‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬
输出示例:10

s = '''双儿 洪七公 赵敏 赵敏 逍遥子 鳌拜 殷天正 金轮法王 乔峰 杨过 洪七公 郭靖 杨逍 鳌拜 殷天正 段誉 杨逍 慕容复 阿紫 慕容复 郭芙 乔峰 令狐冲 郭芙 金轮法王 小龙女 杨过 慕容复 梅超风 李莫愁 洪七公 张无忌 梅超风 杨逍 鳌拜 岳不群 黄药师 黄蓉 段誉 金轮法王 忽必烈 忽必烈 张三丰 乔峰 乔峰 阿紫 乔峰 金轮法王 袁冠南 张无忌 郭襄 黄蓉 李莫愁 赵敏 赵敏 郭芙 张三丰 乔峰 赵敏 梅超风 双儿 鳌拜 陈家洛 袁冠南 郭芙 郭芙 杨逍 赵敏 金轮法王 忽必烈 慕容复 张三丰 杨逍 令狐冲 黄药师 袁冠南 杨逍 完颜洪烈 殷天正 李莫愁 阿紫 逍遥子 乔峰 逍遥子 完颜洪烈 郭芙 杨逍 张无忌 杨过 慕容复 逍遥子 虚竹 双儿 乔峰 郭芙 黄蓉 李莫愁 陈家洛 杨过 忽必烈 鳌拜 王语嫣 洪七公 韦小宝 阿朱 梅超风 段誉 岳灵珊 完颜洪烈 乔峰 段誉 杨过 杨过 慕容复 黄蓉 杨过 阿紫 杨逍 张三丰 张三丰 赵敏 张三丰 杨逍 黄蓉 金轮法王 郭襄 张三丰 令狐冲 郭芙 韦小宝 黄药师 阿紫 韦小宝 金轮法王 杨逍 令狐冲 阿紫 洪七公 袁冠南 双儿 郭靖 鳌拜 谢逊 阿紫 郭襄 梅超风 张无忌 段誉 忽必烈 完颜洪烈 双儿 逍遥子 谢逊 完颜洪烈 殷天正 金轮法王 张三丰 双儿 郭襄 阿朱 郭襄 双儿 李莫愁 郭襄 忽必烈 金轮法王 张无忌 鳌拜 忽必烈 郭襄 令狐冲 谢逊 梅超风 殷天正 段誉 袁冠南 张三丰 王语嫣 阿紫 谢逊 杨过 郭靖 黄蓉 双儿 灭绝师太 段誉 张无忌 陈家洛 黄蓉 鳌拜 黄药师 逍遥子 忽必烈 赵敏 逍遥子 完颜洪烈 金轮法王 双儿 鳌拜 洪七公 郭芙 郭襄'''
代码如下:
s = '''双儿 洪七公 赵敏 赵敏 逍遥子 鳌拜 殷天正 金轮法王 乔峰 杨过 洪七公 郭靖 杨逍 鳌拜 殷天正 段誉 杨逍 慕容复 阿紫 慕容复 郭芙 乔峰 令狐冲 郭芙 金轮法王 小龙女 杨过 慕容复 梅超风 李莫愁 洪七公 张无忌 梅超风 杨逍 鳌拜 岳不群 黄药师 黄蓉 段誉 金轮法王 忽必烈 忽必烈 张三丰 乔峰 乔峰 阿紫 乔峰 金轮法王 袁冠南 张无忌 郭襄 黄蓉 李莫愁 赵敏 赵敏 郭芙 张三丰 乔峰 赵敏 梅超风 双儿 鳌拜 陈家洛 袁冠南 郭芙 郭芙 杨逍 赵敏 金轮法王 忽必烈 慕容复 张三丰 杨逍 令狐冲 黄药师 袁冠南 杨逍 完颜洪烈 殷天正 李莫愁 阿紫 逍遥子 乔峰 逍遥子 完颜洪烈 郭芙 杨逍 张无忌 杨过 慕容复 逍遥子 虚竹 双儿 乔峰 郭芙 黄蓉 李莫愁 陈家洛 杨过 忽必烈 鳌拜 王语嫣 洪七公 韦小宝 阿朱 梅超风 段誉 岳灵珊 完颜洪烈 乔峰 段誉 杨过 杨过 慕容复 黄蓉 杨过 阿紫 杨逍 张三丰 张三丰 赵敏 张三丰 杨逍 黄蓉 金轮法王 郭襄 张三丰 令狐冲 郭芙 韦小宝 黄药师 阿紫 韦小宝 金轮法王 杨逍 令狐冲 阿紫 洪七公 袁冠南 双儿 郭靖 鳌拜 谢逊 阿紫 郭襄 梅超风 张无忌 段誉 忽必烈 完颜洪烈 双儿 逍遥子 谢逊 完颜洪烈 殷天正 金轮法王 张三丰 双儿 郭襄 阿朱 郭襄 双儿 李莫愁 郭襄 忽必烈 金轮法王 张无忌 鳌拜 忽必烈 郭襄 令狐冲 谢逊 梅超风 殷天正 段誉 袁冠南 张三丰 王语嫣 阿紫 谢逊 杨过 郭靖 黄蓉 双儿 灭绝师太 段誉 张无忌 陈家洛 黄蓉 鳌拜 黄药师 逍遥子 忽必烈 赵敏 逍遥子 完颜洪烈 金轮法王 双儿 鳌拜 洪七公 郭芙 郭襄'''
ls = s.split()
ss = set(ls)
print(len(ss))

实例四 字典翻转输出

题目描述:读入一个字典类型的字符串,反转其中键值对输出。‪‬‪‬‪‬‪‬‪‬‮‬‫‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬
即,读入字典key:value模式,输出value:key模式。
输入格式:
给定字典d,按照print(d)方式输出
输入示例:{"a": 1, "b": 2}
输出示例:{1: 'a', 2: 'b'}

代码如下:
s = input()
try:d = eval(s)e = {}for k in d:e[d[k]] = kprint(e)
except:print("输入错误")

实例五 《沉默的羔羊》之最多单词

题目描述:附件是《沉默的羔羊》中文版内容,请读入内容,分词后输出长度大于等于2且出现频率最多的单词。‪‬‪‬‪‬‪‬‪‬‮‬‫‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬
如果存在多个单词出现频率一致,请输出按照Unicode排序后最大的单词。
输入格式:文件
输出格式:字符串
输出示例:羔羊

代码如下:
import jieba
f = open("沉默的羔羊.txt", encoding='utf-8')
ls = jieba.lcut(f.read())
d = {}
for w in ls:if len(w) >= 2:d[w] = d.get(w, 0) + 1
maxc = 0
maxw = ""
for k in d:if d[k] > maxc :maxc = d[k]maxw = kelif d[k] == maxc and k > maxw:maxw = k
print(maxw)
f.close()

第六周测验题目

单项选择题

第一题

第二题

第三题

第四题

第六题

第七题

第九题

程序设计题

第一题 数字不同数之和

题目描述:获得用户输入的一个整数N,输出N中所出现不同数字的和。‪‬‪‬‪‬‪‬‪‬‮‬‫‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬
例如:用户输入 123123123,其中所出现的不同数字为:1、2、3,这几个数字和为6。
输入示例:123123123
输出示例:6

代码如下:
n = input()
ss = set(n)
s = 0
for i in ss:s += eval(i)
print(s)

第二题 人名最多数统计

题目描述:编程模板中给出了一个字符串,其中包含了含有重复的人名,请直接输出出现最多的人名。
输出示例:黄蓉

代码如下:
s = '''双儿 洪七公 赵敏 赵敏 逍遥子 鳌拜 殷天正 金轮法王 乔峰 杨过 洪七公 郭靖 杨逍 鳌拜 殷天正 段誉 杨逍 慕容复 阿紫 慕容复 郭芙 乔峰 令狐冲 郭芙 金轮法王 小龙女 杨过 慕容复 梅超风 李莫愁 洪七公 张无忌 梅超风 杨逍 鳌拜 岳不群 黄药师 黄蓉 段誉 金轮法王 忽必烈 忽必烈 张三丰 乔峰 乔峰 阿紫 乔峰 金轮法王 袁冠南 张无忌 郭襄 黄蓉 李莫愁 赵敏 赵敏 郭芙 张三丰 乔峰 赵敏 梅超风 双儿 鳌拜 陈家洛 袁冠南 郭芙 郭芙 杨逍 赵敏 金轮法王 忽必烈 慕容复 张三丰 赵敏 杨逍 令狐冲 黄药师 袁冠南 杨逍 完颜洪烈 殷天正 李莫愁 阿紫 逍遥子 乔峰 逍遥子 完颜洪烈 郭芙 杨逍 张无忌 杨过 慕容复 逍遥子 虚竹 双儿 乔峰 郭芙 黄蓉 李莫愁 陈家洛 杨过 忽必烈 鳌拜 王语嫣 洪七公 韦小宝 阿朱 梅超风 段誉 岳灵珊 完颜洪烈 乔峰 段誉 杨过 杨过 慕容复 黄蓉 杨过 阿紫 杨逍 张三丰 张三丰 赵敏 张三丰 杨逍 黄蓉 金轮法王 郭襄 张三丰 令狐冲 赵敏 郭芙 韦小宝 黄药师 阿紫 韦小宝 金轮法王 杨逍 令狐冲 阿紫 洪七公 袁冠南 双儿 郭靖 鳌拜 谢逊 阿紫 郭襄 梅超风 张无忌 段誉 忽必烈 完颜洪烈 双儿 逍遥子 谢逊 完颜洪烈 殷天正 金轮法王 张三丰 双儿 郭襄 阿朱 郭襄 双儿 李莫愁 郭襄 忽必烈 金轮法王 张无忌 鳌拜 忽必烈 郭襄 令狐冲 谢逊 梅超风 殷天正 段誉 袁冠南 张三丰 王语嫣 阿紫 谢逊 杨过 郭靖 黄蓉 双儿 灭绝师太 段誉 张无忌 陈家洛 黄蓉 鳌拜 黄药师 逍遥子 忽必烈 赵敏 逍遥子 完颜洪烈 金轮法王 双儿 鳌拜 洪七公 郭芙 郭襄 赵敏'''
ls = s.split()
d = {}
for i in ls:d[i] = d.get(i, 0) + 1
max_name, max_cnt = "", 0
for k in d:if d[k] > max_cnt:max_name, max_cnt = k, d[k]
print(max_name)

全国计算机等级考试二级Python(2021年9月)备考笔记 第六天相关推荐

  1. 全国计算机等级考试python试题_全国计算机等级考试二级Python真题及解析(5)

    全国计算机等级考试二级 Python 真题及解析( 5 ) 一.选择题 1. 关于二叉树的遍历,以下选项中描述错误的是 A 二叉树的遍历可以分为三种:前序遍历.中序遍历.后序遍历 B 前序遍历是先遍历 ...

  2. 全国计算机等级考试二级 Python语言程序设计考试大纲(2022年版)

    全国计算机等级考试二级 Python语言程序设计考试大纲(2022年版) 计算机二级Python刷题小程序推荐 基本要求 掌握Python语言的基本语法规则。 掌握不少于个基本的Python标准库。 ...

  3. 全国计算机等级考试二级Python真题及解析

    全国计算机等级考试二级Python真题及解析( 9) 1.下面不属于软件工程的 3 个要素的是 ___________. A过程 B方法 C环境 D工具 正确答案: C 2.下面不属于软件设计原则的是 ...

  4. 全国计算机等级考试二级Python精品题库学习笔记1

    全国计算机等级考试二级Python精品题库学习笔记1 精品试卷01 精品试卷01程序题 基本操作题 2:随机验证码 基本操作题 3:比赛成绩计算 Turtle 绘图题:同心圆 简单应用题 2:员工工资 ...

  5. 计算机二级python备考资料_2019年全国计算机等级考试二级Python备考资料和题库下载(...

    2019年全国计算机等级考试二级Python备考,知识兔为准备参加计算机二级Python考试的童鞋们收集整理了一份丰富的备考资料(最重要的直接免费领取)[资料暗号:知识兔] 2019年全国计算机等级考 ...

  6. 全国计算机等级考试二级Python考试大纲预测和分析

    虽然已经确定2018年9月份在全国计算机等级考试科目中加入"二级Python",但现在还没有出台完整详细的考试大纲,官方网站也仅仅是简单说明了考试时长(120分钟).大概形式(网络 ...

  7. 全国计算机等级考试二级python 程序设计软件安装指南

    近期,有好多小伙伴们微信咨询说之前的软件没有 Python 题库,我也总是说有时间了更新一下Python 题库的,可一拖就是两月过去了,错过了6月份的报名时间更新,昨天也有小伙伴咨询,决定这两日更新下 ...

  8. 全国计算机等级考试二级 Python 软件安装指南

    近期,有好多小伙伴们微信咨询说之前的软件没有 Python 题库,我也总是说有时间了更新一下Python 题库的,可一拖就是两月过去了,错过了6月份的报名时间更新,昨天也有小伙伴咨询,决定这两日更新下 ...

  9. 浙江省高校计算机等级考试二级Python 程序设计题0|2023备考

    笔记整理自B站UP主WLB工作生活两不误的个人空间-WLB工作生活两不误个人主页-哔哩哔哩视频教程浙江省高校计算机等级考试二级Python 程序设计题0_哔哩哔哩_bilibili 程序设计题0 输入 ...

  10. 全国计算机等级考试二级python考纲考点一览

    文章目录 全国计算机二级python考试大纲 1. Python语言的特点 2. Python语言基本语法元素 3. 基本数据类型 4. 程序的控制结构 5. 函数和代码复用 6. 组合数据类型 7. ...

最新文章

  1. linux yum php环境,centos下yum搭建安装linux+apache+mysql+php环境教程
  2. jvm_虚拟机参数讲解(三)
  3. mysql heartbeat 慢_Mysql 慢日志优化分析方法
  4. python3 使用 pi3 安装软件时候,报错找不到 SSL 附解决方法
  5. CentOS7系列--5.2CentOS7中配置和管理Docker
  6. 高质量程序设计指南c++/c语言(25)--类与内联函数
  7. 小米常程为微博文案不当道歉:今后必定谨慎言行 恳请大家持续监督
  8. extjs combobox分页加载数据不显示
  9. mysql 范围索引 els_MySQL 复习笔记
  10. [转载] Python 字典删除元素clear、pop、popitem
  11. 南昌大学2021年811考研真题+答案详解
  12. 百度搜索风云榜Rss
  13. linux springboot开机启动,SpringBoot 部署到Linux开机自启动和运行
  14. pytest-捕获告警信息
  15. 3.抽象类:什么是抽象类???抽象类的特点有哪些???
  16. 微信支付body中文乱码解决方案
  17. 梦幻答题软件测试,欢乐答题官方测试版
  18. shell入门学习笔记-12-命令详解: echo与printf
  19. IE8浏览器官方下载 包含Windows中繁英文各个版本
  20. UVa 11437 (梅涅劳斯定理) Triangle Fun

热门文章

  1. mac 电脑 打开隐藏文件
  2. 佳能打印机imageRUNNER系列 2206AD驱动安装
  3. 教你做一个最简版的倒计时计时器,新手也能秒懂。
  4. 如何把模糊照片变清晰把相片变高清修图#ps教程#ps学习视频
  5. github的健步如飞
  6. 2021年中国人工智能市场发展现状
  7. 计算机组装有哪些,DIY电脑组装需要哪些东西
  8. 【有利可图网】PS教程:给人物制作一种碎片打散效果
  9. android常用单词,Android的英语单词记忆软件系统
  10. RFC1180 TCP/IP指南