“随机”取整(“random” randint)
天有不测风云,人有祸福旦夕。买彩票的人说不定哪天会中奖,或者天上掉下金砖砸中你也说不定。貌似我们上天自有安排,很多事情我们无法决定,正所谓塞翁失马,焉知祸福。在现在所谓的“大数据”时代,对海量的数据进行统计分析还能对“未来”进行预测。不过,我敢肯定的时,这些数据都是在一定的范围之内的。前面我们学了range命令,它能取一系列范围内的整数,如果要取一系列范围内的随机一个数据,需要如何编写代码?Python本身可是无能为力了,这得搬求兵。这求兵的名字叫random。它就是鼎鼎大名的随机模块。怎么个搬法,用import random就行了。import是导入,输入的意思。救兵搬来了要怎么使用这个大神呢?大神有很多魔法,这之一是randint,下面我们来看看如何使用randint吧。代码如下所示:
>>> import random # 导入随机模块
>>> (0,100) # 随机取一个从0到100之间的整数
16
>>> (10,20) # 随机取一个从10到20之间的整数
19
>>>
>>> (-10,10) # 随机取一个从-10到10之间的整数
9
>>>
randint命令是random和integer的组合。我们把它叫随机取整命令。 在上面的代码中,我们通过import random导入了随机模块,然后调用了它的randint命令。它是用来随机从某个范围内取一序列整数的。这个命令有两个参数,第一个参数表示数据的起始值,第二个参数表示数据的结束值。起始值要小于结束值,否则红色的字符给你的颜色会非常好看。
>>> import random
>>> (100,10) # 起始数据大于结束数据,无法取得整数
Traceback (most recent call last):
File "", line 1, in
(100,10)
File "C:\Python\Python36\lib\", line 221, in randint
return (a, b+1)
File "C:\Python\Python36\lib\", line 199, in randrange
raise ValueError("empty range for randrange() (%d,%d, %d)" % (istart, istop, width))
ValueError: empty range for randrange() (100,11, -89)
>>>
创建列表 (create list)
前面我们犹抱琵琶半遮面地谈过列表。列表这位“仁兄”是现在要正式出场了。我们把它请出来,看看它的“庐山真面目”。怎么个请法,方法有二。第一种方法就是直接输入一对中括号,即[],第二个方法就是用命令list加小括号,这样列表就“光着膀子”诞生了。下面的代码生成了两个列表,一个名为one,一个名为two。只不过它们都是空空如也,就是说两个列表中没有数据。
>>> one = [] # 直接用中括号新建一个空列表
>>> two = list() # 新list命令新建一个空列表
>>> one
[ ]
>>> type(one) # 显示one的类型
>>>
有句谚语叫:墙上芦苇,头重脚轻根底浅,山间竹笋,嘴尖皮厚腹中空。上面的两个列表光有皮囊一付,留在“世上”貌似无用。佛祖以仁爱为厚德,暂且我们不要删除它们。我们要对它们进行“改造”,给它们添加数据,让它们有用武之地。英语中的append是添加的意思,在Python中用它做为列表的添加命令。用法见下面的代码:
>>> three = list() # 新建空的列表,名为three
>>> (1) # 给three添加1
>>> (2) # 给three添加2
>>>(3) # 给three添加3
>>> three
[1, 2, 3]
通过append命令,我们给列表添加了三个数据。append的用法是不是非常简单呢?这三个数据在列表中以逗号为分隔,它们从左数到右有一个“编号”,这个“编号”正式的名称叫索引(index),也可以称之为下标。索引是从0开始的。在这个列表中索引为0的数据是1,索引为1的数据是2,索引为2的数据是3。新建列表的时候,我们可以直接在中括号是写入数据,由于在列表中不仅可以存储数字,还能存储字符串,以下列表存储了一些水果的英文名称。
>>> fruit = ['apple','banana','peach','watermelon']
>>>
>>> ('pear')
>>> fruit
['apple', 'banana', 'peach', 'watermelon', 'pear']
>>>
如果要引用列表中的数据或者修改列表中的数据要如何书写?首先,需要指定索引号,这样就能知道对哪个数据进行操作了。接着,把索引号放在中括号中就行了,当然还要指明是取哪个列表的数据,下面的代码修改了索引为0的数据,打印了其它的数据。
>>> fruit[0] = 'pineapple' # 修改索引为0的数据
>>> print(fruit[1]) # 打印索引为1的数据
banana
>>> print(fruit[2]) # 打印索引为2的数据
peach
>>> print(fruit[3]) # 打印索引为3的数据
watermelon
>>> print(fruit[4]) # 打印索引为4的数据
pear
>>> print(fruit[5]) # 打印索引为5的数据
Traceback (most recent call last):
File "", line 1, in
print(fruit[5])
IndexError: list index out of range
>>> fruit
['pineapple', 'banana', 'peach', 'watermelon', 'pear']
>>>
在上面的代码中,fruit列表有5个数据,那么它最大的索引号为4。如果试图访问fruit[5]那就会出现索引错误。上面的英文:IndexError: list index out of range就是索引错误,列表的索引超出范围之意思。
来次小小的总结,在Python列表就是以逗号隔开,以中括号括起来的数据集合,这些数据可以是小数,可以是逻辑数据,也可以是字符串,甚至是另一个列表。要访问或修改列表中的数据都要通过索引号来进行。列表的故事说不完,今天暂且到此结束。