1、编写函数求三个整数的最大值,函数原型为 def max3(a, b, c)
2、编写函数main()接收一个包含若干整数的列表参数lst,要求返回其中大于8的偶数组成的新列表,如果不存在就返回空列表。如果接收到的参数lst不是列表或者列表中不都是整数,就返回‘数据不符合要求’。
3、函数 main()接受3个分别表示年、月、日的正整数year,month,day,要求返回表示year年month月day日是周几的整数,1表示周一,2表示周二,以此类推,7表示周日。例如main(2020,10,5)返回1.可导入必要的标准库。
4、编写函数,函数原型为 def f(n),求 f(x)的值。函数的定义如下图所示:
5、输入两个正整数 m 和 n(m 输入:m n 输出:素数和 样例输入:1 10 样例输出:17 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 提示:函数形参为系列类型,返回值是形如“(最大值,最小值,元素个数)”的元组 7、列表 L = [(92,88), (79,99), (84,92), (66, 77)]有 4 项数据,每项数据表示学生的语文和数学成绩。求数学成绩最高的学生的成绩。提示:应用 max 函数,然后设计 lambda 函数来实现, max(L, key=lambda ________ ) 8、1920 年代后期,数学家大卫•希尔伯特的学生 Gabriel Sudan 和威廉•阿克曼,当时正研究计算的基础。Sudan 发明了一个递归却非原始递归的 Sudan 函数。1928 年,阿克曼又独立想出了另2021一个递归却非原始递归的函数。它需要两个自然数作为输入值,输出一个自然数。它的输出值增长速度非常高,仅是(4,3)的输出已大得不能准确计算。阿克曼函数定义如下: 输入:两个整数(不大于 4 和 3),中间以空格分开 输出:这两个整数的参数值 9、编写函数,接收一个字符串,判断该字符串是否为回文。所谓回文是指,从前向后读和从后向前读是一样的。 10、编写函数,接收参数 a 和 n,计算并返回形式如 a + aa + aaa + aaaa +…+ aaa…aaa 的表达式前 n 项的值,其中 a 为小于 10 的自然数。 Python实验三报告 一.实验内容: 编写函数求三个整数的最大值,函数原型为 def max3(a, b, c) 运用简单函数,传入参数。 在函数里面做判断,然后输出较大的。 代码: 一.实验内容: 编写函数main()接收一个包含若干整数的列表参数lst,要求返回其中大于8的偶数组成的新列表,如果不存在就返回空列表。如果接收到的参数lst不是列表或者列表中不都是整数,就返回‘数据不符合要求’。 求连续的和时,要会运用遍历思想。 代码: 一.实验内容: 函数 main()接受3个分别表示年、月、日的正整数year,month,day,要求返回表示year年month月day日是周几的整数,1表示周一,2表示周二,以此类推,7表示周日。例如main(2020,10,5)返回1.可导入必要的标准库。 三.实验结果: 四.实验小结: 难点在于要学会使用datetime.strptime().weekday(),之后就能一步解决。 代码: 一.实验内容: 编写函数,函数原型为 def f(n),求 f(x)的值。函数的定义如下图所示: 二.实验过程: 1.定义函数f(n); 2.从键盘录入x值 3.在函数里面用if..elif..else判断。 4.返回计算的值到y里面。 5.输出y 三.实验结果: 四.实验小结: 定义一个变量来接受函数返回的值就是所求的y值。 代码: 一.实验内容: 输入两个正整数 m 和 n(m 输入:m n 输出:素数和 样例输入:1 10 样例输出:17 二.实验过程: 1.从键盘录入两个整数m,n(m 2.定义一个空列表lst 3.定义函数is_prime() 4.遍历m,n之间的数,判断是否为素数。 5.将符合条件的用append函数添加到列表中。 6.遍历is_prime函数。 7.用sum()函数将列表内的值相加。 三.实验结果: 四.实验小结: 要了解何为素数(只有一和它本身),然后接下来要对两个数之间的数进行遍历,筛选出满足条件的数,最后再用sum()函数进行相加。 代码: 一.实验内容: 编写程序,利用元组作为函数的返回值,求系列类型中的最大值、最小值和元素个数,并编写测试代码,假设测试数据分别为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 提示:函数形参为系列类型,返回值是形如“(最大值,最小值,元素个数)”的元组 二.实验过程: 三.实验结果: 四.实验小结: 主要需要掌握max(),min(),len()函数的运用。 代码: 要知道max()函数和lambda函数的如何使用。 代码: 、1920 年代后期,数学家大卫•希尔伯特的学生 Gabriel Sudan 和威廉•阿克曼,当时正研究计算的基础。Sudan 发明了一个递归却非原始递归的 Sudan 函数。1928 年,阿克曼又独立想出了另2021一个递归却非原始递归的函数。它需要两个自然数作为输入值,输出一个自然数。它的输出值增长速度非常高,仅是(4,3)的输出已大得不能准确计算。阿克曼函数定义如下: 输入:两个整数(不大于 4 和 3),中间以空格分开 输出:这两个整数的参数值 要看懂题目给的一系列数再去做题。 代码: 编写函数,接收一个字符串,判断该字符串是否为回文。所谓回文是指,从前向后读和从后向前读是一样的。 利用列表的性质做题就会容易多。 代码: 一.实验内容: 编写函数,接收参数 a 和 n,计算并返回形式如 a + aa + aaa + aaaa +…+ aaa…aaa 的表达式前 n 项的值,其中 a 为小于 10 的自然数。 二.实验过程: 1.定义一个函数main() 2.在函数里面定义一个变量sum。 3.用for...in遍历传进来的数。 4.再用if...else做判断。 三.实验结果: 要知道如何将a变成aa,aaa等。 代码:
# 1、编写函数求三个整数的最大值,函数原型为 def max3(a, b, c)
x,y,z = eval(input("请分别输入三个整数,用,隔开:"))
# y = int(input("第二个整数:"))
# z = int(input("第三个整数:"))
def max3(a, b, c):
temp = 0
max1 = 0
if a > b:
temp = a
else:
temp = b
if temp > c:
max1 = temp
else:
max1 = c
print('最大值为', max1)
max3(x, y, z)
# 2、编写函数求 1~n 之和,函数的原型为 def sum_n(n)。
a = int(input('请输入1~n的和的n值:'))
def sum_n(n):
sum1: int = 0
for i in range(1,n+1):
sum1 += i
return sum1
print('值为:', sum_n(a))
# 3、函数 main()接受3个分别表示年、月、日的正整数year,month,day,要求返回表示year年month月day日是周几的整数,
# 1表示周一,2表示周二,以此类推,7表示周日。例如main(2020,10,5)返回1.可导入必要的标准库。
from datetime import datetime
def main(str):
week = datetime.strptime(str, "%Y%m%d").weekday()
print("今天是星期", end='')
print(week+1)
a = input('请输入年月日:')
main(a)
# 4、编写函数,函数原型为 def f(n),求 f(x)的值。函数的定义如下图所示:
def f(n):
if n < 1:
return n
elif 1 <= n < 10:
return 2 * n - 1
elif n >= 10:
return 3 * n - 11
else:
print('您输入数字有误。')
x = eval(input("请输入一个数:"))
y = f(x)
print('值为:', y)
# 5、输入两个正整数 m 和 n(m
# 编写程序,利用元组作为函数的返回值,求系列类型中的最大值、最小值和元素个数,
# 并编写测试代码,假设测试数据分别为s1=[9,8,7,3,2,1,55,6]、s2=['apple','pear','melon','kiwi'],s3='TheQuickBrownFox'。
def print_info(x):
i = max(x)
j = min(x)
l = len(x)
print("最大值是%s" % i)
print("最小值是%s" % j)
print("元素个数是{0}".format(l))
return i, j, l
s1 = [9, 8, 7, 3, 2, 1, 55, 6]
s2 = ['apple', 'pear', 'melon', 'kiwi']
s3 = 'TheQuickBrownFox'
q = print_info(s1)
print(q)
w = print_info(s2)
print(w)
e = print_info(s3)
print(e)
# 列表 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)]
# res = [x[1] for x in L]
# print(res)
# max(res,key=lambda x:[res])
#def main(x,y):
# return x+y
#
#t1 = lambda x,y:x+y
#
a = max(L, key=lambda x: x[1])
print(a)
# 输入:两个整数(不大于 4 和 3),
#
# 输出:这两个整数的参数值
def main(m, n):
if (m == 0):
return n + 1
elif (n == 0):
return main(m - 1, 1)
else:
return main(m - 1, main(m, n - 1))
m = int(input('请输入m:'))
n = int(input('请输入n:'))
print(main(m, n))
# 编写函数,接收一个字符串,判断该字符串是否为回文。所谓回文是指,从前向后读和从后向前读是一样的。
def test9(str):
# 先转化为一个 列表
str1 = list(str)
# 利用列表的reverse函数实现反转
str1.reverse()
# 最后在通过join方法实现转换为一个字符串;
str1 = "".join(str1)
if str == str1:
print("是一个回文串:", str1)
else:
print("不是一个回文串", str1)
a = input("请输入一串数字:")
test9(a)
# 编写函数,接收参数 a 和 n,计算并返回形式如 a + aa + aaa + aaaa +…+ aaa…aaa 的表达式前 n 项的值,其中 a 为小于 10 的自然数。
def main(a, n):
flag = 0
m = a
sum = 0
for i in range(1, n + 1):
sum += m
if flag == 0:
print(m, end=" ")
else:
print("+ {}".format(m), end=" ")
m = 10 * m + a
flag += 1
print('值为',sum)
main(6,3)