第一关 HUT开学了
任务描述
本关任务:编写程序,实现如下功能。 开学了,你考上了湖南工业大学,校园各个学院的电子屏上显示着以下欢迎界面:
|++++++++++++++++++++++|
| |
| Welcome to HUT |
| |
|++++++++++++++++++++++|
入学报到的同学在报到系统输入自己的姓名,在电子屏上输出以上界面后,再在下一行输出“欢迎您,***同学!”
相关知识
为了完成本关任务,你需要掌握:1.输入函数input
的用法,2.print
函数的用法。
编程要求
根据提示,在右侧编辑器补充代码,完成程序的功能。
测试说明
平台会对你编写的代码进行测试:
测试输入:张三
预期输出: |++++++++++++++++++++++|
| |
| Welcome to HUT |
| |
|+++
+++++++++++++++++++|
欢迎您,张三同学!
# 请在此添加代码
Name = input() # 输入学生的姓名
########## Begin ##########
print("|++++++++++++++++++++++|")
print("| |")
print("| Welcome to HUT |")
print("| |")
print("|++++++++++++++++++++++|")
print("欢迎您,{}同学!".format(Name))
########## End ##########
第二关 球的表面积和体积
任务描述
本关任务:编写程序,输入球体的半径,计算球体的表面积和体积,结果保留2位小数。 输入输出范例: 请输入球的半径:3.5 球体表面积为:153.94,体积为:179.59
相关知识
为了完成本关任务,你需要掌握:1.如何通过math库获取π的值,2.顺序结构程序的编写方法。
编程要求
根据提示,在右侧编辑器补充代码,计算并输出球体的表面积和体积。
测试说明
平台会对你编写的代码进行测试:
测试输入:请输入球的半径:3.5
预期输出: 球体表面积为:153.94,体积为:179.59
测试输入:请输入球的半径:7.7
预期输出: 球体表面积为:745.06,体积为:1912.32
# 请在此添加代码
########## Begin ##########
#以下建议导入python标准库math,并使用math.pi代替圆周率π
import math
r= eval(input("请输入球的半径:"))
s=4*math.pi*r*r
v=4/3*math.pi*r*r*r
print(f"球体表面积为:{s:.2f},体积为:{v:.2f}")
########## End ##########
第三关 输出实数的整数和小数部分
任务描述
本关任务:编写程序实现输入一个正的实数x
,分别输出x
的整数部分和小数部分。 要求:从键盘输入一个正的实数x
,然后按x=整数部分+小数部分
的格式输出。 例如: 若输入为: 输入一个正的实数:5.12
则输出: 5.120000=5+0.120000
相关知识
为了完成本关任务,你需要掌握:1.如何获取数据的整数部分,2.如何输出不同类型的数据。
编程要求
根据提示,在右侧编辑器补充代码,计算并分别输出实数的整数和小数部分。
提示:
- 获取整数部分可以使用int函数
- 输出格式为:
print("{0:f}={1:d}+{2:f}\n".format(x,保存整数部分的变量,保存小数部分的变量))
测试说明
平台会对你编写的代码进行测试:
测试输入:输入一个正的实数:5.12
预期输出: 5.120000=5+0.120000
测试输入:输入一个正的实数:9.56
预期输出: 9.560000=9+0.560000
# 请在此添加代码
########## Begin ##########
x=float(input("输入一个正的实数:"))
a=int(x)
print(f"{x:f}={a}+{x-a:f}")
########## End ##########
第四关 计算存款复利
任务描述
本关任务:编写程序,输入存款本金、年利率和年数,计算复利(结果保留两位小数)。 输入输出范例如下: 请输入本金:2000
请输入年利率:5.6
请输入年份:5
本金利率和为:2626.33
相关知识
为了完成本关任务,你需要掌握:1.浮点数的输入方法,2.复利的计算方法。
编程要求
根据提示,在右侧编辑器补充代码,计算并输出复利。
提示
提示:输出语句可以用“print("本金利率和为:{0:2.2f}".format(****))
”的形式,其中***
代表存储本金利率和的变量
测试说明
平台会对你编写的代码进行测试:
测试输入: 请输入本金:2000
请输入年利率:5.6
请输入年份:5
预期输出: 本金利率和为:2626.33
# 请在此添加代码
########## Begin ##########
a=eval(input("请输入本金:"))
b=eval(input("请输入年利率:"))
c=eval(input("请输入年份:"))
d=a*pow((1+b/100),c)
print("本金利率和为:{0:2.2f}".format(d))
########## End ##########
第五关 求2个数的和
任务描述
本关要求学习者理解顺序结构,并对输入的三个数a
、b
、c
先交换a
、b
值,然后再计算a + c
的值。
相关知识
要实现上述功能,需要严格按照顺序来实现每一个步骤。如果顺序错误,那么便会得出错误的结果。
顺序结构
假设存在a
、b
、c
三个整数,如果按照以下顺序执行:
c = a + b
b = c - a
a = b + c
与按照以下顺序:
b = c - a
a = b + c
c = a + b
得出的a
、b
、c
的结果是不同的。
交换数值
假设存在整数a = 10
、b = 20
,交换a
、b
数值的语句如下:
tmp = a
a = b
b = tmp
编程要求
本关的编程任务是补全step2.py
文件中的函数部分,程序中给出a
、b
、c
三个整数,要求实现先交换a
、b
的值,然后计算a + c
的值并输出。
本关涉及的代码文件step2.py
的代码框架如下:
a = int(input())
b = int(input())
c = int(input())
# 请在此添加代码,交换a、b的值,然后计算a、c的和result的值
########## Begin ##########
########## End ##########
print(result)
测试说明
本关的测试文件是src/step2/step2.py
,测试过程如下:
-
学习者将
src/step1/step2.py
中的代码补充完毕,然后点击评测。平台自动编译运行step2.py
,并以标准输入方式提供测评输入; -
平台获取程序的输出,然后将其与预期输出对比。如果一致则测试通过,否则测试失败。
以下是平台对src/step1/step2.py
的样例测试集:
测试输入:
2
5
10
预期输出:
15
a = int(input())
b = int(input())
c = int(input())
# 请在此添加代码,交换a、b的值,然后计算a、c的和result的值
########## Begin ##########
tmp=a
a=b
b=tmp
result=a+c
########## End ##########
print(result)
第六关 出生日期与年龄
任务描述
本关任务:编写一个程序,输入自己的出生年、月、日,按下列格式输出自己的出生日期信息,今年是2022年,计算并输出自己的年龄。 输入示例:1992,12,5↙
输出示例: 我的出生日期是1992年12月05日 我今年30岁了
相关知识
为了完成本关任务,你需要掌握:1.如何输入数据,2.如何格式化输出语句。
编程要求
根据提示,在右侧编辑器补充代码,按格式要求输出自己的出生日期,计算并输出自己的年龄,年龄只要求精确到年,以整数形式输出。
测试说明
平台会对你编写的代码进行测试:
测试输入:1992,12,5
预期输出: 我的出生日期是1992年12月05日
我今年30岁了
# 请在此添加代码
########## Begin ##########
a = input()
if a[6]==',' and len(a) ==8:
print("我的出生日期是{}年0{}月0{}日".format(a[0:4],a[5],a[7]))
elif a[7]==',' and len(a) == 9:
print("我的出生日期是{}年{}月0{}日".format(a[0:4],a[5:7],a[8]))
elif a[6] == ',' and len(a) == 9:
print("我的出生日期是{}年0{}月{}日".format(a[0:4],a[5],a[7:]))
else:
print("我的出生日期是{}年{}月{}日".format(a[0:4],a[5:7],a[8:]))
b = 2022-eval(a[0:4])
print("我今年{}岁了".format(b))
########## End ##########
第七关 逆序数
任务描述
本关任务:从键盘输入一个三位整数n
,输出其逆序数m
。例如,输入n=127
,则m=721
。 ####分析: 程序分为以下三步。
- 输入一个
3
位整数n
。 - 求逆序数
m
。 - 输出
m
。
相关知识
为了完成本关任务,你需要掌握:1.如何获取每一个数位上的数字,2.算术运算符的综合运用。
编程要求
根据提示,在右侧编辑器补充代码,计算并输出逆序数。 输出语句格式为:print("{0:3}的逆序数是{1:3}".format(n,m))
测试说明
平台会对你编写的代码进行测试:
测试输入:n=127
预期输出:127的逆序数是721
# 请在此添加代码
########## Begin ##########
n=(input("n="))
m=n[-1]+n[-2]+n[-3]
print("{0:3}的逆序数是{1:3}".format(n,m))
########## End ##########