Python 3.11.3中range()函数输出异常问题求助
关于Python 3中range()输出的问题
首先要明确:你看到的资料大概率是针对Python 2的,Python 3里的range()行为已经发生了变化。
在Python 3中,range()返回的是一个range对象(一种节省内存的可迭代序列),而非直接生成列表,所以直接执行print(range(4))会输出range(0, 4),这是正常现象,不是程序异常。
如果想要得到你预期的列表形式,需要把range对象转换成列表:
print(list(range(4))) # 输出 [0, 1, 2, 3]
另外,你提到预期输出是[1,2,3,4],这说明你还没注意到range()的参数规则:
range(n)默认从0开始,到n-1结束,所以range(4)覆盖0-3- 要生成1到4的序列,需要指定起始和结束值:
range(1, 5)(结束值是开区间,所以要写5)
对应的代码是:
print(list(range(1, 5))) # 输出 [1, 2, 3, 4]
你用help(range)时可以仔细看参数说明:range(start, stop[, step]),当只传一个参数时,这个参数是stop,start默认值为0。
内容的提问来源于stack exchange,提问作者qualquercoisa
相关产品推荐
相关产品推荐

