Headsong Python 第 3 章 Headsong 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]
'''
将array依次执行以下操作
1.把列表中的元素升序排序。
2.删除列表中的最后一个元素。
3.把列表中第一个元素移动到列表尾部。
4.返回新列表。
'''
array = [85,96,2,5,3,566,0,91,5234,5555,89,62,34]
#*******请输入您的代码********#
#***********begin************#
array1=sorted(array)
del array1[-1]
array3=array1[0:1:1]
array4=array1[1:12:1]
array4.extend(array3)
print(array4)
#***********end************#
第2关:返回列表中最大和第二大的元素的值
任务描述
本关任务:编写一个能返回传入列表中最大和第二大元素的值的函数。
相关知识
为了完成本关任务,你需要掌握:1.列表操作,2.循环语句,3.if条件语句。
编程要求
根据提示,在右侧编辑器补充代码,返回传入列表的第二大的值和最大值,要求不破坏原有列表。
测试说明
平台会对你编写的代码进行测试:
测试输入:[1,2,3,4,5,6] 预期输出:(5,6)
测试输入:[11,2,30,4,55,6] 预期输出:(30,55)
#x为传入的列表,完成函数编写,使其返回列表中最大值和第二大的值
def max2(x):
# 请在此处添加代码 #
# *************begin************#
m2=max(x)
a=x.index(m2)
del x[a]
m1=max(x)
# **************end*************#
return m1,m2 #m1是第二大的值,m2是最大值
第3关:计算指定的年月日是这一年的第几天
任务描述
本关任务:编写能返回年月日是这一年的第几天的函数。
相关知识
为了完成本关任务,你需要掌握:1.简单函数定义及调用,2.列表操作。
编程要求
根据提示,在右侧编辑器补充代码,返回输入年月日是这一年的第几天。
测试说明
平台会对你编写的代码进行测试:
测试输入:1981, 12, 31; 预期输出:365;
测试输入:1980,11,28; 预期输出:333;
def is_leap_year(year):
"""
判断指定的年份是不是闰年
:param year: 年份
:return: 闰年返回True平年返回False
"""
# 请在此处添加代码 #
# *************begin************#
if((year%4==0 and year%100!=0) or year%400==0):
return 1
else:
return 0
# **************end*************#
def which_day(year, month, date):
"""
计算传入的日期是这一年的第几天
:param year: 年
:param month: 月
:param date: 日
:return: 第几天
"""
# 请在此处添加代码 #
# *************begin************#
month_day=0
common_year = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]
leap_year = [31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]
if (is_leap_year(year)):
for i in range(month - 1):
month_day += leap_year[i]
return(month_day + date)
else:
for i in range(month - 1):
month_day += common_year[i]
return(month_day + date)
# **************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
# 打印杨辉三角
# (不需返回函数值,直接打印)
def printYH(num):
''':param num: 杨辉三角行数'''
# 请在此处添加代码 #
# *************begin************#
t = [[1], [1, 1]]
for i in range(2, num):
cul = [1]
pre = t[i - 1]
for j in range(i - 1):
cul.append(pre[j] + pre[j + 1])
cul.append(1)
t.append(cul)
for i in t:
for j in i:
if j < 10:
print(str(j), end= '\t')
else:
print(str(j), end= '\t')
print()
推荐阅读
-
第3版软件项目管理书籍第6章的练习题解答 - 关于成本管理部分的详尽参考答案
-
[Headsong-Python] Python 第 5 章作业(初级)(1~6) - 第 4 级:货币换算
-
Headsong Python 第 3 章 Headsong Python 第 3 章突围答案
-
计算机网络(第 3 版)》胡亮课后习题第 6 章答案
-
西安电子科技大学数据库原理(第 3 版)》 傅婷婷 第 3 章 课后习题答案
-
2024 年 3 月 ESI Python 程序设计水平考试(第 4 级)问题与答案
-
计算机网络自顶向下方法(第 6 版)》课后问题答案 | 第 3 章 - 习题
-
玩转Python数据分析!第3章:通过可视化呈现多层次数据