计算机二级

计算机二级

错题回看#

简单应用:6.2	7.3		8.1		9.2		12.2	12.3	15套写法有问题注意
综合应用:8	9	

第三方库#

# jieba库
jieba.lcut(s)	# 精确模式 返回一个列表类型

# random库
random.seed()	# 设置随机数种子
random()		# 生成一个[0.0, 1.0)之间的随机小数
randint(a,b)	# 生成一个[a,b]之间的整数
sample(pop,k)	# 从pop类型中随机选取k个元素,以列表类型返回
"""
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(ls[random.randint(0,35)],end='')
    print()
"""

# turtle库
pendown()				放下画笔
penup()					提起画笔,与pendown()配对使用
forward(distance)		 沿着当前方向前进指定距离
backward(distance)		 沿着当前相反方向后退指定距离
right(angle)			向右旋转angle角度
left(angle)				向左旋转angle角度
goto(x,y)			    移动到绝对坐标(x,y)处
seth(angle)				设置当前朝向为angle角度
circle(radius,e)		绘制一个指定半径r和角度e的圆或弧形
pensize(width)			设置画笔线条的粗细为指定大小
pencolor()				设置画笔的颜色

format格式化输出#

{:+^11} 意思是:用 + 填充 居中对齐 总共11 
: 引导符号
<填充>	用于填充的单个字符
<对齐>	< 左对齐 > 右对齐
<宽度>	槽的设定 输出宽度
<,>		 数字的千位分隔符适用于整数和浮点数
<.精度>	浮点数小数部分的精度或字符串的最大输出长度
<类型>	整型b,c,d,o,x(16进制),X浮点  数字型e,E,f,%

列表#

ls.insert(i,x)  # 在列表ls第i位置增加元素x
.join(ls)  # join的必须是字符串
"""
a, b, c = eval(input())
ls = []
for i in range(c):
    ls.append(str(a * (b ** i)))  ******
print(",".join(ls))
"""

字符串#

字符串也是支持切片的
"""
输入0-9能够替换成汉字
"""
n = input()
s = "〇一二三四五六七八九"
for c in "0123456789":
     n = n.replace(c,s[int(c)])
print(n)

abs(x)						x的绝对值
divmod(x,y)					(x//y,x%y),输出为二元组形式(也称为元组类型)
pow(x,y) 或 pow(x,y,x)		**y或(**y)%z,幂运算
round() 或 round(x,d)		对x四舍五入,保留d为小数,无参数d则返回四舍五入的整数值
str.split(sep=None)			返回一个列表,由str根据sep被分割的部分构成,省略sep默认以空格分割
str.count(sub)				返回sub子串出现的次数
str.strip(chars)			字符串str中去掉在具左侧和行侧chars中列出的字符
str.join(iter)				将iter变量的每一个元素后增加一个str字符串
str.lower()					返回字符串str的副本,全部字符小写
str.upper()					返回字符串str的副本,全部字符大写
str.replace(old, new)		返回字符串str的副本,所有的old子串被替换为new

条件判断#

是否为整数: type(a) == int、a % 1 == 0
判断是否为中文: if '\u4e00'<=c<='\u9fff'

简单应用

# 排序 从大到小
ls = list(d.items())
ls.sort(key = lambda x:x[1], reverse = True)

# 1套
data = input()  # 姓名 性别 年龄 
age = 0
n = 0
man_num = 0
while data:
    n += 1
    ls = data.split()
    age += int(ls[2])
    if ls[1] == '男':
        man_num += 1
    data = input()
avg = age/n
print("平均年龄是{:.2f} 男性人数是{}".format(avg,man_num))

# 2套
names=input("请输入各个同学行业名称,行业名称之间用空格间隔(回车结束输入):")
ls = names.split()
d = {}
for i in ls:
    d[i] = d.get(i,0) + 1
ls = list(d.items())
ls.sort(key=lambda x:x[1], reverse=True) # 按照数量排序
for k in ls:
    print("{}:{}".format(k[0],k[1]))

# 3套
txt = input("请输入类型序列: ")
s = txt.split()
d = {}
for i in range(len(s)):
    d[s[i]] = d.get(s[i],0) + 1
ls = list(d.items())
ls.sort(key=lambda x:x[1], reverse=True)  # 按照数量排序
for k in ls:
    print("{}:{}".format(k[0], k[1]))
    
# 4套
data = input()  # 课程名 考分
d = {} 
while data:
    s = data.split()
    d[s[0]] = s[1]
    data = input()
ls = list(d.items())
ls.sort(key = lambda x:x[1], reverse = True)
ag = 0
for i in d.values():
    ag += int(i)
ag = ag/len(ls)
print("最高分课程是{} {}, 最低分课程是{} {}, 平均分是{:.2f}".format(ls[0][0],ls[0][1],ls[-1][0],ls[-1][1],ag))

# 5套
f=open("name.txt")
names=f.readlines()
f.close()
f=open("vote.txt")
votes=f.readlines()
f.close()
f.close()
f=open("vote1.txt","w")
D={}
NUM=0
for vote in votes:
    num = len(vote.split())
    if num==1 and vote in names:
        D[vote[:-1]]= D.get(vote[:-1],0) +1
        NUM+=1
    else:
        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))

# 6套
f = open("vote.txt")
names = f.readlines()
f.close()
n = 0
for name in names:
    num = len(name.split())
    if num == 1:
        n += 1
print("有效票{}张".format(n))

f = open("vote.txt")
names = f.readlines()
f.close()
D = {}
for name in names:
    if len(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))

# 7套
ls = [111, 222, 333, 444, 555, 666, 777, 888, 999]
lt = [999, 777, 555, 333, 111, 888, 666, 444, 222]
s = 0
for i in range(len(ls)):
    s += ls[i] * lt[i]
print(s)

# 8套
# 圆套着方
import turtle
turtle.pensize(2)
for i in range(4):
    turtle.fd(200)
    turtle.left(90)
turtle.left(-45)
turtle.circle(100*pow(2,0.5))


while True:
    s = input("请输入不带数字的文本:")
    flag = False
    for c in s:
        if c.isdigit():
            print('输入存在数字,请重新输入!')
            flag = True
            break
    if flag == False:
        break   
print(len(s))

# 9套
# 柱状图
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 in range(len(ls)):
    t.penup()
    t.goto(x0 + (i+1)*50, y0)
    t.seth(90)
    t.pendown()
    t.fd(ls[i])
t.done()

# 10套
img = [0.244, 0.832, 0.903, 0.145, 0.26, 0.452]
filter = [0.1,0.8,0.1]
res = []
for i in range(len(img)-2):
    k = 0
    for j in range(3):
        k += filter[j] * img[i+j]
        print('k={:<.3f},filter[{}]={:<.3f},img[{}+{}]={:<.3f}'.format(k,i,filter[j],i,j,img[i+j]))
    res.append(k)
for r in res:
    print('{:<10.3f}'.format(r),end = '')
    
# 11套
# 雪花forward backward
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 in range(4):
    x0,y0 = points[i]
    t.penup()
    t.goto(x0,y0)
    t.pendown()

    length = r.randint(6, 16)
    for j in range(angles):
        t.forward(length)
        t.backward(length)
        t.right(360 / angles)
t.done()


f = open('data.txt', 'r',encoding="utf-8")

country = []
school = []

for line in f:
    data = line.strip('\n').split(',')
    if data != ['']:
        country.append(data[-1]) # ['中国','美国',...]
        school.append(data[1:3]) # [['麻省理工','美国'],[]...]

country = list(set(country))	# set集合方法自动去重
    
unis = []
for i in country:
    n = 0
    schools = []
    result = []
    for k in school:
        if k[1] == i:
            schools.append(k[0])
            n += 1
    result = [i,n,schools]
    unis.append(result)

for d in unis:
    print('{:>4}: {:>4} : {}'.format(d[0],d[1],' '.join(d[2])))
    
# 12套
sumtime = 0
percls = []
ts = {}
with open('out.txt', 'r') as f:
    for line in f:
        data = line.strip('\n').split(',')
        sumtime += float(data[1])
        percls.append(data[::2])
    for j in range(len(percls)):
        ts[percls[j][0]] = percls[j][1]
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]))
    
# 13套
# 三个同心圆
import turtle as t
color = ['red','green','blue']
rs = [10,30,60]

for i in range(3):
    t.penup()
    t.goto(0,-rs[i])  # ****** y坐标是-rs[i]
    t.pendown()
    t.pencolor(color[i])
    t.circle(rs[i])
t.done()


import jieba
s = input("请输入一段中文文本,句子之间以逗号或句号分隔:")
slist = jieba.lcut(s)
m = 0
for i in slist:
   if i in ",。":
      continue
   m += 1
   print(i,end='/')
print("\n中文词语数是:{}\n".format(m))

s = ''
for i in slist:
   if i in ",。":
      print('{:^20}'.format(s))
      s = ''
      continue
   s += i

# 14套
import random as r
r.seed(0)
persons = ['Alice', 'Bob','lala', 'baicai']
flag = 3
while flag>0:
    flag -= 1
    name = input('请输入名字:').strip()
    num = r.randint(1000,9999)
    if name in persons:
        print('{} {}'.format(name, num))
        break
    elif name == 'q':
        print('程序自动退出')
        break
    else:
        print('对不起,您输入的名字不存在。')
        
# 15套
import jieba

f = open('data2.txt','w')

s = input("请输入一个中文字符串,包含逗号和句号:")
k=jieba.lcut(s)
d1 = {}
for i in k:
    if len(i) >= 2:
        d1[i] = d1.get(i,0) + 1
ls = list(d1.items())
for i in range(len(ls)):
    f.write('{}:{}'.format(ls[i][0],ls[i][1]))
    f.write('\n')
f.close()

# 16套
import jieba
dela = '-;:,.()"<>'
s = input("请输入一句话:")
print("\n这句话是:{}".format(s))
new = ''
for i in s:
    if i in dela:
        i = ''
    new += i
ls = jieba.lcut(new)
print("替换之后是:{}".format(new))
print("里面有 {}个词语。".format(len(ls)))

综合应用

# 7套
L=[]                          #L中的元素是学生原始成绩和总成绩
D=[]

fi = open('score.txt','r')  #此处可多行
fo = open('candidate0.txt','w')

for line in fi.readlines():
    D = line.split()
    s = 0
    for i in range(10):
        s += eval(D[i+2])
    D.append(s)
    L.append(D)

L.sort(key=lambda x:x[-1],reverse=True)   #按学生总成绩从大到小排序

for i in range(10):
    for j in range(12):
        fo.write('{} '.format(L[i][j]))
    fo.write('\n')

fi.close()
fo.close()


fi = open('candidate0.txt','r')
fo = open('candidate.txt','w')

L = []
D = []

for line in fi.readlines():
    D = line.strip('\n').split()
    L.append(D)

flag = True
for i in range(10):
    for j in range(10):
        if eval(L[i][j+2]) < 60:
            flag = False
    if flag:
        fo.write('{} {}'.format(L[i][0],L[i][1]))
        fo.write('\n')
    flag = True
    
fi.close()
fo.close()

# 8套
# 指定始末光标
start = line.find('alt=')+5
end = line.find('" width=')

作者:piggthird

出处:https://www.cnblogs.com/piggthird/p/17779527.html

版权:本作品采用「署名-非商业性使用-相同方式共享 4.0 国际」许可协议进行许可。

posted @   PiggThird  阅读(16)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· AI 智能体引爆开源社区「GitHub 热点速览」
· 写一个简单的SQL生成工具
点击右上角即可分享
微信分享提示
more_horiz
keyboard_arrow_up light_mode palette
选择主题
menu