这份试卷旨在考察学员对Python核心基础知识的掌握程度,包括变量、数据类型、流程控制、函数、数据结构等关键概念,题目由浅入深,既有基础的选择题和填空题,也有需要动手实践的编程题。

python基础教程期中测试题
(图片来源网络,侵删)

Python 基础教程期中测试

考试时间: 90分钟 总分: 100分


选择题 (每题3分,共30分)

  1. 下列哪个是Python合法的变量名? A. 2variable B. my_variable C. my-variable D. global

  2. 以下哪个数据类型是不可变的? A. list B. dict C. set D. tuple

  3. 执行 s = "Hello World" 后,s[6] 的值是什么? A. B. 'W' C. 'o' D. 会抛出 IndexError 异常

    python基础教程期中测试题
    (图片来源网络,侵删)
  4. 以下哪个循环会无限执行下去? A. for i in range(10): B. i = 0; while i < 10: i += 1 C. i = 1; while i: i -= 1 D. for i in []:

  5. x = [1, 2, 3, 4],执行 x.pop(1) 后,x 的值是多少? A. [1, 2, 3, 4] B. [1, 3, 4] C. [2, 3, 4] D. [1]

  6. 关于函数,下列说法错误的是? A. 函数通过 def 关键字定义。 B. return 语句用于从函数中返回一个值。 C. 函数必须有参数。 D. 函数内部定义的变量是局部变量。

  7. 以下哪个表达式计算的是 10 除以 3 的余数? A. 10 / 3 B. 10 // 3 C. 10 % 3 D. 10 \ 3

    python基础教程期中测试题
    (图片来源网络,侵删)
  8. my_dict = {'name': 'Alice', 'age': 25},如何获取 'name' 对应的值? A. my_dict('name') B. my_dict['name'] C. my_dict.get('name') D. B和C都正确

  9. if not (False or True) and True: 的布尔值是? A. True B. False C. None D. 0

  10. 以下哪个代码块可以正确地交换变量 ab 的值? A.

    a = 1
    b = 2
    a = b
    b = a

    B.

    a = 1
    b = 2
    b, a = a, b

    C.

    a = 1
    b = 2
    temp = a
    a = b
    b = temp

    D. B和C都正确


填空题 (每空2分,共20分)

  1. Python中,用于获取用户输入的函数是 ____
  2. 一个列表 my_list = [10, 20, 30],使用 for 循环遍历它的语法是 for item in ________
  3. if-elif-else 结构中,elif 的数量是 ____(有限/无限)的。
  4. 字典中的元素通过键来访问,而不是通过索引,所以字典是 ____ 的数据结构。
  5. 要判断一个变量 num 是否为偶数,可以使用表达式 num % 2 ________ 0
  6. Python中,range(5) 会生成一个从 ________(不包括)的数字序列。
  7. 函数内部的局部变量和函数外部的全局变量同名时,函数内部默认会访问 ____ 变量。
  8. 字符串 "Python" 的长度是 ____
  9. 使用 运算符连接两个列表,如 [1, 2] + [3, 4],结果是 ____
  10. 要在字符串中换行,可以使用转义字符 ________

阅读程序题 (每题5分,共20分)

请写出以下代码的执行结果。

  1. 代码一:

    for i in range(3):
        for j in range(2):
            print(f"i={i}, j={j}")

    输出结果:

  2. 代码二:

    numbers = [1, 2, 3, 4, 5]
    total = 0
    for num in numbers:
        if num % 2 == 0:
            total += num
    print(total)

    输出结果:

  3. 代码三:

    def greet(name, greeting="Hello"):
        return f"{greeting}, {name}!"
    print(greet("Alice"))
    print(greet("Bob", "Hi"))

    输出结果:

  4. 代码四:

    s = "abracadabra"
    print(s[1:5])
    print(s[::2])

    输出结果:


程序填空题 (每空5分,共15分)

要求,补全以下代码。

  1. 题目: 计算从1到100所有整数的和。

    total_sum = 0
    for i in range(1, ________):
        total_sum += ________
    print(f"1到100的和是: {total_sum}")
  2. 题目: 判断一个列表中是否包含负数。

    my_numbers = [10, 20, -5, 30, 40]
    has_negative = False
    for num in my_numbers:
        if ________:
            has_negative = True
            break  # 找到一个后立即退出循环
    if has_negative:
        print("列表中包含负数。")
    else:
        print("列表中不包含负数。")
  3. 题目: 定义一个函数,接收一个列表作为参数,并返回列表中的最大值。

    def find_max(numbers):
        if not numbers:
            return None  # 如果列表为空,返回None
        max_num = numbers[0]
        for num in numbers:
            if num > max_num:
                ________
        return max_num
    print(find_max([10, 50, 20, 100, 5])) # 应该输出 100

编程题 (共15分)

编写一个程序,实现一个简单的猜数字游戏**。

游戏规则:

  1. 程序随机生成一个1到100之间的整数。
  2. 让用户输入一个猜测的数字。
  3. 程序根据用户的输入给出提示:“猜大了!”、“猜小了!”或“恭喜你,猜对了!”。
  4. 如果猜对了,游戏结束,如果猜错了,用户可以继续猜测,直到猜对为止。

要求:

  1. 使用 random 模块的 randint() 函数来生成随机数,记得先导入模块。
  2. 使用一个 while 循环来持续接收用户的猜测。
  3. 需要将用户输入的字符串转换为整数。

请编写完整的代码:

# 在此处开始编写你的代码

参考答案

选择题

  1. B
  2. D
  3. B (字符串索引从0开始)
  4. C (i 从1开始,每次减1,永远大于0)
  5. B (pop(index) 会移除指定索引的元素)
  6. C (函数可以没有参数)
  7. C ( 是取模运算符)
  8. D (两种方式都可以)
  9. B (先算括号内 False or TrueTrue,再算 not TrueFalseFalse and TrueFalse)
  10. D

填空题

  1. input()
  2. my_list
  3. 有限
  4. 无序
  5. 0, 5
  6. 局部
  7. 6
  8. [1, 2, 3, 4]
  9. \n

阅读程序题

  1. 输出结果:

    i=0, j=0
    i=0, j=1
    i=1, j=0
    i=1, j=1
    i=2, j=0
    i=2, j=1
  2. 输出结果:

    6
  3. 输出结果:

    Hello, Alice!
    Hi, Bob!
  4. 输出结果:

    brac
    aacaa

程序填空题

  1. 101, i
  2. num < 0
  3. max_num = num

编程题

import random
def guess_the_number_game():
    """
    一个简单的猜数字游戏。
    """
    # 1. 生成1到100之间的随机数
    secret_number = random.randint(1, 100)
    print("欢迎来到猜数字游戏!我已经想好了一个1到100之间的整数。")
    while True:
        # 2. 获取用户输入
        try:
            guess_str = input("请输入你猜的数字: ")
            guess = int(guess_str)
        except ValueError:
            print("输入无效,请输入一个整数。")
            continue  # 如果输入的不是数字,则跳过本次循环,重新输入
        # 3. 比较并给出提示
        if guess > secret_number:
            print("猜大了!")
        elif guess < secret_number:
            print("猜小了!")
        else:
            print(f"恭喜你,猜对了!答案就是 {secret_number}。")
            break  # 4. 猜对后,退出循环
# 启动游戏
if __name__ == "__main__":
    guess_the_number_game()