当前位置:   article > 正文

头歌python实训通关三_头歌python实训通关3

头歌python实训通关3

第1关:列表操作

任务描述

本关任务:给定一个列表,对其依次执行下列操作:1.把列表中的元素升序排序。2.删除列表中的最后一个元素。3.把列表中第一个元素移动到列表尾部。4.返回新列表。

相关知识

为了完成本关任务,你需要掌握:1.列表相关操作。

编程要求

根据提示,依次执行上述步骤,返回新列表。

测试说明

平台会对你编写的代码进行测试: 默认列表为:array = [85,96,2,5,3,566,0,91,5234,5555,89,62,34] 测试输入: 预期输出:[2, 3, 5, 34, 62, 85, 89, 91, 96, 566, 5234, 0]

  1. '''
  2. 将array依次执行以下操作
  3. 1.把列表中的元素升序排序。
  4. 2.删除列表中的最后一个元素。
  5. 3.把列表中第一个元素移动到列表尾部。
  6. 4.返回新列表。
  7. '''
  8. array = [85,96,2,5,3,566,0,91,5234,5555,89,62,34]
  9. #*******请输入您的代码********#
  10. #***********begin************#
  11. array1=sorted(array)
  12. del array1[-1]
  13. array3=array1[0:1:1]
  14. array4=array1[1:12:1]
  15. array4.extend(array3)
  16. print(array4)
  17. #***********end************#

第2关:返回列表中最大和第二大的元素的值

任务描述

本关任务:编写一个能返回传入列表中最大和第二大元素的值的函数。

相关知识

为了完成本关任务,你需要掌握:1.列表操作,2.循环语句,3.if条件语句。

编程要求

根据提示,在右侧编辑器补充代码,返回传入列表的第二大的值和最大值,要求不破坏原有列表。

测试说明

平台会对你编写的代码进行测试:

测试输入:[1,2,3,4,5,6] 预期输出:(5,6)

测试输入:[11,2,30,4,55,6] 预期输出:(30,55)

  1. #x为传入的列表,完成函数编写,使其返回列表中最大值和第二大的值
  2. def max2(x):
  3. # 请在此处添加代码 #
  4. # *************begin************#
  5. m2=max(x)
  6. a=x.index(m2)
  7. del x[a]
  8. m1=max(x)
  9. # **************end*************#
  10. return m1,m2 #m1是第二大的值,m2是最大值

第3关:计算指定的年月日是这一年的第几天

任务描述

本关任务:编写能返回年月日是这一年的第几天的函数。

相关知识

为了完成本关任务,你需要掌握:1.简单函数定义及调用,2.列表操作。

编程要求

根据提示,在右侧编辑器补充代码,返回输入年月日是这一年的第几天。

测试说明

平台会对你编写的代码进行测试:

测试输入:1981, 12, 31; 预期输出:365;

测试输入:1980,11,28; 预期输出:333;

  1. def is_leap_year(year):
  2. """
  3. 判断指定的年份是不是闰年
  4. :param year: 年份
  5. :return: 闰年返回True平年返回False
  6. """
  7. # 请在此处添加代码 #
  8. # *************begin************#
  9. if((year%4==0 and year%100!=0) or year%400==0):
  10. return 1
  11. else:
  12. return 0
  13. # **************end*************#
  14. def which_day(year, month, date):
  15. """
  16. 计算传入的日期是这一年的第几天
  17. :param year: 年
  18. :param month: 月
  19. :param date: 日
  20. :return: 第几天
  21. """
  22. # 请在此处添加代码 #
  23. # *************begin************#
  24. month_day=0
  25. common_year = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]
  26. leap_year = [31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]
  27. if (is_leap_year(year)):
  28. for i in range(month - 1):
  29. month_day += leap_year[i]
  30. return(month_day + date)
  31. else:
  32. for i in range(month - 1):
  33. month_day += common_year[i]
  34. return(month_day + date)
  35. # **************end*************#

第4关:打印杨辉三角

任务描述

本关任务:编写一个能根据输入行数打印杨辉三角的函数。

相关知识

为了完成本关任务,你需要掌握:1.列表操作,2.循环语句,3.if条件语句。

测试说明

平台会对你编写的代码进行测试:

测试输入:6; 预期输出: 1 1 1 1 2 1 1 3 3 1 1 4 6 4 1 1 5 10 10 5 1

测试输入:2; 预期输出: 1 1 1

  1. # 打印杨辉三角
  2. # (不需返回函数值,直接打印)
  3. def printYH(num):
  4. ''':param num: 杨辉三角行数'''
  5. # 请在此处添加代码 #
  6. # *************begin************#
  7. t = [[1], [1, 1]]
  8. for i in range(2, num):
  9. cul = [1]
  10. pre = t[i - 1]
  11. for j in range(i - 1):
  12. cul.append(pre[j] + pre[j + 1])
  13. cul.append(1)
  14. t.append(cul)
  15. for i in t:
  16. for j in i:
  17. if j < 10:
  18. print(str(j), end= '\t')
  19. else:
  20. print(str(j), end= '\t')
  21. print()

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Cpp五条/article/detail/423209
推荐阅读
相关标签
  

闽ICP备14008679号