学习大数据DAY36 Python最终阶段测试

目录

[一、选择题 每题 3 分,共 30 分](#一、选择题 每题 3 分,共 30 分)

[二、编程题 (共 70 分)](#二、编程题 (共 70 分))

接下来遇到:


一、选择题 每题 3 分,共 30 分

1.print("ab" + "c"*2)的结果是?( C )
A. abc2
B. abcabc
C. abcc
D. ababcc
2.程序代码如下
try:
number = int(input("请输入数字:"))
print("number:",number)
print("=hello")
except Exception as e: # 报错错误日志
print("打印异常详情信息: ",e)
else:
print("没有异常")
输入的是 1a 结果是?(D) X 正确答案:B
A. number: 1 打印异常详情信息: invalid literal for int() with base 10:
'1a'
B. 打印异常详情信息: invalid literal for int() with base 10:'1a'
C. hello=== 打印异常详情信息: invalid literal for int() with base 10:
'1a'
D. 以上都不正确
3. 关于面向对象的继承,以下选项中描述正确的是?( C) X 正确答案:B
A. 继承是指一组对象所具有的相似性质
B. 继承是指类之间共享属性和操作的机制
C. 继承是指各对象之间的共同性质
D. 继承是指一个对象具有另一个对象的所有属性
4.下面的语句哪个会无限循环下去?( B)
A. for a in range(10): time.sleep(10)
B. while 1<10: time.sleep(10)
C. while True: break
D. a = [3,-1,','] for i in a:
continue 5.下面这段代码运行结果是? numbers = [1, 2, 3, 4]
numbers.append([5,6,7,8])
print(len(numbers)) ( B)
A. 4
B. 5
C. 6
D. 8
6.以下关于循环控制语句描述错误的是哪一项______。( B)
A、Python 中的 for 语句可以在任意序列上进行迭代访问,例如列表、字符串
和元组。
B、在 Python 中 if...elif...elif...结构中必须包含 else 子句。
C、在 Python 中没有 switch-case 的关键词,可以用 if...elif...elif...来等
价表达。
D、循环可以嵌套使用,例如一个 for 语句中有另一个 for 语句,一个 while 语
句中有一个
for 语句等。
7、关于 Python 程序格式框架的描述,以下选项中错误的是(B)。
A.判断、循环、函数等语法形式能够通过缩进包含一批 Python 代码,进而表达
对应的语义
B.Python 语言可以不采用严格的"缩进"来表明程序的格式框架
C.Python 单层缩进代码属于之前最临近的一行非缩进代码,多层缩进代码根据
缩进关系决
定所属范围
D.Python 语言的缩进可以使用 Tab 键实现
8.关于列表的说法,描述有错误的是(D
)。
A.list 是一个有序的列表,没有固定大小
B.list 可以存放任意类型的元素
C.使用 list 时,其下标可以是负数
D.list 是不可变长的
9、以下关于字典操作的描述中,错误的是( D)
A. del()用于删除字典或者元素
B. clear()用于清空字典中的数据
C. len()方法可以计算字典中键值对的个数
D. keys()方法可以获取字典的值视图
10.下列有关函数的说法中,正确的是(C
)。
A.函数的定义必须在程序的开头
B.函数定义后,其中的程序就可以自动执行
C.函数定义后需要调用才会执行
D.函数体与关键字 def 必须左对齐

二、编程题 (共 70 分)

1.对一个列表进行处理,将该列表中的邮箱用户的号进行提取,输出号列表,使
用通用做法。
附上所有代码,并将运行结果截图。(10 分)
list1=["567322456@qq.com","22948593@qq.com","sina4532214@163.com"]
输出:

'567322456', '22948593', 'sina4532214'



2.编写函数,传入一个名字列表,例如:name = ['王者智慧','李有钱'],将所
有人名进行
脱敏处理,使用*替换除第一个字以外的其他字,要求有多少个字被替换则显示
几个*,返回
列表并输出,使用通用做法。附上所有代码,并将运行结果截图。(10 分)
输出:['王***','李**']
name = [ ' 王者智慧 ' , ' 李有钱 ' ]
for i in name :
for j in i :
if j != i [ 0 ]:
i = i . replace ( j , '*' )
print ( name )
X 本人重写:

3.定义一个学校人员类 SchoolPerson,其中,属性:姓名 sname、密码 spwd;
方法:打印
信息的 print_info 方法。
创建学生类 Student,继承自 SchoolPerson 类,添加额外属性:学号 sno。 添加方法:打印学生的所有信息 print_info 方法。
定义学生类的对象。输出如下:
姓名是:周杰伦,密码是:123456,学号是:s001
姓名是:刘德华,密码是:888888,学号是:s002
附上所有代码,并将运行结果截图。(10 分)

python 复制代码
class SchoolPerson:
sname=""
spwd=""
def print_info(self):
print(f"姓名是:{self.sname},密码是:{self.spwd}")
def __init__(self,sname,spwd):
self.sname=sname
self.spwd=spwd
class Student(SchoolPerson):
sno=""
def print_info(self):
print(f"姓名是:{self.sname},密码是:{self.spwd},学号是:
{self.sno}")
def __init__(self,sname,spwd,sno):
super().__init__(sname,spwd)
self.sno=sno
if __name__=="__main__":
zhoujielun=Student("周杰伦","123456","s001")
liudehua=Student("刘德华
","888888","s002")zhoujielun.print_info()
liudehua.print_info()

4.有已知文件 t1.txt
t1.txt
利用文件操作读取内容并处理后写入到文件 t2.txt 中。t2.txt 格式如下:
附上所有代码,并将运行结果截图。(15 分)
with open ( "D: \\ t1.txt" , mode = 'r' , encoding = 'UTF-8' ) as f :
result = f . read ()
f . close ()
list1 =[]
dict1 ={}
with open ( "D: \\ t1.txt" , mode = 'a' , encoding = 'UTF-8' ) as g :
for i in result :
for j in i :
if j == i [ 0 ]:
dict1 [ 'id' ]= j
elif j == i [ 1 ]:
dict1 [ 'name' ]= j
elif j == i [ 2 ]: dict1 [ 'age' ]= j
elif j == i [ 3 ]:
dict1 [ 'phone' ]= j
elif j == i [ 4 ]: dict1 [ 'job' ]= j
list1 . append ( dict1 )
X 参考答案:

python 复制代码
info=""
with open("/root/python/t1.txt",mode="r",encoding="utf-8") as f:
info=f.readlines()
f.close()
with open("/root/python/t2.txt",mode="w",encoding="utf-8") as f:
f.write("[\n")
dict1={}
for i in info:
list1=i.split(",")#分割为列表
dict1["id"]=list1[0]
dict1["name"]=list1[1]
dict1["age"]=list1[2]
dict1["phone"]=list1[3]
dict1["job"]=list1[4].replace("\n","")
f.write(str(dict1)+"\n")
f.write("]")
f.close()

5、在第三题的基础上完成,已知数据库表及数据如下:
create table if not exists student(
sname varchar ( 20 ),
spwd varchar ( 20 ),
sno varchar ( 10 ) primary key
) ;
insert into student values ( '周杰伦' , '123456' , 's001' ) ;
insert into student values ( '刘德华' , '888888' , 's002' ) ;
使用三层架构+mysql+html+flask 完成登录功能,
效果如下:
账号密码正确则提示登录成功,错误则提示登录失败
附上所有代码,并将运行结果截图。(25 分)
X 参考答案:
DAL.py:

python 复制代码
import pymysql
class DBHelper:
#方法
def openDB(self):
global conn
conn=pymysql.connect(host="192.168.159.129",user="root",password="root123456",
database="test",charset="utf8")
def self.closeDB(self):
baoma.close()
conn.close()
#数据增删改
def edit(self,sql):
self.openDB()
baoma=conn.cursor()
result=baoma.execute(sql)
conn.commit()
self.closeDB()
return result
#查询一条
def selectOne(self,sql):
self.openDB()
baoma=conn.cursor()
baoma.execute(sql)
result=baoma.fetchone()
self.closeDB()
return result
#查询多条
def selectAll(self,sql):
self.openDB()
baoma=conn.cursor()
baoma.execute(sql)
result=baoma.fetchall()
self.closeDB()
return result
class StudentDAL(DBHelper):
def login(self,xuesheng):
sql=f"select * from student where sno='{xuesheng.sno}' and
spwd='{xuesheng.spwd}'"
return self.selectOne(sql)

BLL.py:

python 复制代码
from flask import Flask,render_template, request
from DAL import StudentDAL
from Model import Student
db=StudentDAL()
app=Flask(__name__)
@app.route("/")def index():
return render_template("login.html")
@app.route("/loginSubmit",methods=['POST'])
def addSubmit():
sno=request.form.get("sno")
spwd=request.form.get("spwd")
xuesheng=Student("",spwd,sno)
result=db.login(xuesheng)
if result!=None:
return "登录成功"
else:
return "登录失败"
if __name__=="__main__":
app.run(host="127.0.0.1",port="5000",debug=True)

Login.html:

html 复制代码
<html>
<head>
<title>登录</title>
<meta charset="utf-8"/>
</head>
<body>
<h1>*****登录*******</h1>
<form method="post" action="/login">
<p>
账号:<input type="text" name="sno"/>
</p>
<p>
密码:<input type="password" name="spwd"/>
</p>
<p>
<input type="submit" value="登录"/>
</p>
</form>
</body>
</html>

我考试前还一脸自信的,结果真考到知识盲区了,再加上VSCODE远程连接一直没连上,心态有点崩。考的很差,我会继续努力的。

接下来遇到:

相关推荐
凛铄linshuo3 分钟前
爬虫简单实操2——以贴吧为例爬取“某吧”前10页的网页代码
爬虫·python·学习
牛客企业服务6 分钟前
2025年AI面试推荐榜单,数字化招聘转型优选
人工智能·python·算法·面试·职场和发展·金融·求职招聘
胡斌附体18 分钟前
linux测试端口是否可被外部访问
linux·运维·服务器·python·测试·端口测试·临时服务器
大春儿的试验田1 小时前
高并发收藏功能设计:Redis异步同步与定时补偿机制详解
java·数据库·redis·学习·缓存
likeGhee1 小时前
python缓存装饰器实现方案
开发语言·python·缓存
项目題供诗1 小时前
黑马python(二十五)
开发语言·python
读书点滴1 小时前
笨方法学python -练习14
java·前端·python
笑衬人心。2 小时前
Ubuntu 22.04 修改默认 Python 版本为 Python3 笔记
笔记·python·ubuntu
蛋仔聊测试2 小时前
Playwright 中 Page 对象的常用方法详解
python
金色光环2 小时前
【Modbus学习笔记】stm32实现Modbus
笔记·stm32·学习