python 实验3-2

6、编写程序,利用元组作为函数的返回值,求系列类型中的最大值、最小值和元素个数,并编写测试代码,假设测试数据分别为s1=[9,8,7,3,2,1,55,6]、s2=[‘apple’,‘pear’,‘melon’,‘kiwi’],s3=‘TheQuickBrownFox’。运行效果如下:

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

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

s2=[‘apple’,‘pear’,‘melon’,‘kiwi’]

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

s3=‘TheQuickBrownFox’

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

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

# 博主链接:https://blog.csdn.net/qq_45148277
# email:[email protected]
# 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
# 开发时间:2022/6/5 16:13
# 6、编写程序,利用元组作为函数的返回值,求系列类型中的最大值、最小值和元素个数,
# 并编写测试代码,假设测试数据分别为s1=[9,8,7,3,2,1,55,6]、s2=['apple','pear','melon','kiwi'],
# s3='TheQuickBrownFox'。运行效果如下:
# s1=[9,8,7,3,2,1,55,6]
# 最大值=55,最小值=1,元素个数=8
# 提示:函数形参为系列类型,返回值是形如“(最大值,最小值,元素个数)”的元组
def hanshu(a):
    lst = []
    if type(a) is not list:
        li = list(a)
    else:
        li = list(a)
        li.sort()
        max1 = max(li)
        min1 = min(li)
        len1 = len(li)
        lst.append(max1)
        lst.append(min1)
        lst.append(len1)
    return tuple(lst)


a = eval(input('请输入:'))
print(hanshu(a))

7、列表 L = [(92,88), (79,99), (84,92), (66, 77)]有 4 项数据,每项数据表示学生的语文和数学成绩。求数学成绩最高的学生的成绩。提示:应用 max 函数,然后设计 lambda 函数来实现, max(L, key=lambda ________ )

# 博主链接:https://blog.csdn.net/qq_45148277
# email:[email protected]
# 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
# 开发时间:2022/6/5 16:38
## 7、列表 L = [(92,88), (79,99), (84,92), (66, 77)]
# 有 4 项数据,每项数据表示学生的语文和数学成绩。求数学成绩最高的学生的成绩。
# 提示:应用 max 函数,然后设计 lambda 函数来实现, max(L, key=lambda ________ )
L = [(92, 88), (79, 99), (84, 92), (66, 77)]


def bijiao(tup):
    return tup[1]


print(max(L, key=bijiao))
print(max(L, key=lambda tup: tup[1]))

dic = {
    
    "a": 1, "b": 2, "c": 3}


def bijiao2(key):
    return dic[key]


print(min(dic, key=bijiao2))
print(min(dic, key=lambda k: dic[k]))

在这里插入图片描述

# 博主链接:https://blog.csdn.net/qq_45148277
# email:[email protected]
# 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
# 开发时间:2022/6/5 16:41
# 8、1920 年代后期,数学家大卫•希尔伯特的学生 Gabriel Sudan 和威廉•阿克曼,当时正研究计算的基础。Sudan 发明了一个递归却非原始递归的 Sudan 函数。1928 年,阿克曼又独立想出了另2021一个递归却非原始递归的函数。它需要两个自然数作为输入值,输出一个自然数。它的输出值增长速度非常高,仅是(4,3)的输出已大得不能准确计算。阿克曼函数定义如下:
#
# 输入:两个整数(不大于 4 和 3),中间以空格分开
#
# 输出:这两个整数的参数值

def A(m, n):
    if m == 0:
        return n + 1
    elif m > 0 and n == 0:
        return A(n - 1, 1)
    elif m > 0 and n > 0:
        return A(m-1,A(m,n-1))
    else:
        return "输入内容不规范"

m = input(int("输入m"))
n = input(int("输入n"))
print(A(m,n))

9、编写函数,接收一个字符串,判断该字符串是否为回文。所谓回文是指,从前向后读和从后向前读是一样的。

# 博主链接:https://blog.csdn.net/qq_45148277
# email:[email protected]
# 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
# 开发时间:2022/6/5 16:48
# 9、编写函数,接收一个字符串,判断该字符串是否为回文。所谓回文是指,从前向后读和从后向前读是一样的。

def check(str1):
    if str1 == str1[-1::-1]:
        return True
    return False


str1 = input("输入字符串 :")

if check(str1):
    print(str1, "是回文字符串")
else:
    print(str1, "不是回文字符串捏")

10、编写函数,接收参数 a 和 n,计算并返回形式如 a + aa + aaa + aaaa +…+ aaa…aaa 的表达式前 n 项的值,其中 a 为小于 10 的自然数。

# 作者:邵昱原
# 博主链接:https://blog.csdn.net/qq_45148277
# email:[email protected]
# 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
# 开发时间:2022/6/5 17:19
# 10、编写函数,接收参数 a 和 n,计算并返回形式如 a + aa + aaa + aaaa +…+ aaa…aaa 的表达式前 n 项的值,其中 a 为小于 10 的自然数。

def hanshu(a,n) :
    sum = 0
    if type(a) != type(1) or a >= 10 or a <=0:
        print("憨憨,输入的不合法")
        return
    else :
        for i in range(0,n):
            sum += int(str(a)*(i+1))
    return sum

a = eval(input("输入a:"))
n = eval(input("输入n:"))
print(hanshu(a,n))

上学的时候事情太多导致没有坚持更新博客,我的很多实验也copy了很多朋友的,现在放假了,每天会复习一部分来练练手,并改正其中的一些错误。

猜你喜欢

转载自blog.csdn.net/qq_45148277/article/details/125134381