“Python 语言程序设计实验2023春季”实验报告

实验报告四 函数设计与使用(4月14日 23:00 截止)

实验四 函数设计与使用

一、实验学时: 2学时

二、实验目的

  1. 掌握函数定义和调用的用法。
  2. 掌握递归函数的执行过程。
  3. 掌握位置参数、关键参数、默认值参数与长度可变参数的用法。
  4. 理解函数调用时参数传递的序列解包用法。
  5. 理解变量作用域。
  6. 掌握lambda表达式的定义与用法。

三、实验内容

1.编写函数,根据长、宽、高之值计算长方体体积。要求设置默认参数如果没有提供参数,体积返回0. (10分) 2.编写函数,接受一个整数n为参数,打印杨辉三角的前n行。 (18分) 3.编写函数,从键盘输入一个整数,判断其是否为完全数。所谓完全数,是指这样的数,该数的各因子(除该数本身外)之和正好等于该数本身,例如:6=1+2+3,28=1+2+4+7+14。(18分) 4.编写函数,可以接收任意多个整数并输出其中的最大值和所有整数之和。(18分) 5.编写加密函数,使用凯撒加密方法对字符串加密。(18分) 6.编写函数,接收一个字符串,分别统计大写字母、小写字母、数字、其他字符的个数,并以元组的形式返回结果。(18分)

四、实验结果

(在此部分列出保持缩进格式的程序代码及运行结果截图,请注意保持格式统一,截图清晰,大小合适)

1.编写函数,根据长、宽、高之值计算长方体体积。要求设置默认参数如果没有提供参数,体积返回0. (10分)

def area(length=0,width=0,hight=0):
    print("这个长方体的体积为:",length*width*hight)
    return 0
area(2,2,2)
copy

图片描述

2.编写函数,接受一个整数n为参数,打印杨辉三角的前n行。 (18分)

def triangle(n):
    print([1])
    print([1,1])
    line = [1,1]
    for i in range(2,n):
        r = []
        for j in range(0,len(line) - 1):
            r.append(line[j]+line[j+1])
        line = [1]+r+[1]
        print(line)
triangle(6)
copy

图片描述

3.编写函数,从键盘输入一个整数,判断其是否为完全数。所谓完全数,是指这样的数,该数的各因子(除该数本身外)之和正好等于该数本身,例如:6=1+2+3,28=1+2+4+7+14。(18分)

def a(num):
    b = []
    for i in range(1, num):
        if num % i == 0:
            b.append(i)
    d = sum(b)
    if d == num:
        print(f"{num}为完全数")
    else:
        print(f"{num}不为完全数")
a(28)
a(25)
copy

图片描述

4.编写函数,可以接收任意多个整数并输出其中的最大值和所有整数之和。(18分)

def a(*p):
    max = 0
    for i in p:
        if i > max:
            max = i;
    print(f"最大值为{max}")
    print(f"所有整数之和为{sum(p)}")
a(7,9,4)
copy

图片描述

5.编写加密函数,使用凯撒加密方法对字符串加密。(18分)

from string import ascii_letters, ascii_lowercase, ascii_uppercase
def a(text,k):
    lower= ascii_lowercase[k:]+ ascii_lowercase[:k]
    upper= ascii_uppercase[k:]+ ascii_uppercase[:k]
    table=''. maketrans( ascii_letters, lower + upper)
    return text. translate(table)
s='Python'
print(a(s,2))
copy

图片描述

6.编写函数,接收一个字符串,分别统计大写字母、小写字母、数字、其他字符的个数,并以元组的形式返回结果。(18分)

def statistics(s):
    Big_size = 0
    little_size = 0
    number = 0
    else_number = 0
    c=len(s)
    for j in range(c):
        if 65 <= ord(s[j]) <= 90:
            Big_size +=1
        elif 97 <= ord(s[j]) <= 122:
            little_size +=1
        elif 48 <= ord(s[j]) <= 57:
            number +=1
        else:
            else_number+=1
        t1=(Big_size,little_size,number,else_number)
    return t1
m ='ggsdg343463UYIGK./,[]'
print('结果为:')
print(statistics(m))
copy

图片描述

五、实验小结

(包括问题和解决办法、心得体会、意见与建议等)

问题:

1.在输入时提示某处报错,但并无语法错误

2.在python里跳出循环出错

解决方法:

1.输入时不能用中文输入法

2.在python里跳出循环要用break

心得体会:

1.输入要用英文输入

2.要有适当的缩进与间隔

3.要使用合法语句才能正确运行

意见和建议:

1.要注重实验规范

2.要熟练运用各种语句

最新评论

本次实验解题逻辑清晰,内容完整,格式符合要求。

2023-06-15 20:00:11
回复