Python基础理论阶段考试试卷

基础理论阶段考试试卷

满分:100分

一、选择题(25,每题2分,共50分

1. 在Python中,哪个关键字用于定义函数?B

   A. `function`

   B. `def`

   C. `procedure`

   D. `method`

2. 下列哪种数据类型不是Python的内建数据类型?D

   A. tuple

   B. list

   C. string

   D. vector

3. 下列哪个操作符用于字符串连接?A

   A. +

   B. *

   C. /

   D. %

4. 如何导入一个模块并指定别名?B

   A. use module as alias

   B. import module as alias

   C. include module alias

   D. load module alias

5. 判断变量`x`是否在列表`my_list`中,应该使用哪个语句? A

   A. `x in my_list`

   B. `exists(x, my_list)`

   C. `find(x, my_list)`

   D. `list_contains(x, my_list)`

6. 在Python中,以下哪个表达式的结果是一个列表,包含[1, 4, 9]? A

    A. [i**2 for i in range(1, 4)]

B. [i**2 for i in range(4)]

C. [i**2 for i in range(1, 5)]

D. [i**2 for i in range(0, 4)]

7. 哪种循环结构可用于遍历字典的所有键值对?B

   A. `for i in range(len(dictionary))`

   B. `for key, value in dictionary.items():`

   C. `while key in dictionary:`

   D. `for key in dictionary.keys() and value in dictionary.values():`

8. 对于列表`my_list = [1, 2, 3, 4, 5]`,下列哪段代码将会删除索引为2的元素? C

   A. `del my_list[1]`

   B. `my_list.remove(2)`

   C. `my_list.pop(2)`

   D. `my_list.splice(3, 1)`

9. 在Pandas中,以下哪个函数用于删除DataFrame中的一列 A

   A. drop()

   B. append()

   C. insert()

   D. add()

10. 关于Python的元组(tuple),以下说法正确的是:A

    A. 元组一旦创建就不能修改

    B. 元组使用花括号 `{}` 创建

    C. 元组和列表在所有方面都完全相同,只是语法上有所区别

    D. 元组不能被用作字典的键,因为它们不可变

11. 在Python中,哪些类型的对象是不可变的?A

    A. 字符串 (str)

    B. 列表 (list)

    C. 集合 (set)

    D. 字典 (dict)

12. 在Python中,NumPy数组的元素类型必须是什么?B

    A. 异质的

    B. 同质的

    C. 可以是任意类型

    D. 只能是整数类型

13. 给定Python字典d = {'a': 1, 'b': 2, 'c': 3},以下哪个表达式的结果是一个包含字典所有值的列表 B

    A. list(d.keys())

    B. list(d.values())

    C. list(d.items())

    D. list(d)

14. 在Python中,什么是装饰器(decorator)?DB

    A. 一种特殊的数据结构,用于存储多个值

    B. 一种语法糖,用于修改或增强函数的行为

    C. 一种内置函数,用于动态地创建类

    D. 一种同步原语,用于控制线程间的并发执行

15. 在NumPy中,以下哪个函数用于创建一个等差数列的数组() B

    A. full() 

    B. linspace() 

    C. logspace()

    D. zeros()

16. 在Matplotlib中,以下哪个函数用于设置X轴的标签 B

    A. title()

    B. xlabel()

    C. ylabel()

    D. text()

17. 在Python中,使用`with open('file.txt', 'r') as f:`语句的好处是什么? A

    A. 自动管理文件打开和关闭的过程,即使出现异常也能确保文件最终会被关闭

    B. 提高文件读写的效率

    C. 只允许单线程环境下读取文件

    D. 必需显式调用close()方法,否则文件被占用

18. 在Python中,如何在一个类中定义私有属性?B

    A. 使用`__privatevariable__`命名方式

    B. 使用`__privatevariable`命名方式

    C. 在类定义内部使用`self.private_variable = ...`

    D. 在类外部定义并赋值给`_ClassName__private_variable`

19. Python中的`yield`关键字用于什么目的?B

    A. 结束当前函数的执行并返回结果

    B. 在函数内部创建一个生成器,用于迭代生成一系列值

    C. 定义一个静态方法

    D. 将函数转换为异步函数

20. 如果想要获取当前Python程序运行的主脚本文件名,应使用哪个全局变量?                     B

    A. __main__

    B. __file__

    C. __name__

    D. __package__

21. 下面程序正确运行结果是      D  A     

def fn():

a=100

print(a,end=” ”)

return a

def fm():

a=200

print(a,end=” ”)

return a

c=fn() and fm()

print(c,end=” ”)

    A. 100 200 200

    B. 100 200 True

    C. 100 200

D. 100 True

22. 下面程序正确运行结果是  A

def fn():

a=0

print(a,end=” ”)

return a

def fm():

a=200

print(a,end=” ”)

return a

c=fn() or fm()

print(c,end=” ”)

    A. 0 200 200

    B. 0 200 False

    C. 0 200

D. 0 False

23. 下面程序正确运行结果是 DC

def fn():

a=0

print(a,end=” ”)

return a

def fm():

a=200

print(a,end=” ”)

return a

c=fn() and fm()

print(c,end=” ”)

    A. 0 200 200

    B. 0 200 False`

    C. 0 0

D. 0 False

24. 下面程序正确运行结果是 A

data=[1,2,3,4,5,6]

for el in data:

data.remove(el)

data.append(el)

print(data)

A. [2,4,6,3,1,5]

B. [1,2,3,4,5,6]

    C. [6,5,4,3,2,1]

D.[5,1,3,6,4,2]

25. 下面程序正确运行结果是B

def fn():

a=200

def geta():

print(a)

return geta

a=100

fn()()

A.打印100

B.打印200

    C.先打印200 再打印100

D.先打印100 再打印200

二、编程题(10,共50分

  1. 编写一个程序,要求用户输入两个整数,然后计算并打印这两个数的和、差、积和商(注意除法运算时避免除以零错误)。(3分)

  1. 设计一个名为`reverse_string`的函数,接受一个字符串作为参数,并返回True或者False 用于判断传入字符串是否为回文(正着读和倒着读一样:上海自来水来自海上)(3分)

  1. 实现一个斐波那契数列生成器函数,该函数接受一个整数n作为参数,返回前n项斐波那契数列。(6分)

  1. 编写一个Python类`Person`,包含属性姓名(name)、年龄(age)和地址(address),并实现一个方法`introduce_self`,用于打印个人的基本信息。(4分)

  1. 使用列表推导式生成一个列表,该列表包含从1到100的所有奇数的平方。(4分)

  1. 使用正则将字符串” python is    easy  to  learn”中的每个单词全部提取出来,放在列表中,并将每一个单词的码值和(ord())计算出来装在另外一个列表中 (6分)

  1. 使用正则将字符串 18282832341  中首尾空白字符去掉,并将前面的空白替换为+0800- (4分)

  1. 使用Python的NumPy库,创建一个形状为(4,4)的二维数组,并且初始化所有元素为其行索引与列索引之和。(5分)


 

  1. 使用Python的Pandas库,创建一个DataFrame对象,包含三列:'Name'、'Age'和'Gender',数据分别为['Alice', 'Bob', 'Charlie'], [25, 30, 35]和['Female', 'Male', 'Male'],并计算所有人的平均年龄。(5分)

分析下面程序的运行过程并打印运行结果(10分)

def fun(n=None,o=None):

print(o)

def fn(m):

return fun(m,n)

return fn

a=fun()()

a()

a()

二、编程题示例解答

1. 示例代码:

   ```python

   num1 = int(input("请输入第一个整数:"))

   num2 = int(input("请输入第二个整数:"))

   

   sum_val = num1 + num2

   diff_val = num1 - num2

   prod_val = num1 * num2

   

   if num2 != 0:

       div_val = num1 / num2

   else:

       div_val = "无法除以零"

   

   print(f"和:{sum_val},差:{diff_val},积:{prod_val},商:{div_val}")

   ```

2. 示例代码:

   ```python

   def reverse_string(s):

       return s[::-1]==s

   ```

3. 示例代码:

def fibonacci(n):

    a, b = 0, 1

    for _ in range(n):

        yield a

        a, b = b, a + b

# 使用生成器

for fib in fibonacci(10):

print(fib)

4. 示例代码:

class Person:

    def __init__(self, name, age, address):

        self.name = name

        self.age = age

        self.address = address

    def introduce_self(self):

        print(f"我的名字是 {self.name},今年 {self.age} 岁,住在 {self.address}。")

# 创建 Person 实例并调用方法

person = Person("张三", 30, "北京")

person.introduce_self()

5. 示例代码:

使用列表推导式生成奇数平方列表的代码

odd_squares = [i ** 2 for i in range(1, 101) if i % 2 != 0]

print(odd_squares)

6.

import re

input_str = " python is    easy  to  learn"

# 使用正则表达式提取所有单词
words = re.findall(r'\b\w+\b', input_str)

# 初始化存放单词ASCII码值之和的列表
word_ascii_sums = []

# 计算每个单词的ASCII码值之和并添加到列表
for word in words:
    ascii_sum = sum(ord(c) for c in word)
    word_ascii_sums.append(ascii_sum)

print("Words list:", words)
print("ASCII value sums list:", word_ascii_sums)

7. 

import re
input_str = "  18282832341  "
# 将前面的空白替换为 '+0800-'
stripped_str = re.sub(r'^[\s\t\r\n]*', '+0800-', input_str)
# 将后面的空白替换为 ''
formatted_str = re.sub(r'[\s\t\r\n]*$', '', stripped_str)
print(formatted_str)

8. 

import numpy as np

def create_array():

    array = np.zeros((4,4), dtype=int)

    for i in range(4):

        for j in range(4):

            array[i, j] = i + j

    return array

array = create_array()

print(array)

9.

import pandas as pd

data = {

    'Name': ['Alice', 'Bob', 'Charlie'],

    'Age': [25, 30, 35],

    'Gender': ['Female', 'Male', 'Male']

}

df = pd.DataFrame(data)

print(df)

df1 = df['Age'].mean()

print(df1)

10.

# 分析程序的时候 我使用伪代码(假装我是机器 我如何来一行一行动态的执行代码)

"""

Global-scoped<

    def fun

    a=fun(0)

    fun(0)-scoped<

        n=0

        o=None

        print(o)#打印None

        return {"fun":lambda m:fun(m,n)}

        O1-scoped-<

           m=1

           return fun(m,n)==>fun(1,0)-->O2-scoped

        >

        W1-scoped-<

           m=2

           return fun(m,n)==>fun(2,0)-->W2-scoped

        >

        Q1-scoped-<

            m=3

            return fun(m,n)==>fun(3,0)-->Q2-scoped

        >

    >

    a["fun"](1)->O1-scoped

    O2-scoped-<

        n=1

        o=0

        print(o)#打印0

        return {"fun":lambda m:fun(m,n)}

    >

    a["fun"](2)->W1-scoped

    fun(2,0)-->W2-scoped-<

      n=2

      o=0

      print(o)#打印0

      return {"fun":lambda m:fun(m,n)}

    >

    a["fun"](3)--Q1-scoped

    fun(3,0)-->Q2-scoped-<

        n=3

        O=0

        print(o)#打印0

        return {"fun":lambda m:fun(m,n)}

    >

   

    b = fun(0)["fun"](1)["fun"](2)["fun"](3)

    fun(0)-scoped-<

        n=0

        o=None

        print(o)#打印None

        return {"fun":lambda m:fun(m,n)}

        fun(0)["fun"](1)-<

           m=1

           return fun(m,n)==>fun(1,0)

        >

    >

    fun(1,0)--><

        n=1

        o=0

        print(o)#打印0

        return {"fun":lambda m:fun(m,n)}

        fun(0)["fun"](1)["fun"](2)--<

            m=2

            return fun(m,n)==>fun(2,1)

        >

    >

    fun(2,1)--><

        n=2

        o=1

        print(1)#打印1

        return {"fun":lambda m:fun(m,n)}

        fun(0)["fun"](1)["fun"](2)["fun"](3)--><

            m=3

            return fun(m,n)==>fun(3,2)

        >

        >

    >

    fun(3,2)--><

        n=3

        o=2

        print(2)#打印2

        return {"fun":lambda m:fun(m,n)}

    >

   

>

"""

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

一车小面包

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值