栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

解决Python中的TypeError list indices must be integers or slices, not float问题

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

解决Python中的TypeError list indices must be integers or slices, not float问题

写在前面

今天再写一个Python小练习的时候,遇到了一个语法错误的问题TypeError list indices must be integers or slices, not float

后来仔细分析了下,想起来了了Python中的 " / " 与 Java和C语言里的作用是不一样的,Python里是取到的小数,并非是整数

如果想取整数,需要用 " // "

而且列表里的下标索引是不允许为小数的,故出现了如上的语法问题

练习代码
"""
计算数集中的中位数
实训思路及步骤
(1) sorted函数可对列表中的元素进行排序。
(2)使用下标可获取列表中对应位置的元素。
(3)列表中元素的个数为奇数时,中位数为列表正中间位置的那个数。
(4) 列表中元素的个数为偶数时,中位数为列表正中间位置的两个数的均值。
"""


# 获取中位数
def get_mid_num(*nums):
    # 先排序(这种不会改变原列表)
    new_nums = sorted(nums)
    # 计算其长度
    n = len(new_nums)
    # 如果长度为奇数,直接去取中间数即可
    if n % 2 != 0:
        # 需要注意list下标索引不能为float类型,所以需要使用 " // "
        return new_nums[n // 2]
    # 如果为偶数,取中间两数的均值
    else:
        return (new_nums[n // 2] + new_nums[n // 2 - 1]) / 2

# 调用函数获取中位数
print(get_mid_num(2, 3, 5, 1, 6, 7))

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/931467.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号