zoukankan      html  css  js  c++  java
  • python3中报错:TypeError: 'range' object doesn't support item deletion

    1、源代码

       以下代码执行时会报  range' object does not support item assignment 的错误,问题出现在第17行的runge(10);

    import unittest
    import random
    
    class TestSequenceFunctions(unittest.TestCase):
    
        def setUp(self):
            #初始化一个递增序列
            self.seq = range(10)
        def runTest(self):
            #从序列seq中随机选取一个元素
            element = random.choice(self.seq)
            #验证随机元素确实属于列表中
            # self.assertTrue(element in self.seq)
    
    class TestDictValueFormatFunchions(unittest.TestCase):
        def setUp(self):
            self.seq = range(10)#这里是出错的地方
        def test_shuffle(self):
            #随机打乱原seq的顺序
            random.shuffle(self.seq)
            self.seq.sort()
            self.assertEqual(self.seq,range(10))
            #验证执行函数是跑出了TypeError异常
            self.assertEqual(TypeError,random.shuffle,(1,2,3))
    
    if __name__ == "__main__":
        unittest.main()

    2、修改后的代码

             在17行的基础上添加list(range(10))就ok了。

                  错误原因:是python3中range不返回数组对象,而是返回range对象

    import unittest
    import random
    
    class TestSequenceFunctions(unittest.TestCase):
    
        def setUp(self):
            #初始化一个递增序列
            self.seq = range(10)
        def runTest(self):
            #从序列seq中随机选取一个元素
            element = random.choice(self.seq)
            #验证随机元素确实属于列表中
            # self.assertTrue(element in self.seq)
    
    class TestDictValueFormatFunchions(unittest.TestCase):
        def setUp(self):
            self.seq = list(range(10))#这里是修改过的地方
        def test_shuffle(self):
            #随机打乱原seq的顺序
            random.shuffle(self.seq)
            self.seq.sort()
            self.assertEqual(self.seq,range(10))
            #验证执行函数是跑出了TypeError异常
            self.assertEqual(TypeError,random.shuffle,(1,2,3))
    
    if __name__ == "__main__":
        unittest.main()
  • 相关阅读:
    Hive学习之路 (十二)Hive SQL练习之影评案例
    Hive学习之路 (十一)Hive的5个面试题
    Guava Files 源码分析(二)
    Guava Files 源码分析(一)
    观察者模式与Guava EventBus
    Guava 源码分析之 Beta, GwtCompatible, GwtIncompatible, Charset, HashCode
    Java IO的简单示例
    从volatile说到i++的线程安全问题
    乐观锁与悲观锁
    SimpleDateFormat的线程安全问题与解决方案
  • 原文地址:https://www.cnblogs.com/zhanghaoyang/p/10271949.html
Copyright © 2011-2022 走看看