1.
编写 Python 程序输出一个具有如下风格效果的文本,用作文本进度条样式,部分代码如下,填写空格处。
10%@==
20%@====
100%@====================
前三个数字,右对齐;后面字符,左对齐
文本中左侧一段输出 N 的值,右侧一段根据 N 的值输出等号,中间用 @ 分隔,等号个数为 N 与 5 的整除商的值,例如,当 N 等于 10 时,输出 2 个等号。
N = eval(input()) # N取值范围是0—100,整数
print(____①____)
N = eval(input()) # N取值范围是0—100,整数
print(____①____)
参考代码
N = eval(input()) # N取值范围是0—100,整数 print("{:>3}%@{}".format(N,"="*(N//5)))
2.
以论语中一句话作为字符串变量 s,补充程序,分别输出字符串 s 中汉字和标点符号的个数。
s = "学而时习之,不亦说乎?有朋自远方来,不亦乐乎?人不知而不愠,不亦君子乎?"
n = 0 # 汉字个数
m = 0 # 标点符号个数
____①____ # 在这里补充代码,可以多行
print("字符数为{},标点符号数为{}。".format(n, m))
s = "学而时习之,不亦说乎?有朋自远方来,不亦乐乎?人不知而不愠,不亦君子乎?"
n = 0 # 汉字个数
m = 0 # 标点符号个数
____①____ # 在这里补充代码,可以多行
print("字符数为{},标点符号数为{}。".format(n, m))
参考代码
s = "学而时习之,不亦说乎?有朋自远方来,不亦乐乎?人不知而不愠,不亦君子乎?" n = 0 # 汉字个数 m = 0 # 标点符号个数 m = s.count(',') + s.count('?') n = len(s) - m print("字符数为{},标点符号数为{}。".format(n, m))
3.
使用程序计算整数 N 到整数 N+100 之间所有奇数的数值和,不包含 N+100,并将结果输出。整数 N 由用户给出,代码片段如下,补全代码。不判断输入异常。
N = input("请输入一个整数: ")
____①____ # 可以是多行代码
输入输出示例
N = input("请输入一个整数: ")
____①____ # 可以是多行代码
参考代码
N = input("请输入一个整数: ") s = 0 for i in range(eval(N), eval(N)+100): if i%2 == 1: s += i print(s)
4.
使用 turtle 库的 turtle.fd() 函数和 turtle.left() 函数绘制一个六边形,边长为 200 像素,效果如下图所示,请结合格式框架,补充横线处代码。
import turtle as t
for i in range(___①___):
t.fd(___②___)
t.left(___③___)
--------------------------------------------------------------------
自动评阅说明
最后使用 print 函数输出 ____①____,____②____,____③____中应填代码即可以自动评阅得分,如果有运算符,请在运算符两侧加上空格,
例如,如果代码为:
import turtle as t
for i in range(2):
t.fd(i + 100)
t.left(200)
在提交代码页面输入: print(2, 'i + 100', 200),运行即可
提交代码
# import turtle as t
# for i in range(___①___):
# t.fd(___②___)
# t.left(___③___)
print(____①____,____②____,____③____)
参考代码
import turtle as t for i in range(6): t.fd(200) t.left(60)
5.
经常会有要求用户输入整数的计算需求,但用户未必一定输入整数。为了提高用户体验,编写 getInput() 函数处理这样的情况。请补充如下代码,如果用户输入整数,则直接输出整数并退出,如果用户输入的不是整数,则要求用户重新输入,直至用户输入整数为止。
def getInput():
____①____ # 可以是多行代码
return ____②____ # 只能是单行代码
print(getInput())
def getInput():
____①____ # 可以是多行代码
return ____②____ # 只能是单行代码
print(getInput())
参考代码
def getInput(): try: txt = input() # "请输入整数: " while eval(txt) != int(txt): txt = input() # "请输入整数: " except: return getInput() return eval(txt) print(getInput())
6.
《天龙八部》是著名作家金庸的代表作之一,历时4年创作完成。该作品气势磅礴,人物众多,非常经典。这里给出一个《天龙八部》的网络版本,文件名为“天龙八部-网络版.txt”。
问题1:请编写程序,对这个《天龙八部》文本中出现的汉字和标点符号进行统计,字符与出现次数之间用冒号:分隔,输出保存到“天龙八部-汉字统计.txt”文件中,该文件要求采用 CSV 格式存储,参考格式如下(注意,不统计空格和回车字符):
天:100, 龙:110, 八:109, 部:10
(略)
问题2:请编写程序,对《天龙八部》文本中出现的中文词语进行统计,采用 jieba 库分词,词语与出现次数之间用冒号:分隔,输出保存到“天龙八部-词语统计.txt”文件中。参考格式如下(注意,不统计任何标点符号):
天龙:100, 八部:10
(略)
本题暂不支持自动评阅,print('ok'),即可得分
参考代码 1
fi = open("天龙八部-网络版.txt", "r", encoding='utf-8') fo = open("天龙八部-汉字统计.txt", "w", encoding='utf-8') txt = fi.read() d = {} for c in txt: d[c] = d.get(c, 0) + 1 del d[' '] del d[' '] ls = [] for key in d: ls.append("{}:{}".format(key, d[key])) fo.write(",".join(ls)) fi.close() fo.close()
参考代码 2
import jieba fi = open("天龙八部-网络版.txt", "r", encoding='utf-8') fo = open("天龙八部-词语统计.txt", "w", encoding='utf-8') txt = fi.read() words = jieba.lcut(txt) d = {} for w in words: d[w] = d.get(w, 0) + 1 del d[' '] del d[' '] ls = [] for key in d: ls.append("{}:{}".format(key, d[key])) fo.write(",".join(ls)) fi.close() fo.close()