Python2022年03月Python二级 -- 编程题解析

Python软件编程等级考试二级——20220319

实操
第一题
实现统计字符串中的单词和单词出现的次数:

要求如下:

(1)统计的语句为:to be or not to be that is a question

(2)要求统计该句中出现的所有单词和其出现次数。

(3)使用字典进行输出,格式如下(注意:排列顺序可以不一致,但是统计的次数要正确):

{‘to’: 2, ‘be’: 2, ‘or’: 1, ‘not’: 1, ‘is’: 1, ‘a’: 1, ‘question’: 1, ‘that’: 1}

答案:
方法一:

str1='to be or not to be that is a question' 
list1=str1.split( )  #将字符串根据空格转成列表 
#['to', 'be', 'or', 'not', 'to', 'be', 'that', 'is', 'a', 'question']
list2=[]             #创建一个空列表 list2
for i in list1:      #循环遍历 list1
    if i not in list2:     #如果 list2列表中没有该元素就插入list2
        list2.append(i)    
dict1={
    
    }             #创建空字典
for j in list2:      #遍历list2列表 
    dict1[j]=list1.count(j)     #字典插入list2列表的每一项在原始list1列表中的个数
print(dict1)         #最后打印字典  

方法二:

#方法二:
str1='to be or not to be that is a question' 
lis=str1.split()
dic={
    
    }
for i in lis:
    if i in dic.keys():
        dic[i]+=1
    else:
        dic[i]=1
print(dic)

第二题
可以对任何一个自然数进行若干次运算,最终都可以变为1。

运算规则如下:

(1)若该数是偶数,则变为原数的一半;

(2)若该数是奇数,则变为原数的3倍加1;

(3)重复(1)(2),直到该数变为1。

编写程序实现如下功能:输入一个大于1的自然数,计算按照上述方法最终变换为1共经过的变换次数,并输出变换次数。(输出格式为:直接输出次数即可)

示例1:若输入自然数8,则输出结果为:3。

示例2:若输入自然数5,则输出结果为:5。

答案:

ci=0               #创建一个变量ci统计次数
num1=int(input('输入一个大于 1的自然数:'))  #用户输入一个数字赋值到num1变量中
while num1!=1:     #使用while循环 判断输入的num1是否不等于1 等于1跳出循环 不等于1进入循环
    if num1 %2==0: #判断num1变量是否为偶数 
        num1=num1/2#根据题目要求偶数要除以2
    else:
        num1=num1*3+1#根据题目要求奇数要乘3再加1
    ci+=1          #ci变量 次数加1
print(ci)          #循环结束 打印次数ci变量

本人是培训机构的老师;如果还有更好的解答,请评论下面分享给我;大家相互学习
——骁林老师
如果你感觉有收获,欢迎给我打赏 ———— 以激励我输出更多优质内容
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_40762926/article/details/132563810