# 请在...处使用一行或多行代码替换# 请在______处使用一行代码替换
data = ()
d = {}
data:
t = data.split()
d[t[]] = t[]
data = ()
ls = (d.items())
ls.sort(key= x: x[], reverse=)
max_course, max_grade = ls[]
min_course, min_grade = ls[(ls)-]
average_grade =
i d.values():
average_grade = average_grade + (i)
average_grade = average_grade / (ls)
(.(max_course, max_grade, min_course, min_grade, average_grade))
input
# 课程名 考分
while
0
1
input
list
lambda
1
True
0
len
1
0
for
in
int
len
print
"最高分课程是{} {}, 最低分课程是{} {}, 平均分是{:.2f}"
format
*注:循环读取直到空行为止,注意将字符串分数转换为整数进行计算。
题目三:Turtle 绘图基础
题目要求: 补全代码绘制三角形。
参考实现
# 请在______处使用一行代码或表达式替换# 注意:请不要修改其他已给出代码import turtle as t
for i inrange(3):
t.seth(i * 120)
t.fd(200)
题目四:Turtle 绘制正方形
题目要求: 补全代码绘制正方形。
参考实现
# 请在______处使用一行代码或表达式替换# 注意:请不要修改其他已给出代码import turtle
for i inrange(4):
turtle.fd(100)
turtle.backward(100)
turtle.seth((i + 1) * 90)
题目五:Turtle 绘制正八边形
题目要求: 补全代码绘制正八边形。
参考实现
# 请在______处使用一行代码或表达式替换# 注意:请不要修改其他已给出代码import turtle
turtle.pensize(2)
d = 0for i inrange(1, 9):
turtle.fd(100)
d += 360 / 8
turtle.seth(d)
题目六:投票统计与文件处理
题目要求: 读取选民名单和选票,统计有效票并输出结果。
参考实现
# 请在______处使用一行代码或表达式替换
f = open("name.txt")
names = f.readlines()
f.close()
f = open("vote.txt")
votes = f.readlines()
f.close()
f = open("vote1.txt", "w")
D = {}
NUM = 0for vote in votes:
num = len(vote.split())
if num == 1and vote in names:
D[vote[:-1]] = D.get(vote[:-1], 0) + 1
NUM += 1else:
f.write(vote)
f.close()
l = list(D.items())
l.sort(key=lambda s: s[1], reverse=True)
name = l[0][0]
score = l[0][1]
print("有效票数为:{} 当选村长村民为:{},票数为:{}".format(NUM, name, score))
*注:文件操作时注意关闭资源,列表切片 vote[:-1] 用于去除换行符。
题目七:Turtle 绘制正五边形
题目要求: 补全代码绘制正五边形。
参考实现
# 请在______处使用一行或多行代码替换# 注意:请不要修改其他已给出代码import turtle
turtle.pensize(2)
d = 0for i inrange(1, 6):
turtle.fd(100)
d += 360 / 5
turtle.seth(d)
题目八:投票系统进阶
题目要求: 分别统计有效票数及最具人气明星。
参考实现 (py201.py)
# 请在______处使用一行代码或表达式替换# 注意:请不要修改其他已给出代码
f = open("vote.txt")
names = f.readlines()
f.close()
n = 0for name in names:
num = len(name.split())
if num == 1:
n += 1print("有效票{}张".format(n))
参考实现 (py202.py)
# 请在______处使用一行代码或表达式替换# 注意:请不要修改其他已给出代码
f = open("vote.txt")
names = f.readlines()
f.close()
D = {}
for name in names:
iflen(name.split()) == 1:
D[name[:-1]] = D.get(name[:-1], 0) + 1
l = list(D.items())
l.sort(key=lambda s: s[1], reverse=True)
name = l[0][0]
score = l[0][1]
print("最具人气明星为:{},票数为:{}".format(name, score))
题目九:Turtle 绘制十二边形
题目要求: 补全代码绘制正十二边形。
参考实现
# 301,请在空格处补充代码import turtle
turtle.pensize(2)
d = 0for i inrange(1, 13):
turtle.fd(40)
d += 360 / 12
turtle.seth(d)
题目十:向量积运算
题目要求: 计算两个列表对应元素的乘积之和。
参考实现
# 请补充若干行代码,完成向量积运算
ls = [111, 222, 333, 444, 555, 666, 777, 888, 999]
lt = [999, 777, 555, 333, 111, 888, 666, 444, 222]
s = 0for i inrange(len(ls)):
s += (ls[i] * lt[i])
print(s)
题目十一:Turtle 几何图形组合
题目要求: 补全代码绘制特定几何图形。
参考实现
# 在横线处补充代码,不得修改其它代码# PY201.pyimport turtle
turtle.pensize(2)
for i inrange(4):
turtle.fd(200)
turtle.left(90)
turtle.left(360 - 45)
turtle.circle(100 * pow(2, 0.5))
题目十二:文本数字检测
题目要求: 输入不带数字的文本,否则重新输入。
参考实现
# 请完善如下代码# 在....处填写多行代码,不得修改其他代码# PY202.pywhileTrue:
s = input("请输入不带数字的文本:")
i = 0for num in s:
if'0' <= num <= '9':
i += 1if i == 0:
breakprint(len(s))
题目十三:Turtle 坐标绘图
题目要求: 补全代码在坐标系中绘制数据。
参考实现
# 在____________上补充代码# 请不要修改其他代码import turtle as t
ls = [69, 292, 33, 131, 61, 254]
X_len = 400
Y_len = 300
x0 = -200
y0 = -100
t.penup()
t.goto(x0, y0)
t.pendown()
t.fd(X_len)
t.fd(-X_len)
t.seth(90)
t.fd(Y_len)
t.pencolor('red')
t.pensize(5)
for i inrange(len(ls)):
t.penup()
t.goto(x0 + (i + 1) * 50, y0)
t.seth(90)
t.pendown()
t.fd(ls[i])
t.done()
题目十四:随机数生成与用户验证
题目要求: 验证用户名是否存在并生成随机验证码。
参考实现
# 在......上补充一行或多行代码# 不得修改其他代码import random
random.seed(2)
pdict = {'Alice': ['123456789'], 'Bob': ['234567891'], 'Lily': ['345678912'], 'Jane': ['456789123']}
name = input('请输入一个人名:')
if name in pdict:
print("{} {} {}".format(name, pdict.get(name)[0], random.randint(1000, 9999)))
else:
print("对不起,您输入的用户信息不存在。")
题目十五:Turtle 随机绘图
题目要求: 补全代码绘制随机位置和颜色的圆。
参考实现
# 在____________上补充代码# 请不要修改其他代码import turtle as t
import random as r
color = ['red', 'orange', 'blue', 'green', 'purple']
r.seed(1)
for i inrange(5):
rad = r.randint(20, 50)
x0 = r.randint(-100, 100)
y0 = r.randint(-100, 100)
t.color(r.choice(color))
t.penup()
t.goto(x0, y0)
t.pendown()
t.circle(rad)
t.done()
题目十六:卷积运算模拟
题目要求: 补全代码实现简单的卷积滤波效果。
参考实现
# 请在.....处填写多行表达式或语句# 不得修改其他代码
img = [0.244, 0.832, 0.903, 0.145, 0.26, 0.452]
filter = [0.1, 0.8, 0.1]
res = []
for i inrange(len(img) - 2):
k = 0for j inrange(3):
k += filter[j] * img[i + j]
res.append(k)
for r in res:
print('{:<10.3f}'.format(r), end='')
题目十七:Turtle 复杂图形绘制
题目要求: 补全代码绘制带角度的复杂图形。
参考实现
# 在____________上补充代码# 请不要修改其他代码import turtle as t
import random as r
r.seed(1)
t.pensize(2)
t.pencolor('red')
angles = 6
points = [[0, 0], [50, 40], [70, 80], [-40, 30]]
for i inrange(4):
x0, y0 = points[i]
t.penup()
t.goto(x0, y0)
t.pendown()
length = r.randint(6, 16)
for j inrange(angles):
t.fd(length)
t.backward(length)
t.right(360 / angles)
t.done()
题目十八:CSV 数据处理
题目要求: 读取 CSV 文件统计学校与国家关系。
参考实现
# 在......上补充一行或多行代码# 在____________上补充一行代码# 可以修改代码
f = open('data202.txt', 'r')
school = []
country = []
for line in f:
lines = line.strip('\n').split(",")
if lines != ['']:
school.append(lines[1:3])
country.append(lines[-1])
country = list(set(country))
unis = []
for i in country:
n = 0
schools = []
result = []
for k in school:
if k[1] == i:
n += 1
schools.append(k[0])
result = [i, n, schools]
unis.append(result)
for d in unis:
print('{:>4}: {:>4} : {}'.format(d[0], d[1], ''.join(d[2])))
f.close()
题目十九:Turtle 随机矩形
题目要求: 补全代码绘制随机大小的矩形。
参考实现
# 在____________上补充代码# 请不要修改其他代码import turtle as t
import random as r
r.seed(1)
t.pensize(2)
for i inrange(3):
length = r.randint(20, 80)
x0 = r.randint(-100, 100)
y0 = r.randint(-100, 100)
t.penup()
t.goto(x0, y0)
t.pendown()
for j inrange(4):
t.fd(length)
t.seth(90 * (j + 1))
t.done()
题目二十:执行时间统计
题目要求: 读取文件统计不同操作的执行时间占比。
参考实现
# 请在.....处填写多行表达式或语句# 请在_____处填写一行表达式或代码
sumtime = 0
percls = []
ts = {}
withopen('out.txt', 'r') as f:
for line in f.readlines():
line = line.strip('\n').split(',')
sumtime += eval(line[1])
ts[line[0]] = line[2]
print('the total execute time is ', sumtime)
tns = list(ts.items())
tns.sort(key=lambda x: x[1], reverse=True)
for i inrange(3):
print('the top {} percentage time is {}, spent in "{}" operation'.format(i, tns[i][1], tns[i][0]))
题目二十一:Turtle 同心圆
题目要求: 补全代码绘制不同半径的同心圆。
参考实现
# 在____________上补充代码import turtle as t
color = ['red', 'green', 'blue']
rs = [10, 30, 60]
for i inrange(3):
t.penup()
t.goto(0, -(rs[i] - rs[0]))
t.pendown()
t.pencolor(color[i])
t.circle(rs[i])
t.done()
题目二十二:中文分词统计
题目要求: 使用 jieba 库对中文文本进行分词并统计。
参考实现
# 在……上补充一行或多行代码# 可以修改其他代码import jieba
s = input("请输入一段中文文本,句子之间以逗号分隔:")
slst = jieba.lcut(s)
wordstr = ""
num = 0for word in slst:
if word notin [',', '。']:
wordstr = wordstr + word + "/"
num += 1print(wordstr)
print("非标点符号的中文词语个数是" + str(num))
题目二十三:Turtle 网格绘图
题目要求: 补全代码绘制网格状图形。
参考实现
import turtle
n = 4for j inrange(n):
turtle.pendown()
for i inrange(4):
turtle.fd(40)
turtle.right(90)
turtle.penup()
turtle.fd(80)
turtle.done()
题目二十四:随机数与用户交互
题目要求: 循环接收用户输入并生成随机数。
参考实现
# 在……上补充一行或多行代码,不得修改其他代码import random as r
r.seed(0)
persons = ['Aele', 'Bob', 'lala', 'baicai']
flag = 3while flag > 0:
flag -= 1
name = input("请输入一个名字:")
if name in persons:
num = r.randint(1000, 9999)
print('{} {}'.format(name, num))
elif name == 'q':
breakelif name notin persons:
print('对不起,您输入的名字不存在。')
题目二十五:Turtle 随机颜色圆
题目要求: 补全代码绘制随机颜色和位置的圆。
参考实现
import turtle as t
import random as r
color = ['red', 'green', 'blue', 'purple', 'black']
r.seed(1)
for j inrange(5):
t.pencolor(color[r.randint(0, 4)])
t.penup()
t.goto(r.randint(-100, 100), r.randint(-100, 100))
t.pendown()
t.circle(r.randint(10, 30))
t.done()
题目二十六:中文词频统计
题目要求: 使用 jieba 分词并统计词频写入文件。
参考实现
# 在……上补充一行或多行代码import jieba
s = input("请输入一个中文字符串,包含逗号和句号:\n")
words = jieba.lcut(s)
d = {}
for i in words:
iflen(i) >= 2:
d[i] = d.get(i, 0) + 1
lt = list(d.items())
fo = open("result202.txt", "w", encoding='utf-8')
for i in lt:
fo.write("{}:{}".format(i[0], i[1]))
fo.close()
题目二十七:Turtle 复杂路径
题目要求: 补全代码绘制复杂路径。
参考实现
# 在____________上补充代码(12 根短线)import turtle as t
import random as r
color = ['red', 'blue', 'purple', 'black']
r.seed(1)
for j inrange(4):
t.pencolor(color[r.randint(0, 3)])
t.penup()
t.goto(r.randint(-100, 100), r.randint(-100, 100))
t.pendown()
ra = r.randint(50, 200)
for i inrange(1, 5):
t.fd(ra)
t.seth(90 * i)
t.done()
题目二十八:文本清洗与分词
题目要求: 替换特殊字符并统计词语数量。
参考实现
# 在____________上补充代码(12 根短线)# 请在.....处填写多行表达式或语句# 可以修改其他代码# 在……上补充一行或多行代码(6 个点)import jieba
dela = '-;:,.()"<>'
s = input("请输入一句话:")
print("\n这句话是:{}".format(s))
new = ""for i in s:
if i in dela:
i = ""
new = new + i
wordlists = jieba.lcut(new)
print("替换之后是:{}".format(new))
print("里面有 {}个词语。".format(len(wordlists)))
题目二十九:Turtle 填充图形
题目要求: 补全代码绘制填充图形。
参考实现
# 请在______处补充一行代码# 请不要修改其他代码import turtle as t
for i inrange(4):
t.forward(200)
t.left(90)
t.penup()
t.goto(100, 0)
t.pendown()
t.color("green", "red")
t.pensize(5)
t.begin_fill()
t.circle(100)
t.end_fill()
t.done()
题目三十:文本分词与排序
题目要求: 读取文件,分词并统计前 5 高频词。
参考实现
# 请在.....处填写多行表达式或语句# 不得修改其他代码import jieba
fuhao = [",", ":", "、", "。", ";", "'", "'"]
withopen("data_19report.txt", "r", encoding="utf-8") as f:
all_txt = f.read()
for ch in fuhao:
all_txt = all_txt.replace(ch, '')
words = jieba.lcut(all_txt)
for i in words[:-1]:
print(i, end='/')
print(words[-1])
d = {}
for i in words:
d[i] = d.get(i, 0) + 1
ls = list(d.items())
ls.sort(key=lambda x: x[1], reverse=True)
for i inrange(5):
print('{}:{}'.format(ls[i][0], ls[i][1]))
题目三十一:Turtle 蛇形绘图
题目要求: 定义函数绘制蛇形曲线。
参考实现
# 在____________上补充代码# 不要修改其他代码import random as r
import turtle as t
defdrawSnake(angl):
t.penup()
t.goto(0, 200)
t.pendown()
t.seth(-1 * angl)
for i inrange(length):
t.circle(radius, angl)
t.circle(-radius, angl)
length, radius = 3, 40
r.seed(1)
color = ['red', 'blue', 'purple', 'black']
for i inrange(4):
t.pencolor(r.choice(color))
angl = r.randint(30, 180)
drawSnake(angl)
t.done()
题目三十二:学生成绩分析
题目要求: 读取学生数据,统计最高分和最低分。
参考实现
# 在____________上补充代码# 在……上补充一行或多行代码# 可以修改其他代码
fi = open("data202.txt", 'r')
lls = fi.read().split(';')
print("一共有{}个学生".format(len(lls)))
students = []
for i in lls:
tem = i.split(',')
students.append(tem)
students.sort(key=lambda x: x[2], reverse=True)
max_score = students[0][2]
max_name = []
for i in students:
if i[2] == max_score:
max_name.append(i[1])
min_score = students[-1][2]
min_name = []
for i in students:
if i[2] == min_score:
min_name.append(i[1])
print("最高分:{}:{}".format(max_score, ','.join(max_name)))
print("最低分:{}:{}".format(min_score, ','.join(min_name)))
题目三十三:Turtle 多边形绘制
题目要求: 补全代码绘制多个多边形。
参考实现
# 在____________上补充代码# 不要修改其他代码import turtle as t
color = ['red', 'green', 'blue', 'orange', 'pink']
for i inrange(5):
t.penup()
t.goto(-200 + i * 70, 0)
t.pendown()
t.pencolor(color[i])
t.circle(50, steps=5)
t.done()
题目三十四:蒙特卡洛模拟
题目要求: 补全代码实现随机数求和模拟。
参考实现
# 在____________上补充代码# 在……上补充一行或多行代码# 可以修改其他代码import random as r
defcalpi(c, darts):
p = 0for i inrange(darts):
p += r.randint(0, darts)
print("{:2}{:12}{:12}".format(c, darts, p))
n = 4
DART = 3
r.seed(1)
for i inrange(n):
c = i + 1
darts = c * DART
calpi(c, darts)