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()