目录
基本操作题
题目一
考生文件夹下存在一个文件PY102.py请写代码替换横线,实现以下功能:使用calendar模块,从键盘输入年份,输出,当年的日历。
# 请在______处使用一行代码或表达式替换
#
# 注意:请不要修改其他已给出代码
import calendar
year = _____(input("请输入年份:"))
table = _____(year)
print(table)
参考答案
import calendar
year = int(input("请输入年份:"))
table =calendar.calendar(year)
print(table)
解析
首先导入calendar模块。然后通过input函数从键盘输入一个年份,使用 int() 函数将其转换为整数类型比赋值给变量year
然后,使用calendar.calendar((year))赋值给table,最后使用print函数打印出当年的日历
calendar.calendar()返回一个多行字符串,包含了当前的日历信息
题目二
考生文件夹下存在一个文件PY101py,请写代码替换横线,不修改其他代码,实现以下功能:循环获得用户输入,直至用户输入Y或者y字符退出程序。
# 请在______处使用一行代码或表达式替换
#
# 注意:请不要修改其他已给出代码
while _____:
s = input("请输入信息:")
if _____:
break
参考答案
while True:
s = input("请输入信息:")
if s =='y':
break
elif s=='Y':
break
这里是用or,这可能比较好一点
while True:
s = input("请输入信息:")
if s.lower() == 'y':
break
解析
在 Python 中,or
是一个逻辑运算符,用于将两个布尔值进行逻辑或运算。当两个操作数中至少有一个为 True
时,or
运算的结果为 True
,否则为 False
。
注意:这里使用or是满分,而使用if---elif只给两分
题目三
考生文件夹下存在一个文件PY103.py请写代码替换横线,实现以下功能:输入下面的绕口令,将其中出现的字符“兵”,全部替换为“将”,输出替换后的字符串。
八百标兵奔北坡,炮兵并排北边跑,炮兵怕把标兵碰,标兵怕碰炮兵炮。八百标兵奔北坡,北坡八百炮兵炮,标兵怕碰炮兵炮,炮兵怕把标兵碰。八了百了标了兵了奔了北了坡,炮了兵了并了排了北了边了跑,炮了兵了怕了把了标了兵了碰,标了兵了怕了碰了炮了兵了炮。
# 请在______处使用一行代码或表达式替换
#
# 注意:请不要修改其他已给出代码
s = input("请输入绕口令:")
print(s._____("兵","将"))
参考答案
s = input("请输入绕口令:")
print(s.replace("兵","将"))
解析
这是对replace()函数的使用
replace()
是Python字符串对象的内置函数,用于将一个字符串中的所有指定子字符串替换为另一个子字符串。其语法如下:
其中:
string
:表示原字符串对象。old
:表示要被替换的子字符串。new
:表示要替换成的子字符串。count
(可选):表示替换的次数,即最多替换几个。如果省略,则默认替换所有出现的子字符串。
简单应用
题目四
考生文件夹下存在一个文件PY201py,请写代码替换横线,不修改其他代码,实现以下功能:使用turtle库中的pencolor()和fillcolor()方法为图形着色,使用setup()方法在桌面屏幕(400,400)位置创建600*600大小的画布窗体。效果如下图所示。
# 请在______处使用一行代码或表达式替换
#
# 注意:请不要修改其他已给出代码
from turtle import *
def curvemove():
for i in range(200):
right(1)
forward(1)
setup(600,600,400,400)
hideturtle()
_____('black')
_____("red")
pensize(2)
begin_fill()
left(140)
forward(111.65)
curvemove()
left(120)
curvemove()
forward(111.65)
end_fill()
penup()
goto(-27, 85)
pendown()
done()
参考答案
from turtle import *
def curvemove():
for i in range(200):
right(1)
forward(1)
setup(600,600,400,400)
hideturtle()
pencolor('black')
fillcolor("red")
pensize(2)
begin_fill()
left(140)
forward(111.65)
curvemove()
left(120)
curvemove()
forward(111.65)
end_fill()
penup()
goto(-27, 85)
pendown()
done()
解析
这题就是对turtle这个模块的熟悉掌握,其中题目给出了两个函数,pencolor()和fillcolor()
pencolor():是笔画的颜色
fillcolor():是填充的颜色
从图中就可以看到笔画颜色是黑色,填充颜色是红色,所以第一个空是pencolor(),第二个空是fillcolor()
题目五
考生文件夹下存在一个文件PY202.py,该文件是本题目的代码提示框架,其中代码可以任意修改,请在该文件中编写代码,以实现如下功能:九九乘法表输出。按照乘法表的格式打印输出九九乘法表,并将打印的结果保存在考生文件夹下,命名为“PY202.xt”。
# 以下代码为提示框架
# 请在...处使用一行或多行代码替换
# 请在______处使用一行代码替换
#
# 注意:提示框架代码可以任意修改,以完成程序功能为准
fo = open("PY202.txt","w")
...
fo.close()
参考答案
fo = open("PY202.txt","w")
for i in range(1,10):
for j in range(1,i+1):
fo.write("{}*{}={} ".format(j,i,i*j))
fo.write("\n")
fo.close()
解析
首先,使用open()
函数打开一个名为“PY202.txt”的文件,使用写模式('w')将文件对象赋值给变量fo
。
然后,使用两个嵌套的for循环,分别循环1到9以及1到i+1,将乘积i*j以“jxi=乘积”(例如,2x3=6)
用format()这个函数字符格式化它可以将一个字符串中的某些部分替换为其他值,使得输出的字符串具有一定的格式。其中第一个{}是代表j,第二个代表i,第三个则是代表i*j,然后写入“PY202.txt”。
\n表示换行,在这里表示,当进行完一个循环就换行
最后,使用close()
方法关闭文件。
综合应用
题目六
考生文件夹下存在两个Python源文件PY301-1.py和PY301-2.py,分别对应两个问题,请按照文件内说明修改代码,实现以下功能:李白,字太白,号青莲居士,又号“谪仙人”,是唐代伟大的浪漫主义诗人,被后世誉为“诗仙。考生文件夹下有一个“关山月txt文件,内容如下:
明月出天山,苍茫云海间。长风几万里,吹度玉门关。汉下白登道,胡窥青海湾。由来征战地,不见有人还。戍客望边邑,思归多苦颜。高楼当此夜,叹息未应闲。
问题1
这是一段由标点符号分隔的文本,请编写程序,以“。句号标点符号为分隔,将这段文本转换为诗词风格,输出到
文件“关山月诗歌xt中。
# 以下代码为提示框架
# 请在...处使用一行或多行代码替换
# 请在______处使用一行代码替换
#
# 注意:提示框架代码可以任意修改,以完成程序功能为准
fi = open("关山月.txt","r")
...
fi.close()
fo.close()
参考答案
fi = open("关山月.txt","r")
fo = open("关山月诗歌.txt","w")
txt = fi.read()
ls = txt.split("。")
fo.write("。\n".join(ls))
fi.close()
fo.close()
解析
txt = fi.split("。") 将读取到的文本按照句号“。”进行分割,将分割后的结果保存在 ls 中
这里使用了'split()'方法,将文本字符串按照句号进行分割,并将分割后的结果保存为一个列表。注意,在括号中参数“。”前后需要有一个空格
fo.write("。\n".join(ls))这里使用字符串‘join()’方法,将‘ls’中每一个元素以句号和换行符进行连接,并将连接后的字符串写入到新文件中。在括号中的参数中,句号和换行符之前没有符号
问题2
把问题1生成的“关山月诗歌x文件,以每行为单位,保留标点符号为原顺序及位置,输出全文的反转形式。将文件保存在考生文件夹下并命名为“关山月-反转.txt”。
输出的形式为:
高楼当此夜,叹息未应闲。
戍客望边邑,思归多苦颜。
由来征战地,不见有人还。
汉下白登道,胡窥青海湾
长风几万里,吹度玉门关。
明月出天山,苍茫云海间。
# 以下代码为提示框架
# 请在...处使用一行或多行代码替换
# 请在______处使用一行代码替换
#
# 注意:提示框架代码可以任意修改,以完成程序功能为准
fi = open("关山月-诗歌.txt","r")
fo = open("关山月-反转.txt","w")
...
fi.close()
fo.close()
参考答案
fi = open("关山月-诗歌.txt","r")
fo = open("关山月-反转.txt","w")
txt=fi.readlines()
txt.reverse()
for row in txt:
fo.write(row)
fi.close()
fo.close()
解析
readlines():将其读取为一个字符串列表
reverse(): 对字符串列表进行反转
使用for循环遍历反转后的字符串列表,并将每一行写入到一个新的文件“关山月-反转.txt”中。最后,关闭两个文件句柄以释放资源。
总结
到这里就是一张试卷所有的操作题,个人感觉这次的操作题也是很简单的,都是一些基本的语法,前面的基本操作题,对小白也是很友好的。到中间的简单应用对turtle库的熟悉使用和对format()这个函数的使用,最后综合应用,是对分隔函数split()和反转函数reverse()的使用还有字符串‘join()’方法,总的来说,加油吧!!