image

编辑人: 桃花下浅酌

calendar2025-06-15

message5

visits747

2024月06月Python五级实操答案及解析

一、简答题

1、36.统计单词
小明想编写一个程序来统计一段文字中每个单词出现的次数,这样可以方便他更好的记忆文章内容。他希望能够输入一段文字后,程序就输出每个单词及其出现的次数。
请在下面程序段空白处填上正确内容以实现程序功能。
要求:
输入一段文字,程序将统计每个单词出现的次数并输出每个单词及其出现的次数。
样例:
请输入一段文字:the quick brown fox jumps over the lazy dog
文字中每个单词出现的次数如下:
the: 2
quick: 1
brown: 1
fox: 1
jumps: 1
over: 1
lazy: 1
dog: 1
程序如下:
text = input("请输入一段文字:")
word_count = {}
words = text.split()
for word in ① :
if word in word_count:
​ ②
else:

print("文字中每个单词出现的次数如下:")
for word, count in word_count.items():
print("{}: {}". ④ (word, count))

解析:

小明想要编写一个程序来统计一段文字中每个单词出现的次数。根据题目描述和提供的程序框架,我们可以按照以下步骤来完成程序:

  1. 首先,通过input()函数获取用户输入的文本。
  2. 创建一个空字典word_count来存储单词及其出现的次数。
  3. 使用split()函数将文本分割成单词列表words
  4. 遍历words列表中的每个单词word
  5. 检查word是否已经在word_count字典中。
    • 如果在,则将对应的计数加1。
    • 如果不在,则将该单词及其计数1添加到字典中。
  6. 使用循环遍历字典中的每个单词及其计数,并打印出来。为了格式化输出,使用字符串的format()方法。

根据上述逻辑,我们可以填充空白处的代码:

  • ①处应填写words,因为我们正在遍历单词列表。
  • ②处应填写word_count[word] += 1,用于增加已存在单词的计数。
  • ③处应填写word_count[word] = 1,用于为新的单词设置计数为1。
  • ④处应填写format,因为我们需要格式化输出单词和计数的字符串。具体地,应该使用"{}: {}".format(word, count)来进行格式化。

2、37.Base64 编码
小王在学习信息技术时,对编码产生了浓厚的兴趣,她听老师说Base64 编码是计算机常见的一种编码方式,于是她决定尝试自己编写一个简单的Base64 编码工具。经过她的研究,发现Base64 编码规则是把 3 个字节(24 位)的数据按 6 位一组分成4组(24÷6=4),然后将每组数据分别转换为十进制,根据图 1 将这些十进制数所对应的字符连接,即为 Base64 编码。
编写一个 Python 程序,实现上述功能。程序运行时,输入若干个字符(个数必须是 3 的倍数),输出 Base64 编码。实现上述功能的 Python 代码如下,请在划线处填入合适的代码。
s1=input("请输入编码字符:")
tmp=0
s=""
ans=""
Base64="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"
for x in s1:
​ ①
t=""
for i in range(8): #将十进制数 n 转换为 8 位二进制
​ r=n%2
​ ②
​ n=n//2
s=s+t
for i in range(len(s)): #6位二进制一组转换成十进制,查找 Base64 对应字符
​ ③
if i%6==5:
​ ans=ans+Base64[tmp]
​ ④
print("Base64编码:",ans)

解析:

这是一个关于Base64编码的Python程序填空题目。根据题目描述和提供的代码框架,我们需要完成以下几个步骤来实现Base64编码的功能。

  1. 获取输入字符的ASCII值。在Python中,我们可以使用内置的ord()函数来获取字符的ASCII值。因此,在①处应填写n=ord(x)
  2. 将每个字符的ASCII值转换为二进制数,并将这些二进制数添加到字符串中。我们可以使用循环和取余操作来实现这一功能。在②处应填写将二进制数添加到字符串中的代码,如t=t+str(r)
  3. 将每6位二进制数转换为十进制数,并查找Base64对应字符。我们可以使用Python的int()函数和二进制数的特性来完成这一转换。在③处应填写将二进制数转换为十进制数的代码,如tmp=int(s[i:i+6],2)。同时,要注意处理最后一个字符如果不足6位的情况。
  4. 根据转换得到的十进制数,在Base64字符串中找到对应的字符,并拼接成最终的Base64编码结果。在④处应填写拼接编码结果的代码,如ans=ans+Base64[tmp],注意这里的方括号应为英文输入法下的方括号。

完成以上步骤后,程序就能实现将输入的字符按照Base64编码规则进行编码,并输出Base64编码结果的功能。

3、38.找缺失数
在一个学校的年度校园活动中,组织者需要为参与者分配不同的编号,以便进行抽奖和其他活动。他们决定使用长度为n-1的列表a来存储参与者的编号,这些编号是从1到n的整数,且没有重复。现在,他们需要找出在区间[1,n]范围内没有出现在列表a中的那个整数,以便为这个编号进行特别的奖励。如当n=5时,a[0]=3,a[1]=4,a[2]=1,a[3]=5时,列表a中缺失的数为2。
python代码如下,请在划线处填上合适的代码.
from random import randint
n=int(input("请输入一个整数n:"))
a=[]
c=1
while c<n:
x=randint(1,n)
if ① :
​ a.append(x)
​ ②
s=n*(n+1)//2 #s得到1~n的累加和
for i in range(n-1):
​ ③
print(a)
print("列表中缺失的数为:",s)

解析:

这是一个找缺失数的问题。首先,我们需要生成从1到n的随机数并存储在列表a中,但我们要确保每个数只出现一次。然后,我们计算从1到n的累加和s。接下来,我们需要找到在列表a中未出现的数字,即缺失的数字。

对于划线处①,我们需要检查随机数x是否已经在列表a中,如果不在,则将其添加到列表a中。这可以通过简单的条件判断实现:if x not in a:

对于划线处②,我们在循环中需要逐步增加c的值以确保我们生成n个随机数。因此,这里应该填写:c += 1

对于划线处③,我们需要找到缺失的数字。一种方法是计算从1到n的累加和s,然后减去列表a中所有数字的总和。这可以通过missing_num = s - sum(a)来实现。另一种方法是通过集合的差集运算来找到缺失的数字:missing_num = set(range(1, n+1)) - set(a)。这两种方法都可以得到正确的结果。

所以,完整的代码应该是这样的:

from random import randint  
n=int(input("请输入一个整数n:"))  
a=[]  
c=1  
while c<n:  
    x=randint(1,n)  
    if x not in a:  # 检查随机数x是否已经在列表a中  
        a.append(x)  
    c += 1  # 逐步增加c的值  
s=n*(n+1)//2 #s得到1~n的累加和  
missing_num = s - sum(a) # 或者使用集合set求差集的方式:missing_num = set(range(1, n+1)) - set(a)
print(a)  
print("列表中缺失的数为:", missing_num)

喵呜刷题:让学习像火箭一样快速,快来微信扫码,体验免费刷题服务,开启你的学习加速器!

创作类型:
原创

本文链接:2024月06月Python五级实操答案及解析

版权声明:本站点所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明文章出处。
分享文章
share