第1关:函数的参数 - 搭建函数房子的砖
编程要求
本关的编程任务是补全src/Step1/plus.py文件的代码,实现相应的功能。具体要求如下:
定义并调用一个函数,功能是对输入的列表中的数值元素进行累加,列表中元素的个数没有确定;
将累加结果存储到变量d中;
输出累加结果d。
本关涉及的src/Step1/plus.py代码文件的代码框架如下:
#coding=uft-8
#创建一个空列表numbers
numbers = []
#str用来存储输入的数字字符串,lst1是将输入的字符串用空格分割,存储为列表
str = input()
lst1 = str.split(’ ')
#将输入的数字字符串转换为整型并赋值给numbers列表
for i in range(len(lst1)):
numbers.append(int(lst1.pop()))
#请在此添加代码,实现编程要求
########## Begin ##########
########## End ##########
print(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()))
# 请在此添加代码,对输入的列表中的数值元素进行累加求和
########## Begin ##########
def get_sum(*numbers):
add = 0
for i in range(len(numbers)):
add += numbers[i]
return add
d = get_sum(*numbers)
########## End ##########
print(d)
第2关:函数的返回值 - 可有可无的 return
编程要求
本关的编程任务是补全src/step2/return.py文件的代码,实现相应的功能。具体要求如下:
定义一个函数gcd,功能是求两个正整数的最大公约数;
调用函数gcd,得到输入的两个正整数的最大公约数,并输出这个最大公约数。
本关涉及的代码文件src/step2/return.py的代码框架如下:
#coding=utf-8
#输入两个正整数a,b
a = int(input())
b = int(input())
#请在此添加代码,求两个正整数的最大公约数
########## Begin ##########
########## End ##########
#调用函数,并输出最大公约数
print(gcd(a,b))
测试说明
本关的测试文件是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())
# 请在此添加代码,求两个正整数的最大公约数
########## Begin ##########
def gcd(a,b):
n = a if a<b else b
while n>=1:
if a%n==0 and b%n==0:
return n
n -= 1
########## End ##########
# 调用函数,并输出最大公约数
print(gcd(a,b))
第3关:函数的使用范围:Python 作用域
编程要求
本关的编程任务是补全src/step3/scope.py文件的代码,实现相应的功能。具体要求如下:
编写程序,功能是求两个正整数的最小公倍数;
要求实现方法:先定义一个private函数 _gcd()求两个正整数的最大公约数,再定义public函数lcm()调用 _gcd()函数求两个正整数的最小公倍数;
调用函数lcm(),并将输入的两个正整数的最小公倍数输出。
本关涉及的代码文件src/step3/scope.py的代码框架如下:
#coding=utf-8
#输入两个正整数a,b
a = int(input())
b = int(input())
#请在此添加代码,求两个正整数的最小公倍数
########## Begin ##########
########## End ##########
#调用函数,并输出a,b的最小公倍数
print(lcm(a,b))
测试说明
本关的测试文件是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())
# 请在此添加代码,求两个正整数的最小公倍数
########## Begin ##########
def lcm(a,b):
n = a if a>b else b
while 1:
if n%a==0 and n%b==0:
return n
n += 1
########## End ##########
# 调用函数,并输出a,b的最小公倍数
print(lcm(a,b))
educoder Linux与Python编程2021 答案
https://blog.csdn.net/u014708644/category_11465058.html