python二级操作题与分析(4)

1.根据输入正整数 n,作为财务数据,输出一个宽度为 20 字符,n 右对齐显示,带千位分隔符的效果,使用减号字符“-”填充。如果输入正整数超过 20 位,则按照真实长度输出。提示代码如下:
n = input()
#可以多行

输入输出示例
输入 输出
示例 1 2190000 -----------2,190,000
习题讲解

参考代码
n = input()  # 请输入整数
print("{:->20,}".format(eval(n)))

2.PyInstaller 库可以对程序打包,给定一个 Python 源程序文件 a.py,图标文件为 a.ico,将其打包为在 Windows 平台上带有上述图标的单一可执行文件,使用什么样的命令?

print 这个命令即可自动评阅
习题讲解

参考代码
pyinstaller –i a.ico –F a.py

3.以 123 为随机数种子,随机生成 10 个在 1 到 999(含)之间的随机数,以逗号分隔,打印输出,请补充横线处代码。提示代码如下
import random

for i in range():
print(, end=",")
习题讲解

参考代码
import random
random.seed(123)
for i in range(10):
    print(random.randint(1,999), end=",")

4.使用 turtle 库的 turtle.right() 函数和 turtle.fd() 函数绘制一个菱形四边形,边长为 200 像素,效果如下图所示。请勿修改已经给出的第一行代码,并完善程序。

提示代码:
import turtle as t

本题暂不支持自动评阅,print(‘ok’) 即可得分并查看答案。

习题讲解

参考代码
import turtle as t
t.right(-30)
for i in range(2):
    t.fd(200)
t.right(60*(i+1))
for i in range(2):
    t.fd(200)
    t.right(60*(i+1))

5.补充完善如下代码,使得程序能够计算 a 中各元素与 b 逐项乘积的累加和。
提示代码如下:
a = [[1,2,3], [4,5,6], [7,8,9]]
b = [3,6,9]
____①____for c in a:for j in :
s += c[j]*b[j]print(s)
习题讲解

参考代码
a = [[1,2,3], [4,5,6], [7,8,9]]
b = [3,6,9]
s = 0
for c in a:
    for j in range(3):
        s += c[j]*b[j]
print(s)

6.《命运》和《寻梦》都是著名科幻作家倪匡的科幻作品。这里给出一个《命运》和《寻梦》的网络版本,文件名为“命运-网络版.txt”和“寻梦-网络版.txt”。

问题1:请编写程序,对这两个文本中出现的字符进行统计,字符与出现次数之间用冒号:分隔,将两个文件前 100 个最常用字符分别输出保存到“命运-字符统计.txt”和“寻梦-字符统计.txt”文件中,该文件要求采用 CSV 格式存储,参考格式如下(注意,不统计回车字符):
命:90, 运:80, 寻:70, 梦:60
(略)

问题2:请编写程序,对“命运-字符统计.txt”和“寻梦-字符统计.txt”中出现的相同字符打印输出。“相同字符.txt”文件中,字符间使用逗号分隔。

本题暂不支持自动评阅,print(‘ok’) 即可得分并查看答案。
习题讲解

参考代码 1
names = ["命运", "寻梦"]
for name in names:
    fi = open(name+"-网络版.txt", "r", encoding="utf-8")
    fo = open(name+"-字符统计.txt", "w", encoding="utf-8")
    txt = fi.read()
    d = {}
    for c in txt:
        d[c] = d.get(c, 0) + 1
    del d['\n']
    ls = list(d.items())
    ls.sort(key=lambda x:x[1], reverse=True)
    for i in range(100):
        ls[i] = "{}:{}".format(ls[i][0], ls[i][1])
    fo.write(",".join(ls[:100]))
    fi.close()
    fo.close()
 
参考代码 2
def getList(name):
    f = open(name+"-字符统计.txt", "r", encoding="utf-8")
    words = f.read().split(',')
    for i in range(len(words)):
        words[i] = words[i].split(':')[0]
    f.close()
    return wordsdef main():
    fo = open("相同字符.txt", "w")
    ls1 = getList("命运")
    ls2 = getList("寻梦")
    ls3 = []
    for c in ls1:
        if c in ls2:
            ls3.append(c)
    fo.write(",".join(ls3))
    fo.close()
main()


你可能感兴趣的:(python)