python - 关于魔术 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 索引从 0 开始,而不是 1。如果列表中有 9 个条目,则需要 0-8 范围内的随机整数。
推荐阅读
- python - 使用批处理数据集时如何应用 map()?
- javascript - 显示照片
- python - 在 Python 中调用具有可变数量的关键字参数的函数
- wifi - wl18xx 模块在使用 Linux 4.19.33 + Xenomai 3.1 的 imx6q 上挂起
- python - 有没有办法在不知道数据位置的情况下从 DataFrame 中搜索数据?
- javascript - Javascript chrome扩展没有点击带有click()的按钮
- ios - Xcode 13 doesn't show quick help when option click user defined property, function, etc
- abap - 根据最新记录过滤掉z表内的记录
- postgresql - 默认 Postgres 为 14,数据库文件为 v12
- html - 使用 npm 时,字体真棒图标未在 netlify 上加载