import turtle for i inrange(4): turtle.fd(100) turtle.fd(-100) #考点 turtle.seth((i+1)*90) #考点 #left()/right()是相对当前角度转弯;seth()是绝对角度。
考点:fd(-100) 表示倒退(原路返回);seth((i+1)*90) 用循环变量算绝对角度。
0302
1 2 3 4 5 6 7 8 9
txt = input("请输入类型序列: ") t = txt.split() #考点 d = {} for i inrange(len(t)): #考点 d[t[i]]=d.get(t[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]))
# 第一问 f = open("vote.txt") #打开当前目录下 vote.txt 文件(默认只读r模式) names = f.readlines() #一次性读取文件所有行,返回列表,每行字符串带换行符\n f.close() #关闭文件 n = 0 for name in names: #遍历文件每一行(name代表一行文本) num = len(name.split()) #考点 if num==1: #考点 分割后只有 1 个单词,有效票 + 1 n+=1#考点 print("有效票{}张".format(n))
#第二问 f = open("vote.txt") names = f.readlines() f.close() D = {} for name in names: #考点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) #reverse=True考点 name = l[0][0] score = l[0][1] print("最具人气明星为:{},票数为:{}".format(name,score))
# 循环,无限执行,直到遇到break跳出循环 whileTrue: # 获取用户输入文本,要求输入不带数字的文本 s = input("请输入不带数字的文本:") # 计数器i,用来统计字符串里数字字符的个数 i = 0 # 遍历字符串s中的每一个字符p for p in s: # 判断字符p是不是数字:字符比较,在"0"~"9"之间就是数字 if"0" <= p <= "9": i = i + 1# 如果是数字,计数器+1 # 判断:如果数字个数i等于0,说明输入里面没有数字 if i == 0: break# 跳出while无限循环,结束输入环节 # 输出最终合法字符串s的长度 print(len(s))
考点:while True + break 做输入校验;"0" <= p <= "9" 判断字符是否为数字。
# with上下文打开文件,自动关闭文件,'r'只读模式 withopen('out.txt', 'r') as f: for i in f: # 逐行读取文件每一行 i = i.strip().split(',') # strip去除首尾换行空格,split按逗号切分成列表 ts[i[0]] = i[2] # 字典:键=i[0]操作名,值=i[2]占比字符串 sumtime += eval(i[1]) # eval把字符串i[1]转为数字,累加到总耗时sumtime print('the total execute time is ', sumtime) # 输出总执行时间
tns = list(ts.items()) # 将字典键值对转为列表,每个元素是元组(键,值) # 排序:按元组第2项x[1](占比)降序reverse=True,从大到小 tns.sort(key=lambda x: x[1], reverse=True) for i inrange(3): # 循环3次,输出前3名 print('the top {} percentage time is {}, spent in "{}" operation'.format(i, tns[i][1],tns[i][0]))
考点:with open(...) as f 自动关闭文件;eval(i[1]) 把字符串数字转数值累加;字典改列表后按占比降序,取前 3 名。
第十三套(1301 ~ 1302)
1301 靶场(有点特殊)
1 2 3 4 5 6 7 8 9 10 11
import turtle as t # 导入海龟绘图库,简称为t color = ['red','green','blue'] # 颜色列表:红、绿、蓝 rs = [10,30,60] # 半径列表:10,30,60
import jieba # 导入jieba中文分词库(Python二级高频) s = input("请输入一段中文文本,句子之间以逗号或句号分隔:") # 接收输入整段文本 slist = jieba.lcut(s) # jieba.lcut:对中文做分词,返回词语列表 m = 0# 词语计数变量,初始0
for i in slist: # 遍历分词后的每一个词语 if i in",。": # 如果这个词是逗号或者句号标点 continue# 跳过,不计入词语数量 m += 1# 不是标点,词语数量+1 print(i, end="/") # 打印词语,用 / 分隔,不换行 print("\n中文词语数是:{}\n".format(m)) # 换行,输出总共中文词语数量
word = ""# 用来临时保存一句话的字符 for j in s: # 遍历原始输入字符串的**每一个单个字符** if j in",。": # 遇到逗号或句号(句子结束标记) print("{:^20}".format(word)) # 居中格式输出这句话,占20字符宽度 word = ""# 清空临时变量,准备接收下一句 continue word += j # 字符追加到word,拼接成完整句子
考点:jieba.lcut(s) 分词并用 if i in ",。" 过滤标点;第二段按字符遍历,用 word 拼接成句、遇标点用 {:^20} 居中输出。
第十四套(1401 ~ 1402)
1401 四个正方形
1 2 3 4 5 6 7 8 9 10 11 12 13
import turtle # 导入海龟绘图库
n = 4# 考点 设置一共要画4个正方形
for j inrange(n): # 外层循环,循环n次,每次画一个正方形 turtle.pendown() # 考点 画笔落下,移动时可以画线 for i inrange(4): # 内层循环,画正方形的4条边 turtle.fd(40) # 考点 海龟向前移动40像素,画出一条边 turtle.right(90)# 考点海龟右转90度,准备画下一条边 turtle.penup() # 画笔抬起,移动时不画线,只移动位置 turtle.fd(80) # 考点抬笔向前移动80像素,移动到下一个正方形起点
turtle.done() # 绘图结束,保持绘图窗口不关闭
考点:外层循环画 n 个正方形;每个画完抬笔 fd(80) 移动到下一个起点(边长 40 不够,间隔要比边长大)。
1402
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
import random as r r.seed(0) persons = ['Alice', 'Bob','lala', 'baicai'] flag = 3 while flag>0: flag -= 1 name =input('请输入一个名字:') if name=='q': print('程序自动退出') break elif name in persons: num =r.randint(1000,9999) print('{} {}'.format(name, num)) else: print('对不起,您输入的名字不存在。')
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()
for l in ls: # 遍历score文件分割后的每一条学生记录字符串l data=l.split(',') # 把单条记录按逗号,拆分,得到列表data iflen(data)>2: # 如果拆分后的列表长度大于2(数据有效) ds[data[0]]=data[1:] # 字典键:学生编号data[0];值:该学生后面所有信息列表
for l in lb: # 遍历base文件分割后的每一条学生记录字符串l data=l.split(',') # 按逗号拆分单条记录 iflen(data)>2: # 数据有效判断 ds[data[0]]+=[data[1]] # 找到同学号的字典项,追加基础信息到列表中
ll=list(ds.items()) # 将字典的键值对转为列表,格式:[(学号,[信息1,信息2...]),...] for i in ll: # 遍历每一条学生键值对i fo.write('{},{};\n'.format(i[0],','.join(i[1]))) # 格式化写入文件:学号,信息1,信息2; 换行