Linux 与 Python编程2021 函数结构 educoder实训

第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

猜你喜欢

转载自blog.csdn.net/u014708644/article/details/121266236
今日推荐