题型:综合题 题类: 难易度:困难
浙江省绍兴市重点中学2022-2023学年高二下学期信息技术6月学考模拟试卷
lst1=readfile("in.csv")# 校园书吧库存图书信息存储在文件"in.csv"
while True:
print("1.验证 ISBN 校验码; 2.统计出版社费用; 3.操作结束")
opt=int(input("请输入操作编号(1-3):"))
if opt==1:
isbn=input("请输入 ISBN 号:")
if check(isbn):
print("校验码正确")
else:
print("校验码错误")
elif opt==2:
code=input("请输入出版社代码:")
money=total(code)
print("书吧中该出版社出版的图书总价:%.2f 元" %money) #输出的总金额保留 2 位小数点
else:
print("操作结束")
break
运行程序,若输入opt值为 4,程序将(单选,填字母;A .运行时报错/ B .输出“操作结束”)。
小李将校园书吧库存图书信息存储在文件"in.csv"中,内容如图所示。函数readfile()用于逐行读取文件数据存入列表并返回。请在划线处填入合适的代码。
import pandas as pd
def readfile(filename): #读 csv 格式文件内容,将其存入列表并返回
df1=pd.read_csv(filename, encoding="GBK")
lst=[]
for i in df1.index:
isbn=df1["ISBN"][i]
num=df1["图书数量"][i]
price=df1["单价 (元) "][i]
#添加到列表return
ISBN最后一位的校验码用来检验前12位数字是否准确,是保护知识产权的一种检验方法。计算方法如下:
①将ISBN中前12位数字从左到右依次编号为“1、2、3、……、12”。
②若数字编号是奇数,则对应权值为1,否则权值为3。首先将ISBN中前12位的数字值与对应权值相乘,然后将计算所得值进行累加。
③最后,用10减去第②步结果对10整除的余数,所得结果即为校验码。
defcheck(ISBN): #对ISBN校验码验证
n=len(ISBN)
val=0; k=3
for i in range(0,n-1):
if '0'<=ISBN[i]<='9':
k=4-k
val+=int(ISBN[i])*k
if result==int(ISBN[-1]):
return True
else:
return False
'''列表 lst1 中的部分数据如:
[['978-7-5139-3066-6',7,59.80],['978-7-5063-3174-6',9,48.00] , ……]
'''
def total(code): #统计书吧中出版社代码为 code 的所有图书总价
n=len(lst1);money=0
for i in range(n):
isn=lst1[i][0].split('-') #将 list1[i][0]以“- ”为分隔符,分割成多个字符串组成的列表
if isn[2]==code:
return money
试题篮