内容正文:
编写说明:安徽省普通高校对口招生专业理论和技能测试考试电子与信息大类《计算机编程基础—Python 语言考点双析卷》,依据《安徽省普通高校对口招生专业理论和技能测试考试纲要》编写。“考点双析卷”即围绕一个考点,一份是老师的讲解卷一份是学生的练习卷。助力师生构建 “讲练结合” 的学习闭环,适用于高考复习教学。
本专辑第51、第52卷精准对标安徽省考纲,知识模块(五)文件与数据:
1. 文件操作
2. 数据库的使用
安徽省分类招生和对口招生考试 电子与信息大类
《计算机编程基础—Python 语言》考点双析卷 第52卷
文件(2) 老师讲解卷
时间:45分钟 总分:100分
班级_______ 姓名_______ 学号_______ 成绩_______
一、单项选择题(本大题共10小题,每题3分,共30分)
1.以下代码的输出是( )
with open("test.txt", "r+") as f:
f.write("Python")
print(f.read())
原文件内容为"Hello"。
A.HelloPython B.Python C.Pythonlo D.空字符串
2.以下代码的输出是( )
with open("data.txt", "r") as f:
f.read(3)
print(f.tell())
假设文件内容为"Python"。
A.0 B.3 C.6 D.报错
3.以下关于seek()方法的描述,正确的是( )
A.只能从文件开头移动指针 B.参数必须是正整数
C.可设置相对位置的偏移量 D.无法在'a'模式下使用
4.以下代码的功能是( )
with open("data.txt", "w") as f:
f.write("123
456")
A.报错 B.写入一行数据"123
456"
C.覆盖文件原有内容 D.追加内容到文件末尾
5.以下哪个方法用于判断文件是否已关闭( )
A.isclosed() B.closed() C.closed D.fileclosed()
6.文件对象的readlines()方法返回的是( )
A.文件的全部内容 B.文件的某一行内容
C.文件的某几行内容 D.文件的每一行内容组成的列表
7.以只读模式打开文件,若文件不存在,则会( )
A.创建一个新文件 B.报错
C.返回空文件 D.自动切换到写模式
8.使用open()函数打开文件时,默认的文件打开模式是( )
A.'r' B.'w' C.'a' D.'b'
9.文件对象的seek()方法用于( )
A.查看文件指针位置 B.设置文件指针位置
C.读取文件内容 D.写入文件内容
10.使用文件对象的 方法可以读取文件的全部内容。( )
A.readall() B.read() C.readlineall() D.readlines()
二、填空题(本大题共5小题,每题4分,共20分)
11.sqlite3数据库中删除数据库表的操作,要使用__________语句。
12.使用 Pandas 读取 CSV 文件时,若文件编码为 GB2312,需通过 ________ 参数指定编码格式。
13.Python 文件,一般使用“____”扩展名。
14.在open()函数第二个参数中,设置为_____表示追加写模式。(填"r"、"w"或"a",并区分大小写)
15.open()函数有两个参数:文件名和____。
三、程序设计题(本大题共5小题,每题10分,共50分)
16.编写一个Python程序,实现以下功能:
① 读取当前目录下的input.txt文本文件;
② 将所有数字字符(0-9)替换为"#"符号;
③ 统计替换的数字字符总数;
④ 将替换后的内容保存到output.txt;
⑤ 在控制台输出替换统计信息。
17.(1)编写一个 Python 函数,实现以下功能:创建一个名为example.txt的文本文件,如果文件已存在,则覆盖内容。
将以下字符串写入到example.txt文件中:"Hello, World! This is a Python script that creates and writes to a file."
(2)读取example.txt文件的内容,并打印到控制台上。
18.编写程序将文件“test.txt”中的全部内容添加至文件“hello.txt”的内容后面,并将添加后的文件“hello.txt”的内容全部打印输出。(注:编写的程序文件与题中涉及的相关文件,都在同一层级的文件夹中)。
19.使用循环结构,将文件"test.txt"中的字母"A"或"a"替换成"%",其他内容不变(注:编写的程序文件与题中涉及的相关文件都处在同一层级的文件夹中)
20.打开一个文本文件统计文件行数并输出,使用 with 语句。
试卷第6页,共6页
试卷第5页,共6页
学科网(北京)股份有限公司
$
编写说明:安徽省普通高校对口招生专业理论和技能测试考试电子与信息大类《计算机编程基础—Python 语言考点双析卷》,依据《安徽省普通高校对口招生专业理论和技能测试考试纲要》编写。“考点双析卷”即围绕一个考点,一份是老师的讲解卷一份是学生的练习卷。助力师生构建 “讲练结合” 的学习闭环,适用于高考复习教学。
本专辑第51、第52卷精准对标安徽省考纲,知识模块(五)文件与数据:
1. 文件操作
2. 数据库的使用
安徽省分类招生和对口招生考试 电子与信息大类
《计算机编程基础—Python 语言》考点双析卷 第52卷
文件(2) 老师讲解卷
时间:45分钟 总分:100分
班级_______ 姓名_______ 学号_______ 成绩_______
一、单项选择题(本大题共10小题,每题3分,共30分)
1.以下代码的输出是( )
with open("test.txt", "r+") as f:
f.write("Python")
print(f.read())
原文件内容为"Hello"。
A.HelloPython B.Python C.Pythonlo D.空字符串
【答案】D
【详解】'r+'模式下写入"Python"会覆盖原来的内容,内容变为"Python",此时指针在文件的末尾。但read()会从当前指针位置读取剩余内容。
2.以下代码的输出是( )
with open("data.txt", "r") as f:
f.read(3)
print(f.tell())
假设文件内容为"Python"。
A.0 B.3 C.6 D.报错
【答案】B
【详解】f.read(3)读取前3个字符('Pyt'),此时文件指针移动到第3个位置,f.tell()返回当前指针位置3。
3.以下关于seek()方法的描述,正确的是( )
A.只能从文件开头移动指针 B.参数必须是正整数
C.可设置相对位置的偏移量 D.无法在'a'模式下使用
【答案】D
【详解】在'a'模式下,写入操作始终在文件末尾,seek()对写入位置无效。
4.以下代码的功能是( )
with open("data.txt", "w") as f:
f.write("123
456")
A.报错 B.写入一行数据"123
456"
C.覆盖文件原有内容 D.追加内容到文件末尾
【答案】C
【详解】'w'模式会覆盖原内容,写入的"123
456"包含换行符,实际会保存为两行。
5.以下哪个方法用于判断文件是否已关闭( )
A.isclosed() B.closed() C.closed D.fileclosed()
【答案】C
【详解】文件对象.closed查看文件是否关闭。
6.文件对象的readlines()方法返回的是( )
A.文件的全部内容 B.文件的某一行内容
C.文件的某几行内容 D.文件的每一行内容组成的列表
【答案】D
【详解】readlines()读取文件的每行内容返回一个列表。
7.以只读模式打开文件,若文件不存在,则会( )
A.创建一个新文件 B.报错
C.返回空文件 D.自动切换到写模式
【答案】B
【详解】只读方式打开文件,若文件不存在则报错。
8.使用open()函数打开文件时,默认的文件打开模式是( )
A.'r' B.'w' C.'a' D.'b'
【答案】A
【详解】默认文件打开模式就是r。
9.文件对象的seek()方法用于( )
A.查看文件指针位置 B.设置文件指针位置
C.读取文件内容 D.写入文件内容
【答案】B
【详解】文件对象.seek(index)用于设置文件的读取位置。
10.使用文件对象的 方法可以读取文件的全部内容。( )
A.readall() B.read() C.readlineall() D.readlines()
【答案】B
【详解】read()默认读取文件的全部内容。
二、填空题(本大题共5小题,每题4分,共20分)
11.sqlite3数据库中删除数据库表的操作,要使用__________语句。
【答案】drop
12.使用 Pandas 读取 CSV 文件时,若文件编码为 GB2312,需通过 ________ 参数指定编码格式。
【答案】encoding
13.Python 文件,一般使用“____”扩展名。
【答案】.py
【详解】Python 文件的扩展名通常是 .py。
14.在open()函数第二个参数中,设置为_____表示追加写模式。(填"r"、"w"或"a",并区分大小写)
【答案】"a"
【详解】"a"表示追加写模式。
15.open()函数有两个参数:文件名和____。
【答案】打开模式
【详解】open()函数的第二个参数是打开模式。
三、程序设计题(本大题共5小题,每题10分,共50分)
16.编写一个Python程序,实现以下功能:
① 读取当前目录下的input.txt文本文件;
② 将所有数字字符(0-9)替换为"#"符号;
③ 统计替换的数字字符总数;
④ 将替换后的内容保存到output.txt;
⑤ 在控制台输出替换统计信息。
【答案】with open("input.txt") as f_in, open("output.txt", "w") as f_out:
count = 0
for line in f_in:
new_line = []
for c in line:
if c.isdigit():
new_line.append("#")
count += 1
else:
new_line.append(c)
f_out.write("".join(new_line))
print(f"替换数字:{count}个")
17.(1)编写一个 Python 函数,实现以下功能:创建一个名为example.txt的文本文件,如果文件已存在,则覆盖内容。
将以下字符串写入到example.txt文件中:"Hello, World! This is a Python script that creates and writes to a file."
(2)读取example.txt文件的内容,并打印到控制台上。
【答案】(1)创建文件,如果存在则覆盖内容
with open('example.txt', 'w', encoding='utf-8') as file:
file.write("Hello, World! This is a Python script that creates and writes to a file.")
(2)读取文件内容并打印
with open('example.txt', 'r', encoding='utf-8') as file:
content = file.read()
print(content)
18.编写程序将文件“test.txt”中的全部内容添加至文件“hello.txt”的内容后面,并将添加后的文件“hello.txt”的内容全部打印输出。(注:编写的程序文件与题中涉及的相关文件,都在同一层级的文件夹中)。
【答案】f=open("test.txt",'r')
cont=f.readlines()
f.close()
w=open("hello.txt","a+")
w.writelines(cont)
w.seek(0)
print(w.read())
w.close()
【详解】# 以只读模式('r')打开当前目录下的test.txt文件,返回文件对象并赋值给变量f;
# 若test.txt不存在,此行会抛出FileNotFoundError异常
f=open("test.txt",'r')
# 调用文件对象f的readlines()方法,读取test.txt中所有内容,按行分割为字符串列表并赋值给cont;
# 例如test.txt内容是"abc
123",则cont = ["abc
", "123"](保留每行末尾的换行符)
cont=f.readlines()
# 关闭已打开的test.txt文件,释放系统文件句柄;
# 必须执行,否则会导致文件句柄泄露,占用系统资源
f.close()
# 以"a+"模式打开hello.txt文件,返回文件对象并赋值给变量w;
# "a+" = 追加模式(a)+ 读写扩展(+):写入内容追加到文件末尾,文件不存在则创建,同时支持读操作
w=open("hello.txt","a+")
# 调用文件对象w的writelines()方法,将cont列表中的所有字符串逐行写入hello.txt末尾;
# 该方法不会自动添加换行符,依赖readlines()读取时保留的换行符保证行结构
w.writelines(cont)
# 调用seek(0)将文件指针移动到文件开头(偏移量为0);
# 关键:a+模式下文件指针默认在末尾,直接read()会读取空内容,必须先移到开头才能读取全部内容
w.seek(0)
# 调用read()方法读取hello.txt从开头到末尾的所有内容,并打印到控制台;
# 此时读取的是包含原有内容+新追加内容的完整文件内容
print(w.read())
# 关闭hello.txt文件,释放文件句柄,完成文件操作收尾
w.close()
19.使用循环结构,将文件"test.txt"中的字母"A"或"a"替换成"%",其他内容不变(注:编写的程序文件与题中涉及的相关文件都处在同一层级的文件夹中)
【答案】with open("./guo.txt",'r') as f:
cont=f.readlines()
ncont=[]
for i in cont:
if 'A' in i or 'a' in i:
ncont.append(i.replace('A','%').replace('a','%'))
else:
ncont.append(i)
with open("./guo.txt",'w') as f:
cont=f.writelines(ncont)
【详解】 with open("./guo.txt",'r') as f: 以只读模式('r')打开当前目录下的guo.txt文件,使用with语句可自动关闭文件,避免资源泄露
cont=f.readlines() # # 读取文件中所有行内容,返回一个列表,每一行作为列表的一个元素,存储到cont变量中
ncont=[] 定义一个空列表ncont,用于存储处理后的数据
for i in cont: # 遍历cont列表中的每一行内容,i代表当前遍历到的行
if 'A' in i or 'a' in i: # 判断当前行中是否包含大写字母'A'或小写字母'a'
ncont.append(i.replace('A','%').replace('a','%')) # 若包含,将行中的'A'替换为'%',再将替换后的内容中的'a'替换为'%',最后添加到ncont列表
else:
ncont.append(i) # 若不包含'A'和'a',直接将当前行添加到ncont列表,不做修改
with open("./guo.txt",'w') as f: # 以写入模式('w')打开guo.txt文件,该模式会清空文件原有内容,再写入新内容
f.writelines(ncont)# 将处理完成后ncont列表中的所有行内容,写入到guo.txt文件中
20.打开一个文本文件统计文件行数并输出,使用 with 语句。
【答案】with open('your_file.txt', 'r', encoding='utf-8') as file:
line_count = 0
for line in file:
line_count += 1
print(f"文件总共有 {line_count} 行")
试卷第6页,共6页
试卷第5页,共6页
学科网(北京)股份有限公司
$