第1关:类的声明与定义
本关的编程任务是补全Book.py
文件中的代码,具体要求如下:
- 在类头部填入定义
Book
类的代码。
# 请在下面填入定义Book类的代码
########## Begin ##########
class Book(object):
########## End ##########
'书籍类'
def __init__(self,name,author,data,version):
self.name = name
self.author = author
self.data = data
self.version = version
def sell(self,bookName,price):
print("%s的销售价格为%d" %(bookName,price))
第2关:类的属性与实例化
本关的编程任务是补全People.py
文件中的声明变量和实例化部分,具体要求如下:
- 填入声明两个变量名分别为
name
和country
的字符串变量的代码; - 填入对类
People
进行实例化的代码,实例对象为p
。
class People:
# 请在下面填入声明两个变量名分别为name和country的字符串变量的代码
########## Begin ##########
name = ""
country = ""
########## End ##########
def introduce(self,name,country):
self.name = name
self.country = country
print("%s来自%s" %(name,country))
name = input()
country = input()
# 请在下面填入对类People进行实例化的代码,对象为p
########## Begin ##########
p = People()
########## End ##########
p.introduce(name,country)
第3关:绑定与方法调用
本关的测试文件给出了一个类fractionSum
,此类的作用是当输入一个数n
,如果n
为偶数,求1/2+1/4+...+1/n
的和,如果输入n
为奇数,求1/1+1/3+...+1/n
的和。
在fractionSum
中,定义了方法peven(self,n)
用来求当n
为偶数时的结果,定义了podd(self,n)
用来求当n
为奇数时的结果,定义了dcall(self,fp,n)
方法来调用peven
与podd
两个方法,fp
为方法名,最后返回计算结果。
本关的编程任务是补全fractionSum.py
文件中的创建实例与调用方法部分,具体要求如下:
- 填入创建
fractionSum
的实例fs
的代码; - 填入调用
fractionSumtest
类中dcall
方法的代码,计算当n
为偶数时计算的和; - 填入调用
fractionSumtest
类中dcall
方法的代码,计算当n
为奇数时计算的和。
import fractionSumtest
# 请在下面填入创建fractionSum的实例fs的代码
########## Begin ##########
fs = fractionSumtest.fractionSum()
########## End ##########
n = int(input())
if n % 2 == 0:
# 请在下面填入调用fractionSumtest类中dcall方法的代码,计算当n为偶数时计算的和
########## Begin ##########
sum = fs.dcall(fs.peven,n)
########## End ##########
else:
# 请在下面填入调用fractionSumtest类中dcall方法的代码,计算当n为奇数时计算的和
########## Begin ##########
sum = fs.dcall(fs.podd,n)
########## End ##########
print(sum)
第4关:静态方法与类方法
本关的编程任务是补全BookSell.py
文件中的函数修饰符部分,将函数声明为相应的类型,具体要求如下:
- 填入函数修饰符将
printStatic()
方法声明为静态方法; - 填入函数修饰符将
printVersion(cls)
方法声明为类方法。
class BookSell:
static_var = 100
def sell(self,name,author,version,price):
print("%s的销售价格为%d" %(name,int(price)))
# 请在下面填入函数修饰符将printStatic()方法声明为静态方法
########## Begin ##########
@staticmethod
########## End ##########
def printStatic():
print(BookSell.static_var)
# 请在下面填入函数修饰符将printVersion(cls)方法声明为类方法
########## Begin ##########
@classmethod
########## End ##########
def printVersion(cls):
print(cls)
第5关:类的导入
本关的测试文件DataChangetest.py
中定义了一个类DataChange
,这个类实现了将八进制转换为十进制然后输出,这个功能由这个类中的eightToten(self,p)
方法实现。
本关的编程任务是补全DataChange.py
文件中的导入模块并调用方法实现数制转换功能,具体要求如下:
- 从
DataChangetest
模块中导入DataChange
类,并使用该类中的eightToten(self,p)
方法,实现将输入的八进制转换成十进制输出。
# 从 DataChangetest 模块中导入 DataChange 类,并使用该类中的 eightToten(self,p) 方法,实现将输入的八进制转换成十进制输出。
########## Begin ##########
from DataChangetest import DataChange
dct = DataChange()
x = input()
m = dct.eightToten(x)
########## End ##########