• Python入门之函数结构


    第1关:函数的参数 - 搭建函数房子的砖

    ·任务描述
    当我们需要在程序中多次执行同一类型的任务时,不需要反复编写代码段来完成任务,而是可以利用函数工具来大大方便我们的编程工作。函数是可重复使用的,用来实现相关联功能的代码段。
    本实训的目标是让读者了解并掌握函数结构的相关知识,本关的小目标则是让读者先了解并掌握函数参数的有关知识。

    ·编程要求
    本关的编程任务是补全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)
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24

    第2关:函数的返回值 - 可有可无的return

    ·任务描述
    函数在进行运算处理后,返回的值被称为返回值。函数返回的值是通过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))
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22

    第3关:函数的使用范围:Python作用域

    ·
    任务描述
    函数是有使用范围的,在一个模块中,我们可以定义很多函数和变量,但我们希望有的函数和变量别人可以使用,有的函数和变量仅仅可以在模块内部使用。这就是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))
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24

    ······通关成功······
    如有问题,敬请斧正。

  • 相关阅读:
    【无公网IP内网穿透】异地远程访问本地SQL Server数据库
    Spring MVC模块常用到的注解简介说明
    java.lang.Enum类下hashCode()方法起什么作用呢?
    Android 12.0系统申请动态权限之高德定位
    【C++初阶】一、入门知识讲解(C++关键字、命名空间、C++输入&输出、缺省参数、函数重载)
    Leetcode刷题98. 验证二叉搜索树
    腾讯mini项目-【指标监控服务重构】2023-08-04
    [AIGC] 深入理解字典树:通过LeetCode题目学习
    Gemma
    float32转float16
  • 原文地址:https://blog.csdn.net/weixin_55764157/article/details/126223629