首页 > 解决方案 > 关于魔术 8 球程序的问题以及来自 Automate the Boring Stuff with Python 的列表

问题描述

我无法理解用 Python 自动化无聊的东西一书中的魔术 8 球程序。该程序基本上在一个列表中有一堆消息,然后使用 random.randint 方法随机选择其中一个消息。代码如下:

import random

messages = ['It is certain',
    'It is decidedly so',
    'Yes definitely',
    'Reply hazy try again',
    'Ask again later',
    'Concentrate and ask again',
    'My reply is no',
    'Outlook not so good',
    'Very doubtful']

print(messages[random.randint(0, len(messages) - 1)])

正如你所看到的,这个程序相当简单。我的问题是关于最后一行。他为什么要从消息长度中减去 1?random.randint 方法不应该从所有消息中选择一些东西,而不仅仅是一些。有 9 条消息,但减去 1 意味着只有 8 条消息通过 random.randint 方法。有人可以解释为什么他从消息长度中减去 1 吗?

提前感谢您的回复!

标签: python

解决方案


Python 索引从 0 开始,而不是 1。如果列表中有 9 个条目,则需要 0-8 范围内的随机整数。


推荐阅读