基础理论阶段考试试卷
满分: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分)
- 编写一个程序,要求用户输入两个整数,然后计算并打印这两个数的和、差、积和商(注意除法运算时避免除以零错误)。(3分)
- 设计一个名为`reverse_string`的函数,接受一个字符串作为参数,并返回True或者False 用于判断传入字符串是否为回文(正着读和倒着读一样:上海自来水来自海上)。(3分)
- 实现一个斐波那契数列生成器函数,该函数接受一个整数n作为参数,返回前n项斐波那契数列。(6分)
- 编写一个Python类`Person`,包含属性姓名(name)、年龄(age)和地址(address),并实现一个方法`introduce_self`,用于打印个人的基本信息。(4分)
- 使用列表推导式生成一个列表,该列表包含从1到100的所有奇数的平方。(4分)
- 使用正则将字符串” python is easy to learn”中的每个单词全部提取出来,放在列表中,并将每一个单词的码值和(ord())计算出来装在另外一个列表中 (6分)
- 使用正则将字符串” 18282832341 ”中首尾空白字符去掉,并将前面的空白替换为”+0800-” (4分)
- 使用Python的NumPy库,创建一个形状为(4,4)的二维数组,并且初始化所有元素为其行索引与列索引之和。(5分)
- 使用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)}
>
>
"""