·任务描述
当我们需要在程序中多次执行同一类型的任务时,不需要反复编写代码段来完成任务,而是可以利用函数工具来大大方便我们的编程工作。函数是可重复使用的,用来实现相关联功能的代码段。
本实训的目标是让读者了解并掌握函数结构的相关知识,本关的小目标则是让读者先了解并掌握函数参数的有关知识。
·编程要求
本关的编程任务是补全src/Step1/plus.py文件的代码,实现相应的功能。具体要求如下:
定义并调用一个函数,功能是对输入的列表中的数值元素进行累加,列表中元素的个数没有确定;
将累加结果存储到变量d中;
输出累加结果d。
·测试说明
本关的测试文件是src/Step1/plus.py,测试过程如下:
平台自动编译生成plus.exe;
平台运行plus.exe,并以标准输入方式提供测试输入;
平台获取plus.exe输出,并将其输出与预期输出对比。如果一致则测试通过,否则测试失败。
以下是平台对src/Step1/plus.py的样例测试集:
测试输入:
1 2 3 4 5
预期输出:
15
测试输入:
1 3 5 7 9 11
预期输出:
36
测试输入:
2 4 6 8 10 12 14 16
预期输出:
72
#coding=utf-8
# 创建一个空列表numbers
numbers = []
# str用来存储输入的数字字符串,lst1是将输入的字符串用空格分割,存储为列表
str = input()
lst1 = str.split(' ')
# 将输入的数字字符串转换为整型并赋值给numbers列表
for i in range(len(lst1)):
numbers.append(int(lst1.pop()))
# 对输入的列表中的数值元素进行累加求和
def plus(*numbers):
sum = 0
for i in numbers:
sum += i
return sum
d = plus(*numbers)
print(d)
·任务描述
函数在进行运算处理后,返回的值被称为返回值。函数返回的值是通过return语句执行。返回值能够让我们直接得到函数处理的结果,而不必关心函数内部复杂繁重的运算过程,大大提高了编程效率。
本关的主要目标是让读者了解并掌握函数返回值的相关知识。
·编程要求
本关的编程任务是补全src/step2/return.py文件的代码,实现相应的功能。具体要求如下:
定义一个函数gcd,功能是求两个正整数的最大公约数;
调用函数gcd,得到输入的两个正整数的最大公约数,并输出这个最大公约数。
·测试说明
本关的测试文件是src/step2/return.py,测试过程如下:
平台自动编译生成return.exe;
平台运行return.exe,并以标准输入方式提供测试输入;
平台获取return.exe输出,并将其输出与预期输出对比。如果一致则测试通过,否则测试失败。
以下是平台对src/step2/return.py的样例测试集:
测试输入:
1
8
预期输出:
1
测试输入:
9
3
预期输出:
3
测试输入:
9
21
预期输出:
3
测试输入:
126
36
预期输出:
18
#coding=utf-8
# 输入两个正整数a,b
a = int(input())
b = int(input())
# 求两个正整数的最大公约数
def gcd(a,b):
if a < b:
smaller = a
else:
smaller = b
for i in range(1, smaller + 1):
if a % i == 0 and b % i ==0:
res = i
return res
# 调用函数,并输出最大公约数
print(gcd(a,b))
·
任务描述
函数是有使用范围的,在一个模块中,我们可以定义很多函数和变量,但我们希望有的函数和变量别人可以使用,有的函数和变量仅仅可以在模块内部使用。这就是Python作用域的相关问题。
本关的目标就是让读者了解并掌握函数的使用范围,即Python作用域的相关知识。
·编程要求
本关的编程任务是补全src/step3/scope.py文件的代码,实现相应的功能。具体要求如下:
编写程序,功能是求两个正整数的最小公倍数;
要求实现方法:先定义一个private函数 _gcd()求两个正整数的最大公约数,再定义public函数lcm()调用 _gcd()函数求两个正整数的最小公倍数;
调用函数lcm(),并将输入的两个正整数的最小公倍数输出。
·测试说明
本关的测试文件是src/step3/scope.py,测试过程如下:
平台自动编译生成scope.exe;
平台运行scope.exe,并以标准输入方式提供测试输入;
平台获取scope.exe输出,并将其输出与预期输出对比。如果一致则测试通过,否则测试失败。
以下是平台对src/step3/scope.py的样例测试集:
测试输入:
5
6
预期输出:
30
测试输入:
8
10
预期输出:
40
测试输入:
16
24
预期输出:
48
测试输入:
132
214
预期输出:
14124
#coding=utf-8
# 输入两个正整数a,b
a = int(input())
b = int(input())
# 求两个正整数的最小公倍数
def _gcd(a,b):
if a < b:
smaller = a
else:
smaller = b
for i in range(1, smaller + 1):
if a % i == 0 and b % i == 0:
gcd = i
return gcd
def lcm(a,b):
gcd = _gcd(a,b)
lcm = int(a * b / gcd)
return lcm
# 调用函数,并输出a,b的最小公倍数
print(lcm(a,b))
······通关成功······
如有问题,敬请斧正。