一路向北~~
努力才会有惊喜

一、实验目的和要求

(一)目的

通过函数的设计,熟练掌握函数的使用,进一步了解函数的各类参数、及参数传递过程,实现减少程序的代码量,同时提高程序执行时的效率和可维护性。

(二)要求

1掌握函数的定义

2掌握函数的调用

3掌握函数的形参、实参及返回值

4掌握位置参数

5掌握序列作为参数

二、实验内容及步骤

1编写函数,求出一个数除1和自身以外的因子。从键盘输入一个数,调用该函数输出除1和它自身以外的所有因子。

2编写两个函数,分别求两个整数的最大公约数和最小公倍数,在主函数调用这两个函数,并输出结果。两个整数由键盘输入。

3编写程序,利用元组作为函数的返回值,求系列类型的最大值、最小值和元素个数,并编写测试代码。假设测试数据分别为:

   S1=[9,7,8,3,2,1,55,6]

   S2=[“apple”,“pear”,“melon”,“kiwi”]

   S3=”TheQuickBrownFox”。

程序运行效果如下所示:

        List =[9,7,8,3,2,1,55,6]

        最大值=55,最小值=1,元素个数=8

        List =[“apple”,“pear”,“melon”,“kiwi”]

        最大值= pear,最小值= apple,元素个数=4

        List =“TheQuickBrownFox”

        最大值=x,最小值=B,元素个数=16

     提示:

     函数形参为系列类型,返回值形如“(最大值,最小值,元素个数)”

 

三、实验代码清单

 

1、def Yin_zi(num):

 

    for i in range(2,num):

 

        if num%i==0:

 

            print(i)

 

num1=int(input("请输入一个数:"))

 

Yin_zi(num1)

 

2、def hcf(x, y):

 

    """该函数返回两个数的最大公约数"""

 

    if x > y:

 

        smaller = y

 

    else:

 

        smaller = x

 

    for i in range(1, smaller + 1):

 

        if ((x % i == 0) and (y % i == 0)):

 

           hef=i

 

    return hef

 

def lcm(x,y):

 

    """该函数返回两个数的最小公倍数"""

 

    t=int(x*y/hcf(x,y))

 

    return t

 

num1 = int(input("输入第一个数字: "))

 

num2 = int(input("输入第二个数字: "))

 

print(num1, "和", num2, "的最大公约数为", hcf(num1, num2))

 

print(num1, "和", num2, "的最小公倍数为", lcm(num1, num2))

 

3、def Max_num(s):

 

    return max(s)

 

def Min_num(s):

 

    return min(s)

 

def Len_num(s):

 

    return len(s)

 

s1=[9,7,8,3,2,1,55,6]

 

s2=["apple","pear","melon","kiwi"]

 

s3="TheQuickBrownFox"

 

print("s1="+str(s1))

 

print("")

 

print("最大值="+str(Max_num(s1))+",最小值="+str(Min_num(s1))+",元素个数="+str(Len_num(s1)))

 

print("s2="+str(s2))

 

print("")

 

print("最大值="+str(Max_num(s2))+",最小值="+str(Min_num(s2))+",元素个数="+str(Len_num(s2)))

 

print("s3="+str(s3))

 

print("")

 

print("最大值="+str(Max_num(s3))+",最小值="+str(Min_num(s3))+",元素个数="+str(Len_num(s3)))

四、实验运行结果

1

 

 2

 

 3

 

posted on 2022-06-02 17:31  一路向北~~  阅读(296)  评论(0编辑  收藏  举报