问答详情
源自:1-1 Python简介

r2 = range(1,10,2),print(r2[3:5])为什么输出结果是range(7, 11, 2)

r2 = range(1,10,2)

print(r2[3:5])

为什么输出结果是range(7, 11, 2)

提问者:weixin_慕妹1006807 2022-01-14 17:43

个回答

  • 慕粉3410778
    2022-07-23 14:06:17

    e跟我说过http://img3.mukewang.com/62db8fd50001fc0513541208.jpg

  • 吕郭飞
    2022-01-15 16:43:22

    首先了解range的语法:

    函数语法

    range(stop)range(start, stop[, step])

    参数说明:

    • start: 计数从 start 开始。默认是从 0 开始。例如range(5)等价于range(0, 5);

    • stop: 计数到 stop 结束,但不包括 stop。例如:range(0, 5) 是[0, 1, 2, 3, 4]没有5

    • step:步长,默认为1。例如:range(0, 5) 等价于 range(0, 5, 1)


    r2=range(1,10,2)

    说明这个可迭代对象是:1、3、5、7、9

    r2[3:5],中r2[3]=7,r[4]=9,r[5]=11

    则可以转换为:7、9、11

    所以 r2[3:5]=range(7,11,2)

    由于Python3 range() 函数返回的是一个可迭代对象(类型是对象),而不是列表类型, 所以打印的时候不会打印列表。

    所以print(r2[3:5]输出 range(7,11,2)