写在前面
代码与参考答案不一定相同,但结果一致,真题更新顺序不一定规律
基础操作
1-1
注意eval,代码如下:
s = input("请输入一个小数: ")
s = s[::-1]
cs = 0
for c in s:
if c == '.':
break
cs += eval(c)
print('{:*>8}'.format(cs))
1-2
import time
t = input("请输入一个浮点数时间信息: ")
s = time.ctime(eval(t)) # 易错点
ls = s.split()
print(ls[3].split(':')[0])
1-3
import random
s = input("请输入随机种子: ")
ls = []
for i in range(26):
ls.append(chr(ord('a')+i))
for i in range(10):
ls.append(chr(ord('0')+i))
random.seed(eval(s))
for i in range(10):
for j in range(8):
print(random.choice(ls), end='')
print()
简单应用
2-1
import turtle as t
import random as r
r.seed(1)
t.pensize(2)
for i in range(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 in range(4):
t.fd(length)
t.seth(90*(j+1))
t.done()
2-2
sumtime = 0
percls = []
ts = {}
with open('out.txt', 'r') as f:
for line in f:
a = line.strip().split(',')
sumtime += eval(a[1]) #注意eval
ts[a[0]] = a[2]
print('the total execute time is ', sumtime)
tns = list(ts.items())
tns.sort(key=lambda x: x[1], reverse=True)
for i in range(3):
print('the top {} percentage time is {}, spent in "{}" operation'.format(
i, tns[i][1], tns[i][0]))
综合应用
3-1
f = open("八十天环游地球.txt", encoding="utf-8")
ff = open("八十天环游地球-章节.txt",'w', encoding="utf-8")
for line in f:
a = line.strip().split()
if a[0][-1] == '章':
ff.write('{}\n'.format(line.replace('\n', '')))
f.close()
ff.close()
3-2
注意f.seed()的运用,此外答案偏复杂
import jieba
f = open("八十天环游地球.txt", 'r', encoding="utf-8")
l = []
for line in f:
line = line.strip().split()
if line[0][-1] == '章':
l.append(line[0])
f.seek(0)
ls = f.read().split('作者:儒勒·凡尔纳')
for i in range(len(ls)-1):
d = {}
a = jieba.lcut(ls[i])
for j in a:
if len(j) >= 2:
d[j] = d.get(j, 0)+1
b = list(d.items())
b.sort(key=lambda x: x[1], reverse=True)
print('{} {} {}'.format(l[i], b[0][0], b[0][1]))