目录

  • 前言
    • ●  Python解释器安装
    • ●  PyCharm开发环境
  • Python程序设计实验
    • ●  实验1 IDLE与代码编写规范
    • ●  实验2 输入输出与数据类型
    • ●  实验3 字符串处理
    • ●  实验4 数据运算
    • ●  实验5 列表与元组应用
    • ●  实验6 字典与集合应用
    • ●  实验7 if语句与match语句
    • ●  实验8 使用循环语句
    • ●  实验9 异常处理
    • ●  实验10 函数应用
    • ●  实验11 类的应用
    • ●  实验12 模块应用
    • ●  实验13  应用re模块
    • ●  实验14 文件处理
    • ●  实验15 用户界面设计
    • ●  实验18 SQLite数据库应用
    • ●  理论考试模拟试题A
    • ●  理论考试模拟试题B
    • ●  理论考试模拟试题C
    • ●  理论考试模拟试题D
  • 学习参考
    • ●  01 Python及其IDLE环境
    • ●  02 Python代码规范
    • ●  03 常量和变量
    • ●  04 输入输出
    • ●  05 运算符
    • ●  06 数值类型
    • ●  07 字符串
    • ●  08 列表
    • ●  09 元组
    • ●  10 字典
    • ●  11 集合
    • ●  12 条件语句
    • ●  13 循环语句
    • ●  14 异常处理
    • ●  15 自定义函数
    • ●  16 内置函数
    • ●  17 模块导入与定义
    • ●  18 math模块
    • ●  19 os模块
    • ●  20 time模块
    • ●  21 random模块
    • ●  22 文本文件
    • ●  23 二进制文件
    • ●  24 类的创建和使用
    • ●  25 类的继承与多态
 理论考试模拟试题B

单选题:(20*3分,共60分)

1、以下不是Python语言保留字的是______。

A、lambda

B、pass

C、await

D、do

AN:D

评析:do不是保留字,d开头的保留字只有def和del。在IDLE文件窗口中,单词do为黑色,其他单词为橙色,橙色部分为保留字或关键字

 

2、以下不是Python文件操作方法的是______。

A、load

B、seek

C、read

D、write

AN:A

评析:文件读取方法:read、readline、readlines、seek,文件写入方法:write、writelines。

 

3、以下程序的输出结果是______。

ls=['绿茶','乌龙茶','红茶','白茶','黑茶']

x='乌龙茶'

print(ls.index(x,0))

A、1

B、0

C、-3

D、-4

AN:A

评析:s.index(x):序列s中第一次出现元素x的位置。索引序号从0开始,所以第一次出现'乌龙茶'的位置是1。

 

4、在Python语言中,不属于组合数据类型的是______。

A、列表类型

B、字符串类型

C、复数类型

D、字典类型

AN:C

评析:Python语言中的组合数据类型包括集合类型、序列类型(列表类型)和映射类型(字典类型),而复数类型属于基本数据类型中的数字类型。

 

5、以下语句的执行结果是______。

dd={'a':90,'b':87,'c':93}

print(max(dd),min(dd))

A、c a

B、93 90

C、c b

D、93 87

AN:A

评析:字典由键值对组成,max(d)输出的是最大值对应的键,min(d)输出的是最小值对应的键。

 

6、关于以下代码的描述中,错误的是______。

def func(a,b):

    c=a**2+b

    b=a

    return c

a=10

b=100

c=func(a,b)+a

A、该函数名称为func

B、执行该函数后,变量c的值为200

C、执行该函数后,变量b的值为100

D、执行该函数后,变量a的值为10

AN:B

评析:代码的执行过程:c = func(a,b)+a = func(10,100)+10 = 10**2+100+10 = 210。执行代码后,变量c的值为210,不是200。

 

7、对于字典d,以下选项对d.values( )的描述正确的是______。

A、返回一个集合类型,其中包括字典d的所有值

B、返回一个列表类型,其中包括字典d的所有值

C、返回一个元组类型,其中包括字典d的所有值

D、返回一个dict_values类型,其中包括字典d的所有值

AN:D

评析:d.values( )返回字典中给的所有值信息,返回结果是Python的一种内部数据类型dict_values。

 

8、以下关于函数返回值的描述中,正确的是______。

A、Python函数的返回值使用很灵活,可以没有返回值,可以有一个或多个返回值

B、函数定义中最多含有一个return语句

C、在函数定义中使用return语句时,至少给一个返回值

D、函数只能通过print语句和return语句给出运行结果

AN:A

评析:函数定义中可以含有多个return语句,可以返回0个、1个或多个函数运算的结果。函数可以没有return,此时函数不返回值。

 

9、列表变量ls共包含10个元素,ls索引的取值范围是______。

A、-1到-9(含)的整数

B、0到10(含)的整数

C、1到10(含)的整数

D、0到9(含)的整数

AN:D

评析:列表的索引采用正向递增序号或反向递减序号,正向递增序号从0开始,即ls索引的取值范围是0到9(含)的整数;反向递减符号从-1开始,即ls索引的取值范围是-1到-10(含)的整数。

 

10、表达式"Python编程是方向"[2:-2]的结果是______。

A、"ython编程是"

B、"ython编程是方"

C、"thon编程是"

D、"thon编程是方"

AN:C

 

11、以下描述错误的是______。

A. 编程语言中的异常和错误是完全相同的概念

B. 当Python脚本程序发生了异常,如果不处理,运行结果不可预测

C. try-except可以在函数、循环体中使用

D. Python通过try、except等保留字提供异常处理功能

AN:A

评析:虽然在日常交流中人们可能会混用“错误”和“异常”,但在编程语言中它们是有区别的:错误(Error)通常指解释器在执行过程中遇到的严重问题,如系统错误、内存溢出等,这类情况通常是无法捕获或恢复的。异常(Exception)是指程序在执行过程中发生的、可以被捕获并处理的不正常情况,例如除以零(ZeroDivisionError)、文件未找到(FileNotFoundError)等。

 

12、关于Python的循环控制,以下描述错误的是______。

A、break和continue可以用于遍历循环和无限循环

B、else也可以与循环搭配使用

C、break将退出所有层次的循环

D、continue将结束当次循环

AN:C

评析:break只能退出当前层次的循环。

 

13、以下关于控制结构的描述,错误的是______。

A、Python的单分支结构里,包含else语句

B、Python的多分支结构,指的是既包含else语句块,也包含elif语句块

C、使用range(1,10)函数,指定语句块的循环次数是9次

D、Python的for循环结构是对遍历结构各元素进行处理

AN:A

评析:Python的单分支结构使用if保留字对条件进行判断;二分支结构使用if-else保留字对条件进行判断;多分支结构使用if-elif-else保留字对多个相关条件进行判断。

 

14、以下代码的输出结果是______。

fo =open("book.txt","w")

ls = ['book','23','201009','20']

fo.writelines(ls)

fo.close( )

A、[book,23,201009,20]

B、book,23,201009,20

C、book2320100920

D、['book','23','201009','20']

AN:C

评析:fo.writelines(lines)方法的含义是将一个元素为字符串的列表整体写入文件。

 

15、以下关于文件的描述,错误的是______。

A、以文本方式读打开一个文件,读入后能对文件进行写操作

B、以文本方式打开一个空文件,追加方式写入文件,参数用'a+'

C、以文本方式写打开一个文件,不能对文件进行读操作

D、打开文件的参数'+',表示在原打开模式基础上,可以对文件进行读写

AN:A

评析:以文本方式读打开一个文件,该文件是只读状态,不能进行写操作。

 

16、以下方法能返回列表数据类型的选项是______。

A、s.split( )

B、s.strip( )

C、s.replace( )

D、s.center( )

AN:A

评析:str.split(sep=None):返回一个列表,由str根据sep被分割的部分构成,省略sep默认以空格分割。str.strip(chars):从字符串str中去掉在其左侧和右侧chars中列出的字符。str.replace(old,new):返回字符串str的副本,所有old子串被替换为new。str.center(width,fillchar):字符串居中函数,fillchar参数可选。

 

17、time库的time.time( )函数作用是______。

A、以数字形式返回当前系统时间

B、以字符串形式返回当前系统时间

C、以struct_time形式返回当前系统时间

D、根据format格式定义返回当前系统时间

AN:A

评析:使用time.time( )获取当前时间戳,返回值为数字形式。

 

18、以下程序的输出结果是:

dd={'a':90,'b':87,'c':93}

print([[dd[x],x] for x in sorted(dd)])

A、[[93,'c'],[90,'a'],[87,'b']]

B、[[90,'a'],[87,'b'],[93,'c']]

C、[[87,'b'],[90,'a'],[93,'c']]

D、[[90,a],[87,b],[93,c]]

AN:B

评析:本题考查的是字典,sorted(dd)是按键item排序,所以是a,b,c。然后把键值互换一下输出,即[[90,'a'],[87,'b'],[93,'c']]。

 

19、以下语句的执行结果是______。

dic = {90:'Aele',87:'Bob',93:'lala'}

print(dic.pop(90,-1),len(dic))

A、Aele 3

B、-1 3

C、Aele 2

D、-1 2

AN:C

评析:pop(key[,default])方法删除字典给定键key及对应的值,返回值为被删除的值。key值必须给出,否则返回default值。题中删除键90及其对应的值,返回值为Aele,此时字典中元素为2,则长度为2。

 

20、以下代码的输出结果是______。

d = { }

for i in range(26):

    d[chr(i+ord("a"))] = chr((i+13) % 26+ ord("a"))

for c in "Python":

    print(d.get(c,c),end="")

A、Pabugl

B、Plguba

C、Cabugl

D、Python

AN:B

 

是非题:(10*1,共10分)

21、设a=sum([1 for xin range(100) if x%9])。下面代码是等效的。

a=0

for x in range(100):

      a+=(x%9>0)

 

22、以下代码的作用是:输入整数a,输出[1,a]上全部整数的和。

s=0

a=int(input( ))

for i in range(1,a+1): s+=i

print(s)

 

23、设a=len([1 for xin range(100) if x%9])。下面代码是等效的。

a=0

for x in range(100):

      if x%9:a+=1


24、执行以下程序后,s的值是1035。

k,s=1,0

while True:

   s+=k;k+=1

   if s>1000:break

 

25、以下代码执行完毕后,会输出一个由"*"构成的三角形,其中三角形每行"*"号的个数是由i in range(1,5)控制的。

for i in range(1,5):

   for j in range(1,i+1):

       print("*",end="")

   print( )

 评析:for i in range(1,5)控制的是输出多少行, for j in range(1,i+1)控制的是输出多少个星号。


26、类Student的定义如下,则studentNum为类属性。

class Student( ):

   studentNum=0

   def __init__(self,name,age):

       self.name=name

       self.age=age

评析:类中的变量如果定义在类体中、但在任何方法之外,就被称为类属性。这类属性属于类本身,而不是类的实例。对象属性定义在方法中(通常是在 __init__ 方法中)。对象属性只能通过实例访问。 studentNum为类属性,name和age为对象属性。

 

27、 以下程序的输出是:500

class account:

    def __init__(self, id, balance):

        self.id = id; self.balance = balance  

    def deposit(self, amount): self.balance +=amount

    def withdraw(self, amount): self.balance -=amount

acc1 = account('1234', 100);acc1.deposit(500)

acc1.withdraw(200); print(acc1.balance)

 

28、 执行以下代码后b的值是: 377

a,b=0,1

while b<500:a,b=b,a+b

 

29、 执行以下代码后,如果输入的是"abcABC12,34",则ord(a)-ord(b)的值是55。

s=input( )

a=max(s)

b=min(s)

print(ord(a)-ord(b))

 

30、 运行以下代码时,输入"-36"时n的值是-1。

s=input( )

try:

    n=int(s)

    assert n>0

except:n=-1

 

程序改错题:(共10分)

31、程序PY121.py的功能是,随机生成100以内的6个随机数。程序运行后,

输出:今天的幸运数字为:98,90,58,50,22,18。

代码注释下方有错误,请改正后运行。

#**************found**************#

import random from seed,sample            #import 和from格式错了

#**************found**************#

seek(100)                        #seek( )是文件对象的指针定位函数,seed( )为随机模块中的种子函数

x=sample(range(100),6)

#**************found**************#

x.sort( )            #sort排序默认是升序排列,题目要求降序排列

result = str(x).replace(" ","")[1:-1]

print(f"今天的幸运数字为:{result}")

 

程序填空题:(共15分)

32、在考生文件夹(D:\Exam\Python程序设计\20******\32)下存在一个Python源文件py240.py,请编写代码替换横线,不修改其他代码,实现下面功能:

逐一输入成绩,计算平均分(保留两位小数)并统计人数。当输入-1时,成绩统计结束;通过断言判断成绩是否在[0,100]范围内,捕捉异常给出“成绩必须是0-100之间的数”的信息;示例如下(其中数据仅用于示意):

输入:90

输入:80

输入:-1

输出:总人数2,平均分为85.0

# _*_ coding:gbk _*_

#**************found**************#

___________(1)___________:

   s=0

   c=0

   n=float(input("输入成绩:"))

   while True:

       assert 0<=n<=100,"成绩必须是0-100之间"

       s+=n

#**************found**************#

       ___________(2)___________                #c = c + 1 或c + = 1

       n=float(input("输入成绩:"))

       if n<0:

#**************found**************#

           ___________(3)___________

#**************found**************#

   print(f"总人数___________(4)___________,平均分为{round(s/c,2)}")

#**************found**************#

except Exception ___________(5)___________e:        # as

   print("异常错误:",e)

 

编程题:(共5分)

33、程序PY052.py中函数fun(x)的功能是:保持列表x的奇数位数据不变,偶数位右移(最后一个偶数位移到第一个偶数位),处理结果作为函数返回值。请在指定位置编写程序代码,使程序能输出正确结果。程序运行结果如下:

输入列表元素(逗号分隔): 1,2,3,4,5,6

输出:[1, 6, 3, 2, 5, 4]

 

def fun(x):

#请在注释内输入程序代码

    a = x[1::2]            # 提取偶数位

    a = [a[-1]] + a[:-1]    # 最后一个元素放到最前面,其他偶数位右移一位

    x[1::2] = a        #将修改后的偶数位重新写入原列表对应位置

    return x

#

  

# 主程序

x = input("输入列表元素(逗号分隔):")

x = list(eval(x))

print(fun(x))