文章目录
单项选择题
第一题
第二题
第三题
第四题
第五题
第六题
第七题
第八题
第九题
第十题
第十一题
第十二题
第十三题
第十四题
第十五题
第十六题
第十七题
第十八题
第十九题
第二十题
第二十一题
第二十二题
第二十三题
第二十四题
第二十五题
第二十六题
第二十七题
第二十八题
第二十九题
第三十题
第三十一题
第三十二题
第三十三题
第三十四题
第三十五题
第三十六题
第三十七题
第三十八题
第三十九题
第四十题
程序设计题
第一题
#代码如下:
h,w = eval(input()) # 请输入身高(m)和体重(kg),逗号隔开
print("BMI是{:.1f}".format(w /(h*h) ))
# 需要掌握浮点数的输出格式符和 eval 函数用法
第二题
ls = eval(input())
for i in range(len(ls)):
ls[i] = ls[i].capitalize() #将所有的字符串首字母转换成大写capitalize()函数
print(ls)
第三题
a = input() # 请输入填充符号
c = input() # 请输入要显示的字符串
flag = 1
while flag:
try:
b = eval(input()) # 请输入字符串总长度
except:
flag = 1
print("请输入一个正整数")
else:
if type(b)== int and b>0:
flag = 0
else:
flag = 1
print("请输入一个正整数")
print('{0:{1}^{2}}'.format(c,a,b))
第四题
import turtle
edge = 6
d = 0
k = 1
for j in range(10): #外重循环10个六边形
for i in range(edge): #内重循环6个边(边长逐渐加大,实现螺旋效果)
turtle.fd(k) #边长
d += 360/edge #角度变化值设定
turtle.seth(d) #角度变化
k += 3 #边长增加3
turtle.done()
'''
要点:
1. 二重循环,第一道循环控制画的圈数,内循环控制六边形的边数
2. 六边形,所以每次画笔旋转的角度是360/edge,或者直接写60也可以
3. k用来控制不断增加的边长,根据题目给的增量是3
'''
第五题
fp = open("out.txt","w") #以写的方式打开文件out.txt
ch = input("请输入字符串:\n") #请输入待写入文件的内容,例如python123.io@
while ch != '@': #使用无限循环的方式,重复检查输入内容中是否存在"@"
if '@' in ch: #如果ch中存在"@",则截取"@"之前的字符,写入文件。
t = ch.find("@") #find函数是字符串查找函数
fp.write(ch[0:t]) #截取"@"之前的字符,写入文件。
break #终止无限循环
#(这是无限循环的终止条件,如果没有获得一个"@"输入,按回车后,会一直要求输入。)
else:
fp.write(ch + " ") #将按回车前的输入,用一个英文空格隔开,写入文件中
ch = input("") #继续从键盘获得输入,赋值给ch
fp.close() #关闭文件。
第六题
import jieba #导入中文分词库jieba
import turtle as t #导入turtle库,并给turtle去一个别名t
def drawCircle(x,y,radius,color,name): #自定义函数drawCircle,包含了5个参数
t.pencolor(color) #设置绘圆的颜色,color是一个必选参数,调用函数时可以设置为'red'、'blue'...
t.penup() #绘图笔提前起来,表示不落下去绘图,
t.goto(x, y) #将笔的坐标定位到(x,y),x,y都是必选参数
t.write(name, font=('Arial', 10, 'normal')) #在当前的(x,y),写上name内容,文字属性由font决定。name是必选参数
t.seth(-90) #将绘图方向设置为-90度方向
t.pendown() #绘图笔放下,表示落下去绘图,有颜色啦:)
t.circle(radius) #按半径为radius绘制圆形
return t.pos() #返回t.pos()当前的位置,例如:(-300.00,0.00)
dws = {} #定义一个字典,注意不是集合哦
with open('lizhi.txt', 'r',encoding="utf-8") as f: #用with语句以只读方式打开lizhi.txt文件
for l in f.readlines(): #遍历列表f.readlines()中的每一个元素
ws = jieba.lcut(l.strip('\n')) #去掉行字符串最后的"\n"不可显示换行符,
#使用jieba.lcut(str)函数进行中文分词,返回一个列表
for w in ws:
if len(w) >= 2: #统计词语长度>=2 的词语出现频次
dws[w] = dws.get(w,0) + 1 #逐步构建字典dws,词语:次数的键值对
#如果w在dws的keys中,则键值+1,如果w不在dws的keys中,则构建健值对dws[w] = 0 + 1
dls = list(dws.items()) #将dws.items()转换为列表并赋值给dls,形如[("abc",10),("edf","12"),...],目前是无序的
dls.sort(key = lambda x:x[1], reverse= True) #对dls进行排序,按列表元素中索引为1,这行代码考试时会给出。但一定要理解。
x,y = -300,0 #设置初始坐标位置
for i in range(10): #根据统计结果绘制图形
print(dls[i][0],dls[i][1]) #输出结果
x,y = drawCircle(x,y,dls[i][1]*4 ,'red',dls[i][0]+str(dls[i][1])) #调用绘图函数实现绘图
x += dls[i][1] * 8 #改变x初始位置,y值不变
t.done()