python计算机二级操作题详解(一)

python计算机二级操作题详解(一)

**1. 1.仅使用 Python 基本语法,即不使用任何模块,编写 Python 程序计算下列数学表达式的结果并输出,小数点后保留3位。
在这里插入图片描述
输入
该题目没有输入

输出
输出结果小数点后保留 3 位**

x = pow((3**4 + 5*(6**7))/8, 0.5)
print("{:.3f}".format(x))

详解:
*从题目分析考点有pow()函数和format()数字的格式化。
描述
pow() 方法返回 xy(x的y次方) 的值。
语法
以下是 math 模块 pow() 方法的语法:

import math
math.pow( x, y )

内置的 pow() 方法

pow(x, y[, z])

函数是计算x的y次方,如果z在存在,则再对结果进行取模,其结果等效于pow(x,y) %z
注意:pow() 通过内置的方法直接调用,内置方法会把参数作为整型,而 math 模块则会把参数转换为 float。
参数
x – 数值表达式。
y – 数值表达式。
z – 数值表达式。
返回值
返回 xy(x的y次方) 的值。*

fomat()数字的格式化。
其中常见的格式设置有:
^, <, > 分别是居中、左对齐、右对齐,后面带宽度, : 号后面带填充的字符,只能是一个字符,不指定则默认是用空格填充。+ 表示在正数前显示 +,负数前显示 -; (空格)表示在正数前加空格b、d、o、x 分别是二进制、十进制、八进制、十六进制。

**2.以中国共产党第十九次全国代表大会报告中一句话作为字符串变量 s,完善 Python 程序,分别用 Python 内置函数及 jieba 库中已有函数计算字符串 s 的中文字符个数及中文词语个数。注意,中文字符包含中文标点符号。(提交的代码应包括题目中给出的部分)

import jieba
s = "中国特色社会主义进入新时代,我国社会主要矛盾已经转化为人民日益增长的美好生活需要和不平衡不充分的发展之间的矛盾。"
n = ____①____
m = ____②____print("中文字符数为{},中文词语数为{}。".format(n, m))

输入
该题目没有输入

输出
输出字符串 s 的中文字符个数及中文词语个数**
详解:

import jieba
s = "中国特色社会主义进入新时代,我国社会主要矛盾已经转化为人民日益增长的美好生活需要和不平衡不充分的发展之间的矛盾。"
n = len(s) 
m = len(jieba.lcut(s))print("中文字符数为{},中文词语数为{}。".format(n, m))

注:考点是jieba库中文分词库。len()用于对字符串的长度进行计数。jieba.lcut(s)指精确模式,返回一个列表类型的分词结果.

3.0x4DC0 是一个十六进制数,它对应的 Unicode 编码是中国古老的《易经》六十四卦的第一卦,请输出第 51 卦(震卦)对应的 Unicode 编码的二进制、十进制、八进制和十六进制格式。

print("二进制{____①____}、十进制{____②____}、八进制{____③____}、十六进制{____④____}".format(____⑤____))

输入
该题目没有输入

输出
符合输出要求即可

 print("二进制{0:b}、十进制{0}、八进制{0:o}、十六进制{0:x}".format(0x4DC0+50))

解析:Python 十进制转二进制、八进制、十六进制
 Python3 实例
以下代码用于实现十进制转二进制、八进制、十六进制:
实例(Python 3.0+)
获取用户输入十进制数 dec = int(input(“输入数字:”)) print(“十进制数为:”, dec) print(“转换为二进制为:”, bin(dec)) print(“转换为八进制为:”, oct(dec)) print(“转换为十六进制为:”,
hex(dec))
执行以上代码输出结果为:
python3 test.py 输入数字:5十进制数为:5转换为二进制为: 0b101转换为八进制为: 0o5转换为十六进制为: 0x5
python3 test.py 输入数字:12十进制数为:12转换为二进制为: 0b1100转换为八进制为: 0o14转换为十六进制为: 0xc

4.使用 turtle 库的 turtle.fd() 函数和 turtle.seth() 函数绘制一个边长为 200 的正方形,效果如下图所示。请结合格式框架,补充横线处代码。

import turtle
d = 0
for i in range(____①____):
    turtle.fd(____②____)
    d = ____③____
    turtle.seth(d)

详解:

import turtle
d = 0
for i in range(4):
    turtle.fd(200)
    d = d + 90
    turtle.seth(d)

解析:turtle.seth()固定方向turtle.left()向左转turtle.right()向右转。

5.列表 ls 中存储了我国 39 所 985 高校所对应的学校类型,请以这个列表为数据变量,完善 Python 代码,统计输出各类型的数量。

ls = ["综合", "理工", "综合", "综合", "综合", "综合", "综合", "综合", "综合", "综合",\
      "师范", "理工", "综合", "理工", "综合", "综合", "综合", "综合", "综合","理工",\
      "理工", "理工", "理工", "师范", "综合", "农林", "理工", "综合", "理工", "理工", \
      "理工", "综合", "理工", "综合", "综合", "理工", "农林", "民族", "军事"]

输入格式
该题目没有输入

输出格式
要求按以下顺序输出
综合:1
理工:2
师范:3
农林:4
民族:5
军事:6

其中冒号为英文冒号
详解:

ls = ["综合", "理工", "综合", "综合", "综合", "综合", "综合", "综合", \
      "综合", "综合", "师范", "理工", "综合", "理工", "综合", "综合", \
      "综合", "综合", "综合", "理工", "理工", "理工", "理工", "师范", \
      "综合", "农林", "理工", "综合", "理工", "理工", "理工", "综合", \
      "理工", "综合", "综合", "理工", "农林", "民族", "军事"]
d = {}
for word in ls:
    d[word] = d.get(word, 0) + 1for k in d:
    print("{}:{}".format(k, d[k]))

解析:Python3 字典 get() 方法
 Python3 字典

描述
Python 字典 get() 函数返回指定键的值,如果值不在字典中返回默认值。
语法
get()方法语法:
dict.get(key, default=None)
参数
key – 字典中要查找的键。
default – 如果指定键的值不存在时,返回该默认值值。
返回值
返回指定键的值,如果值不在字典中返回默认值 None。

6.《论语》是儒家学派的经典著作之一,主要记录了孔子及其弟子的言行。网络上有很多《论语》文本版本。这里给出了一个版本,文件名称为“论语-网络版.txt”,其内容采用如下格式组织:
【原文】

1.11子曰:“父在,观其(1)志;父没,观其行(2);三年(3)无改于父之道(4),可谓孝矣。”

【注释】

(略)

【译文】

(略)

【评析】

(略)
该版本通过【原文】标记《论语》原文内容,采用【注释】、【译文】和【评析】标记对原文的注释、译文和评析。

问题1:请编写程序,提取《论语》文档中所有原文内容,输出保存到“论语-提取版.txt”文件。输出文件格式要求:去掉文章中原文部分每行行首空格及如“1.11”等的数字标志,行尾无空格、无空行。参考格式如下(原文中括号及内部数字是对应源文件中注释项的标记):
子曰(1):“学(2)而时习(3)之,不亦说(4)乎?有朋(5)自远方来,不亦乐(6)乎?人不知(7),而不愠(8),不亦君子(9)乎?”

有子(1)曰:“其为人也孝弟(2),而好犯上者(3),鲜(4)矣;不好犯上,而好作乱者,未之有也(5)。君子务本(6),本立而道生(7)。孝弟也者,其为人之本与(8)?”

子曰:“巧言令色(1),鲜(2)仁矣。”

(略)

问题2:请编写程序,在“论语-提取版.txt”基础上,进一步去掉每行文字中所有括号及其内部数字,保存为“论文-原文.txt”文件。参考格式如下:
子曰:“学而时习之,不亦说乎?有朋自远方来,不亦乐乎?人不知,而不愠,不亦君子乎?”

有子曰:“其为人也孝弟,而好犯上者,鲜矣;不好犯上,而好作乱者,未之有也。君子务本,本立而道生。孝弟也者,其为人之本与?”

子曰:巧言令色,鲜仁矣。”

(略)

详解1:

fi = open("论语-网络版.txt", "r", encoding="utf-8")
fo = open("论语-提取版.txt", "w")
wflag = False            #写标记
for line in fi:
    if "【" in line:     #遇到【时,说明已经到了新的区域,写标记置否
        wflag = False
    if "【原文】" in line:  #遇到【原文】时,设置写标记为True
        wflag = True
        continue    
    if wflag == True:    #根据写标记将当前行内容写入新的文件
        for i in range(0,25):
            for j in range(0,25):
                line = line.replace("{}·{}".format(i,j),"**")
        for i in range(0,10):
            line = line.replace("*{}".format(i),"")
        for i in range(0,10):
            line = line.replace("{}*".format(i),"")
        line = line.replace("*","")   
        fo.write(line)
fi.close()
fo.close()

详解 2

fi = open("论语-提取版.txt", "r")
fo = open("论语-原文.txt", "w")for line in fi:   #逐行遍历
    for i in range(1,24):  #对产生1到23数字 
        line=line.replace("({})".format(i), "")  #构造(i)并替换
    fo.write(line)
fi.close()
fo.close()
  • 27
    点赞
  • 158
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值