鱼C论坛

 找回密码
 立即注册
查看: 2319|回复: 3

[已解决]第五题怎么做

[复制链接]
发表于 2022-4-14 22:36:45 | 显示全部楼层 |阅读模式
2鱼币
本帖最后由 qiurenburuqiuji 于 2022-4-14 22:57 编辑

# A作业
# 1、 定义一个类: MyList,它包含:
# 1个实例属性:mylist在__init__魔法方法中初始化一个空列表赋值给实例属性mylist。
class MyList(object):
    def __init__(self):
        self.mylist = []

# 6个实例方法:
# 1) input_num()
# 在该方法中循环录入5个数字,并将录入的数字存到实例属性mylist中
    def input_num(self):
        for i in range(1,6):
            self.mylist.append(i)
        print(self.mylist)
# 2) calc_num()
# 计算列表中所有数字之和
    def calc_num(self):
        num = 0
        for i in self.mylist:
            num +=i
        print(num)
# 3) calc_even_num()
# 计算列表中所有偶数数字之和
    def calc_even_num(self):
        num1 = 0
        for i in self.mylist:
            if i % 2 == 0:
                num1 += i
        print(num1)
# 4) sort_list()
# 对列表mylist进行倒序排序
    def sort_list(self):
        print(self.mylist[::-1])
# 5) medium_num()
# 计算mylist中的中位数,如mylist属性值是[1,2, 3, 4, 5],则输出”中位数是3“
# ,如果mylist值是[1, 2,3, 4],则输出”中位数是2.5
#     def medium_num(self):




# 6) replace_item()
# 将mylist进行重置,将偶数下标的元素放在列表前面,奇数下标的元素放在列表后面
# ,如mylist属性值是[1,2, 3, 4, 5],则输出[1,3,5,2,4]  
    def replace_item(self):
        list1 = []
        list2 = []
        for i in self.mylist:
            if i % 2 != 0:
                list1.append(i)
            if i % 2 == 0:
                list2.append(i)
        print(list1+list2)
# 7) print_start()
# 输出3*3的直角三角形
    def print_start(self):
        for i in range(1, 4):
            print(i * "*")
# 8) find_max_num使用一定的逻辑处理,输出属性mylsit中的最大值,不能使用max()内置函数。
    def find_max_num(self):
        num1 = 0
        for i in self.mylist:
            if i > num1:
                num1 = i
        print(f"mylist中最大的值是{num1}")
# 思路:
# 第一步:定义类
# 第二步:定义方法
# 第三步:创建对象分别调用方法输出
a = MyList()
a.input_num() # 1
a.calc_num() #2
a.calc_even_num() #3
a.sort_list() #4
# a.medium_num()
a.replace_item()
a.print_start()
a.find_max_num()
最佳答案
2022-4-14 22:36:46
本帖最后由 isdkz 于 2022-4-14 23:11 编辑

    def medium_num(self):
        length = len(self.mylist)
        i, m = divmod(length, 2)
        if m:
            print(f'中位数是{self.mylist[i]}')
        else:
            print(f'中位数是{(self.mylist[i - 1] + self.mylist[i]) / 2}')

最佳答案

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2022-4-14 22:36:46 | 显示全部楼层    本楼为最佳答案   
本帖最后由 isdkz 于 2022-4-14 23:11 编辑

    def medium_num(self):
        length = len(self.mylist)
        i, m = divmod(length, 2)
        if m:
            print(f'中位数是{self.mylist[i]}')
        else:
            print(f'中位数是{(self.mylist[i - 1] + self.mylist[i]) / 2}')
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2022-4-14 22:52:40 From FishC Mobile | 显示全部楼层
什么意思?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2022-4-14 22:58:14 | 显示全部楼层

你再看一下
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-1-11 18:08

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表