头歌 Python开发技术—组合数据类型

  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************#
array.sort()
array.pop()
x=array.pop(0)
array.append(x)
print(array)
#***********end************#
  1. 返回列表中最大和第二大的元素的值

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

相关知识
为了完成本关任务,你需要掌握: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************#
    x2 = x.copy()
    x2.sort()
    m1 = x2[-2]
    m2 = x2[-1]
    # **************end*************#
    return m1,m2  #m1是第二大的值,m2是最大值
  1. 计算指定的年月日是这一年的第几天

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

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

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

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

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

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

def is_leap_year(year):
    """
    判断指定的年份是不是闰年
    :param year: 年份
    :return: 闰年返回True平年返回False
    """
    return year % 4 == 0 and year % 100 != 0 or year % 400 == 0

def which_day(year, month, date):
    """
    计算传入的日期是这一年的第几天
    :param year: 年
    :param month: 月
    :param date: 日
    :return: 第几天
    """
    days_of_month = [
        [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31],
        [31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]
    ][is_leap_year(year)]
    total = 0
    for index in range(month - 1):
        total += days_of_month[index]
    return total + date

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

相关知识
为了完成本关任务,你需要掌握: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************#
    list = []
    for n in range (num):
        row = [1]
        list.append(row)
 
        if n==0:
            for i in row:
                print(i,end = '\t')
                print()
            continue
        for m in range(1,n):
            row.append(list[n-1][m-1]+list[n-1][m])
        row.append(1)
 
        for i in row:
            print(i,end = '\t')
        print()   
    

# **************end*************#



  • 3
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值