介绍
Python 2.x 中,用于生成整数序列的函数是 range()。本文将详细介绍 range() 函数的使用方法。
range() 函数的基本用法
range() 函数可以生成从 start 参数指定的值开始的一系列连续整数值,直到 end 参数指定的值为止,每次加上一个 step 参数指定的值。
语法如下:
range(start, end, step)
其中,start 参数表示整数序列开始的值,默认值为零;end 参数表示整数序列截止的值,但不包括这个值本身;step 参数表示相邻两个整数之间的差值,默认值为 1。
例如:
range(0, 10, 1)
这个函数将会生成一个整数序列,从 0 开始,到 10 结束,步长为 1。结果如下:
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
下面我们逐一介绍 start、end、step 参数的使用方法。
start 参数
start 参数表示整数序列的起始值。如果不指定 start 参数,则默认值为零。
下面我们看一下只指定 end 参数的用法:
range(5)
这个函数将会生成一个整数序列,从 0 开始,到 5 结束,步长为 1。结果如下:
[0, 1, 2, 3, 4]
另外,如果指定的 start 值大于 end 值,则不会生成任何整数。
range(5, 1)
运行结果是一个空列表 []。
下面我们通过一个例子来深入说明 start 参数的作用。
在一个数字序列中,如果一个数等于它前面一个数加上后面一个数,就称这个数为“Fibonacci 数”。下面我们来用 Python 程序找到 0~100 之间的所有 Fibonacci 数。
result = []
for i in range(101):
if i < 2:
result.append(i)
elif result[-2] + result[-1] == i:
result.append(i)
print(result)
输出结果如下:
[0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89]
以上代码中使用了 start 参数,将整数序列从 0 开始生成。
end 参数
end 参数表示整数序列截止的值,但不包括这个值本身。
下面我们看一下只指定 start 参数的用法:
range(2, 7)
这个函数将会生成一个整数序列,从 2 开始,到 7 结束,步长为 1。结果如下:
[2, 3, 4, 5, 6]
注意,最后一个数是 6,而不是 7。
另外,如果 end 参数小于或等于 start 参数,则不会生成任何整数。
range(5, 4)
运行结果是一个空列表 []。
下面我们通过一个例子来深入说明 end 参数的作用。
假设我们要实现一个函数,用于计算从 1 到 n 的所有整数之和。下面展示一种使用 range() 函数的方法。
def sum_to_n(n):
return sum(range(1, n + 1))
print(sum_to_n(10))
输出结果是 55,表示从 1 到 10 的所有整数之和。
step 参数
step 参数表示相邻两个整数之间的差值,默认值是 1。
下面我们看一下只指定 start 和 end 参数的用法:
range(2, 11, 2)
这个函数将会生成一个整数序列,从 2 开始,到 11 结束,每隔 2 个整数取一个数。结果如下:
[2, 4, 6, 8, 10]
下面我们通过一个例子来深入说明 step 参数的作用。
如果你使用过蒙特卡罗方法,就会知道它可以用来估算圆周率。蒙特卡罗方法是一种统计学方法,基于在圆和正方形之间的关系。下面展示一种使用 range() 函数的方法,计算出圆周率的值。
import random
def pi_estimate(n):
num_inside = 0
for i in range(n):
x = random.uniform(-1.0, 1.0)
y = random.uniform(-1.0, 1.0)
if x ** 2 + y ** 2 <= 1:
num_inside += 1
return 4.0 * num_inside / n
print(pi_estimate(100000))
输出结果如下(temperature=0.6):
3.13656
上述代码中,n 表示总的实验次数,执行 n 次实验,统计落入圆中的点的数量 num_inside,然后用 num_inside 除以 n,得出一个概率值。相乘 4.0 之后,即为 pi 的近似值。这里使用了 Python 的内置函数 random.uniform(),从一个区间中随机选择一个实数。
结论
本文详细介绍了 Python 2.x 中 range() 函数的基本用法,及其 start、end、step 参数的作用。通过示例代码,我们展示了如何在 Python 中使用 range() 函数生成整数序列,并且应用到实际问题中,让读者更好地理解 range() 函数的用法。