目录
1. (单选题) Python语句序列"f=lambda x,y:x*y; f(12,34)"的运行结果是()
2. (单选题) Python语句print(type(lambda:None))的输出结果
3. (单选题) 在Python中,若有则f1(1,a=2)的运行结果是
7. (编程题) 创建一个名为User 的类,其中包含属性first_name 和last_name ,以及用户简介通常会存储的其他几个属性。
8. (编程题) 编写程序,创建类MyMath,计算圆的周长和面积以及球的表面积和体积,并编写测试代码,结果均保留两位小数。
一、选择题
1. (单选题) Python语句序列"f=lambda x,y:x*y; f(12,34)"的运行结果是()
A、12 B、22 C、526 D、408
Python语句序列"f=lambda x,y:x*y; f(12,34)"的运行结果是408。其中f是一个lambda函数,可以简单理解为一个匿名函数,接收两个参数x和y,返回它们的乘积。这个lambda函数被赋值给变量f,然后调用了f(12,34),得到的运行结果就是12和34的乘积,即408。
2. (单选题) Python语句print(type(lambda:None))的输出结果
A、<class 'function'> B、<class 'NoneType'> C、<class 'tuple'> D、<class 'type'>
Python语句print(type(lambda:None))的输出结果是<class 'function'>。这是因为在这个语句中,lambda后面使用了一个空的参数列表和一个返回值为None的表达式,所以构成了一个简单的lambda函数。而type(lambda:None)则返回这个lambda函数的类型,也就是function。所以输出结果为<class 'function'>。
3. (单选题) 在Python中,若有
def f1(p,**p2):
print(type(p2))
则f1(1,a=2)的运行结果是()
A、<class 'int'> B、<class 'type'> C、<class 'dict'> D、<class 'list'>
f1(1,a=2)的运行结果是<class 'dict'>。在这个函数定义中,p是一个普通的参数,而p2是一个使用了双星号语法的“关键字可变参数”,它允许我们将任意多个关键字参数传递给函数,并把它们转化为一个字典。由于在调用f1(1,a=2)时传入了一个关键字参数a=2,所以p2会被转化为一个包含这个参数的字典,其输出结果为<class 'dict'>。
4. (单选题)
f1=lambda x:x*2
f2=lambda x:x**2
print(f1(f2(2)))
Python语句序列的运行结果是()
A、2 B、4 C、6 D、8
解释:
首先,
f2(2)
等于 22=422=4。然后,将 44 传入
f1
函数中,该函数会将其乘以 22 并返回,所以最终结果为 4×2=84×2=8。因此,整段代码的输出结果是
8
。
二、简答题
5. (简答题) 下列Python语句的输出结果是
def judge(param1,**param2):
print(type(param2))
print(param2)
judge(1,a=2,b=3,c=4,d=5)
运行上述Python代码,输出结果如下:
<class 'dict'>
{'a': 2, 'b': 3, 'c': 4, 'd': 5}
解释:函数
judge()
接受一个位置参数param1
和任意数量的关键字参数param2
。在这里,我们调用了函数judge()
并传入一个位置参数1
和四个关键字参数a=2
、b=3
、c=4
和d=5
。由于参数param2
使用了双星号语法,所以传入的关键字参数会被捕获并转换成一个字典对象。因此,第一行输出<class 'dict'>
表示param2
是一个字典。第二行输出该字典对象{ 'a': 2, 'b': 3, 'c': 4, 'd': 5 }
。
三. 编程题
6. (编程题)编写一个函数leap(y)判断闰年。满足闰年的条件为:
(1)能被4整除,但不能被100整除,或者
(2)能被400整除
输入输出示例:
输入 1996
输出 True
def leap(y):
if y % 4 == 0 and y % 100 != 0:
return True
elif y % 400 == 0:
return True
else:
return False
print(leap(1996))
7. (编程题) 创建一个名为User 的类,其中包含属性first_name 和last_name ,以及用户简介通常会存储的其他几个属性。在类User 中定义一个名为describe_user() 的方法,用于打印用户信息摘要。再定义一个名为greet_user() 的方法,用于向用户发出个性化的问候。创建多个表示不同用户的实例,并对每个实例调用上述两个方法。
class User:
def __init__(self, first_name, last_name, age, gender, occupation):
self.first_name = first_name
self.last_name = last_name
self.age = age
self.gender = gender
self.occupation = occupation
def describe_user(self):
print("User's name: " + self.first_name.title() + " " + self.last_name.title())
print("Age: " + str(self.age))
print("Gender: " + self.gender)
print("Occupation: " + self.occupation.title())
def greet_user(self):
print("\nHello, " + self.first_name.title() + "! Welcome back.")
# 创建实例
user1 = User('John', 'Doe', 27, 'Male', 'Engineer')
user2 = User('Lucy', 'Smith', 33, 'Female', 'Doctor')
user3 = User('Tom', 'Wang', 19, 'Male', 'Student')
# 调用方法
user1.describe_user()
user1.greet_user()
user2.describe_user()
user2.greet_user()
user3.describe_user()
user3.greet_user()
其中,
__init__()
方法是类的特殊方法,创建对象时会自动调用该方法进行属性初始化。describe_user()
方法用于打印用户信息摘要,greet_user()
方法用于向用户发出个性化的问候。最后,我们创建了三个表示不同用户的实例,并对每个实例调用上述两个方法。
8. (编程题) 编写程序,创建类MyMath,计算圆的周长和面积以及球的表面积和体积,并编写测试代码,结果均保留两位小数。
运行效果示例:
请输入半径:5
圆的周长 = 31.42
圆的面积 = 78.54
球的表面积 = 314.16
球的体积 = 523.60
import math
class MyMath:
def __init__(self, r):
self.r = r
def get_circle_perimeter(self):
return round(2*math.pi*self.r, 2)
def get_circle_area(self):
return round(math.pi*self.r**2, 2)
def get_sphere_surface_area(self):
return round(4*math.pi*self.r**2, 2)
def get_sphere_volume(self):
return round(4/3*math.pi*self.r**3, 2)
# 创建实例并调用方法
r = float(input("请输入半径:"))
my_math = MyMath(r)
print("圆的周长 = ", my_math.get_circle_perimeter())
print("圆的面积 = ", my_math.get_circle_area())
print("球的表面积 = ", my_math.get_sphere_surface_area())
print("球的体积 = ", my_math.get_sphere_volume())
首先,我们创建类
MyMath
,并在初始化方法__init__()
中接收一个半径r
。然后,定义了四个方法分别计算圆的周长和面积以及球的表面积和体积,并使用round()
函数保留两位小数。最后,我们创建
MyMath
的一个实例my_math
,并调用相应的方法,将结果输出。注意,此时需要使用float()
函数将输入的半径转换为浮点数。