print(range(1,11))
运行结果如下:
range(1, 11)
想问一下这样为何无法排列出从1到10的十个数字,而是这样的结果?
因为这就是range这个类型默认的str()方式
你想打印1-10,改成
print(*range(1,11))
从指定的第一个值开始数,并在到达你指定的第二个值后停止,因此输出不包含第二个值
for value in range(1,5):
print(value)
print("\n")
for value in range(2,11,2): #设置步长:range(2,11,2) 第三个参数为步长
print(value)
根据参考资料中的段落1,我们可以使用以下代码来生成从1到10的十个数字:
def frange(start, stop, step):
return [x*step+start for x in range(0, round(abs((stop-start)/step)+0.5001), int((stop-start)/step<0)*-2+1)]
numbers = frange(1, 11, 1)
print(numbers)
这段代码使用了列表推导式来循环生成数字,并将其添加到列表中。其中,start
表示起始数字,stop
表示结束数字,step
表示步长。这样我们就可以得到从1到10的十个数字了。
代码的输出为:[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
在参考资料的段落1中,还提到了值得注意的一点,就是step
参数的符号很重要。如果我们去除掉frange
函数中的int((stop-start)/step<0)*-2+1
,并使用frange(1, 11, -1)
或frange(11, 1, 1)
,结果将会是空列表。这是因为步长为负数或起始数字大于结束数字都会导致无法生成数字。
所以,我们需要确保步长的符号和起始数字及结束数字的关系是一致的。如果起始数字小于结束数字,步长应该是正数;如果起始数字大于结束数字,步长应该是负数。