计算机二级Python题目12

本文主要介绍了Python编程中的基础题,包括字符串操作、浮点数输入、随机数生成,以及使用turtle模块进行画图。此外,还涉及了处理大题内容,如文件操作、计算总执行时间和按百分比排序的操作。

目录

1. 基础题

1.1 基础题1

1.2 基础题2

1.3 基础题3

2. turtle画图题

3. 大题

3.1 大题1

3.2 大题2


1. 基础题

1.1 基础题1

s=input("请输入一个小数:")
s=s[::-1]
cs=0
for c in s:
    if c=='.':
        break
    cs+=eval(c)
print('{:*>10}'.format(cs))

1.2 基础题2

import time
t=input("请输入一个浮点数时间信息:")
s=time.ctime(float(t))
ls=s.split()
print(ls[3].split(':')[0])
#答案 print(ls[3][0:2])

1.3 基础题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(ls[random.randint(0,35)],end='')
    print()

在Python中,print() 函数默认是自带换行符的,也就是说,每次调用print() 函数输出内容后会自动换行。

random.choice()是Python标准库中的一个函数,用于从给定的可迭代对象中随机选择一个元素并返回。

2. turtle画图题

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

turtle.seth() 设置海龟朝向,以逆时针为正方向

turtle.fd()前进

3. 大题

3.1 大题1

 自己写的:

sumtime=0
percls=[]
ts={}
with open('out.txt','r') as f:
    ls=f.readlines()
for i in range(len(ls)):
    name=ls[i].split(',')[0]
    time=eval(ls[i].split(',')[1])
    p=eval(ls[i].split(',')[2])
    sumtime+=time
    ts[name]=p
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]))

 自己写的并未用到题目中给的percls=[]

注意文档中的记录数目不是3,需要用len(ls)

答案:

sumtime=0
percls=[]
ts={}
with open('out.txt','r') as f:
    for line in f:
        percls.append(line.strip("\n").split(","))

n=[x[1] for x in percls]
for i in range(len(n)):
    sumtime+=eval(n[i])

ts={x[0]:x[2] for x in percls}

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.2 大题2

第一问:

#提取章节题目
f=open("八十天环游地球.txt",encoding="utf-8")
fo=open("八十天环游地球-章节.txt",'w',encoding="utf-8")
for i in f:
    text=i.split()[0]
    if text[0]=="第" and text[-1]=="章":
         fo.write("{}\n".format(i.replace('\n','')))
f.close()
fo.close()

第二问:

#第二问
import jieba
import re

strf='八十天环游地球.txt'

with open(strf,encoding="utf-8") as f:
    lines=f.read()
    t=re.findall('(第.{1,3}章.*)',lines)

with open(strf,encoding="utf-8") as f:
    lines=f.read()
    s=re.sub('(第.{1,3}章.*)','$',lines)
    x=s.split('$')
    x=x[1:]

for i,j in zip(t,x):
    counts={}
    txt=jieba.lcut(i+j)
    for word in txt:
        if len(word)>=2:
            counts[word]=counts.get(word,0)+1
    li=list(counts.items())
    li.sort(key=lambda x:x[1],reverse=True)
    word_max,count_max=li[0]
    chapter=re.findall('(第.*章)',i)[0]
    print(chapter+' '+word_max+' '+str(count_max))


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值