- 第1关:基本输入输出
任务描述
本关任务:编写一个程序,依次输入用户的学号,姓名和手机号码
再依次输出相关信息
为了完成本关任务,你需要掌握:
1.如何输入数据
2.如何输出
#代码开始
num = input('请输入学号')
name = input('请输入姓名')
phone = input('请输入电话')
print('学号',num)
print('姓名',name)
print('电话',phone)
#代码结束
- 第2关:计算长方形的周长和面积
任务描述
本关任务:输入长方形的长和宽,计算并输出长方形的周长和面积。
相关知识
为了完成本关任务,你需要掌握:
1.如何将字符数据转换为数值
2.赋值语句
c=input('请输入长')
k=input('请输入宽')
#代码开始
circle = (eval(c)+eval(k))*2
area = eval(c)*eval(k)
#代码结束
print('长方形的周长是',circle)
print('长方形的面积是',area)
- 第3关:基本的原油金额计算
任务描述
本关任务:
石油桶数是常见的原油数量单位。
欧佩克组织和英美等西方国家原油数量单位通常用桶来表示,中国及俄罗斯等国则常用吨作为原油数量单位。
吨和桶之间的换算关系是:1桶(bbl)=0.14吨(t)
编写程序输入原油的价格和带有单位的数量,计算并显示其需要的美元金额。输入时价格以美元/桶为单位,数量可以以桶或吨为单位,10bbl表示10桶,2t表示2吨。
#油气产量换算程序
jg= input("请输入原油价格")
sy = input("请输入原油数量")
#代码开始
if sy[-3:] == 'bbl':
print("{:.2f}".format(eval(sy[:-3])*eval(jg)))
elif sy[-1] == 't':
# sy = sy/0.14
print("{:.2f}".format(eval(sy[:-1])/0.14*eval(jg)))
else:
print('输入格式错误')
#代码结束
- 第4关:循环原油金额换算
任务描述
本关任务:编写一个循环实现原油金额计算的程序。用户输入原油价格和带有单位的数量,计算并显示金额。用户可连续输入带有单位的字符,直到用户输入n或N。
#循环原油产量换算程序
jg= eval(input("请输入原油价格"))
sy = input("请输入原油数量")
#代码开始
while sy != 'N' and sy != 'n':
if sy[-3:] == 'bbl':
print('{:.2f}'.format(eval(sy[:-3])*jg))
elif sy[-1] == 't':
print('{:.2f}'.format(eval(sy[:-1])/0.14*jg))
else:
print('输入格式错误')
sy = input('请输入原油数量')
#代码结束
- 第5关:BMI指数判断
任务描述
BMI指数(身体质量指数,简称体质指数又称体重指数,英文为Body Mass Index,简称BMI),是用体重公斤数除以身高米数平方得出的数字,是目前国际上常用的衡量人体胖瘦程度以及是否健康的一个标准。
bmi小于18.5,为体重过低;bmi18.5-24(包含24),为体重正常;bmi为24-28(包含28),为体重超重;bmi超过28,为体重肥胖。
输入身高和体重,显示其分类
sg=eval(input("身高"))
tz=eval(input("体重"))
#代码开始
bmi = tz/pow(sg,2)
if bmi < 18.5:
print('体重过低')
elif bmi <= 24:
print('体重正常')
elif bmi <= 28:
print('体重超重')
else:
print('体重肥胖')
#代码结束
- 第6关:黄金价值计算
任务描述
编写程序,输入黄金价格(美元/盎司),美元兑人民币的汇率,黄金的数量(以克为单位),计算并输出黄金的人民币价值。(1盎司(oz) =31.1034768 克)。
jg=eval(input("黄金价格"))
hl=eval(input("美元汇率"))
zl=eval(input("黄金重量"))
#代码开始
jz = jg*zl*hl/31.10347688
#代码结束
print("黄金价值{:.2f}".format(jz))
- 第7关:股票代码判断
证券代码采用6位数字编码,编码规则定义如下:
沪深股票代码编码规则
编写程序,根据用户输入的6位股票编码判断其所属的版块。若代码不符合以上规则,显示错误编码。要求能循环输入判断,直到用户输入000000为止。
dm=input("股票代码")
###代码开始
while dm != '000000':
if dm[:2] == '60':
print('沪市A股')
elif dm[:3] == '000':
print('深市A股')
elif dm[:3] == '002':
print('中小板')
elif dm[:3] == '300':
print('创业板')
elif dm[:3] == '688':
print('科创板')
else:
print('错误编码')
dm = input('股票代码')
###代码结束
- 第8关:计算物业费
任务描述
某物业公司收取物业费的标准如下:楼梯房每月每平米0.8元,电梯房每月每平米1.8元,商业门面每月每平米3元。
若一次性缴纳12个月及以上,给予95折优惠。
编写程序,输入房屋类型(1代表楼梯房,2代表电梯房,3代表商业门面)和房屋面积、缴纳月数,计算客户应该缴纳的物业费。
x=eval(input("类型"))
s=eval(input("面积"))
m=eval(input("月数"))
#代码开始
if x==1:
if m>=12:
f=x*s*m*0.8*0.95
elif m<12:
f=x*s*m*0.8/2
if x==2:
if m>=12:
f=x*s*m*0.9*0.95
elif m<12:
f=x*s*m*1.8/2
if x==3:
if m>=12:
f=x*s*m*3*0.95/3
elif m<12:
f=x*s*m*3/2
#代码结束
print("物业费{:.2f}".format(f))
- 定义一个类描述平面上的点并提供移动点和计算到另一个点距离的方法
任务描述
本关任务:编写银行员工类BankEmployee,要求:
1.银行员工类的属性包括姓名name,工号num,工资salary
2.姓名name和工号num设置为私有属性,并将salay设置为默认参数3000
相关知识
为了完成本关任务,你需要掌握:1.类的定义,2.私有属性的设置。
编程要求
根据提示,在右侧编辑器补充代码,实现要求的输出。
测试说明
平台会对你编写的代码进行测试:
测试输入:
张飞
007
预期输出:
张飞领到这个月工资3000
class BankEmployee():
# 请在此处添加代码 #
# *************begin************#
def __init__(self, name, num):
self.__name = name
self.__num = num
self.salary = 3000
def get_salary(self):
print(f"{self.__name}领到这个月工资{self.salary}")
# **************end*************#
def main():
name = input()
num = input()
bankemployee = BankEmployee(name,num)
bankemployee.get_salary()
if __name__=="__main__":
main()
- 定义银行柜员类BankTeller
任务描述
本关任务:编写一个银行柜员类BankTeller,继承BankEmployee类,要求:
1.完善BankEmployee类,对私有属性name和num添加set方法和get方法以实现对私有属性的设置和获取
2.对工号的合法性进行检验,要求工号以字母s开头,如s678是合法工号,678不是合法工号
3.继承BankEmployee类,定义银行柜员类BankTeller类,其name属性和num属性和父类BankEmployee类相同,属性salary默认参数为2000
相关知识
为了完成本关任务,你需要掌握:1.类的继承,2.set/get方式。
编程要求
根据提示,在右侧编辑器补充代码,输出需要的内容。
测试说明
平台会对你编写的代码进行测试:
测试输入:
张飞
007
预期输出:
工号以s开头
张飞领到这个月工资2000
工号以s开头
张飞 None
测试输入:
赵云
s009
预期输出:
赵云领到这个月工资2000
赵云 s009
class BankEmployee():
def __init__(self,name="",num="",salary=2000):
self.__name = name
self.__num = num
self.salary = salary
def get_salary(self): #定义领工资方法get_salary()
print("%s领到这个月工资%d"%(self.__name,self.salary))
def get_name(self):
return self.__name
def set_name(self, name):
self.__name = name
def get_num(self):
return self.__num
def set_num(self, num):
self.__num = num
class BankTeller(BankEmployee):
def set_num(self, num):
if num[0] != 's':
print("工号以s开头")
self.__num = ''
else:
self.__num = num
def get_num(self):
if self.__num == '' or self.__num[0] != 's':
print("工号以s开头")
return None
return self.__num
def main():
bankteller = BankTeller()
name = input()
num = input()
bankteller.set_name(name)
bankteller.set_num(num)
bankteller.get_salary()
print(bankteller.get_name(),bankteller.get_num())
if __name__=="__main__":
main()
- 定义经理类BankManager
任务描述
本关任务:编写一个经理类BankManage,要求:
1.继承BankEmployee类的构造函数
2.将BankEmployee类的属性name,num和salary设置为插槽
3.定义银行柜员类BankManager类,继承BankEmployee类,并多一个提成commission私有属性
相关知识
为了完成本关任务,你需要掌握:1.继承,2.插槽。
编程要求
根据提示,在右侧编辑器补充代码,实现需要的输出。
测试说明
平台会对你编写的代码进行测试:
测试输入:
刘备
s001
8000
5000
预期输出:
刘备领到这个月提成5000
class BankEmployee():
# 请在此处添加代码 设置插槽 #
# *************begin************#
# **************end*************#
def __init__(self,name="",num="",salary=3000):
self.__name = name
self.__num = num
self.salary = salary
def get_salary(self): #定义领工资方法get_salary()
print("%s领到这个月工资%d"%(self.__name,self.salary))
def set_name(self,name):
self.__name = name
def get_name(self):
return self.__name
def set_num(self,num):
self.__num = num
def get_num(self):
return self.__num
#commission 提成
class BankManager(BankEmployee):
def __init__(self,name="",num="",salary=3000,commission=0):
self.__name = name
self.__num = num
self.salary = salary
self.commission = commission
def get_commission(self):
print(self.__name+"领到这个月提成"+str(self.commission))
# 请在此处添加代码 完成BankTeller类的定义#
# ************* begin ************#
# ************** end *************#
def main():
name = input()
num = input()
salary = int(input())
commission = int(input())
bankmanager = BankManager(name,num,salary,commission)
bankmanager.get_commission()
if __name__=="__main__":
main()