试题

试题 试卷

logo

题型:综合题 题类: 难易度:困难

浙江省绍兴市重点中学2022-2023学年高二下学期信息技术6月学考模拟试卷

图书查询。所有正版图书均有唯一的国际标准书号(ISBN),ISBN由13位数字和字符“-”组成,字符“-”对数字间隔分段。如:某图书的ISBN为“978-7-5536-3176-9”(其中“978”表示图书类代码,“7”表示地区码,“5536”表示出版社代码,“3176”表示书序码,“9”为校验码)。小李为某校园书吧编写了图书查询的程序。

(1)、主程序

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 .输出“操作结束”)。

(2)、读写文件

小李将校园书吧库存图书信息存储在文件"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]

        #添加到列表
lst.append([isbn,num,price])

return

(3)、校验码验证

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

(4)、统计校园书吧中某出版社出版的所有图书总价

'''列表 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

举一反三
返回首页

试题篮