python - 如何在 Python 的控制流语句中使用列表
问题描述
所以我一直在使用 Python 3.7 开发一个基本的机器人,并且正在开发一个关闭功能。当用户键入单词“shutdown”或“Shutdown”时,机器人会确认您是否真的要关闭程序。
对于“是:”和“否”命令,我将所有命令存储在一个列表中。现在,当我使用我创建的程序时,它只适用于列表中的第一项,而不适用于其他项目。给出的例子以下:
import time
shutdownAnswerYes = ["Yes", "yes", "Ye", "ye", "Y", "y"]
shutdownAnswerNo = ["No", "no", "nah", "nope", "N", "n"]
shutdown = "shutdown"
while True:
question = input("What do you want to do?: ")
if question == shutdown:
shutdownAnswer = input("Are you sure you want to shutdown?: ")
if shutdownAnswer == shutdownAnswerNo[0]:
print("Got it! Resuming back to normal mode.")
elif shutdownAnswer == shutdownAnswerYes[0]:
print("Got it! Shutting down.")
time.sleep(1)
exit("Shutdown Complete.")
如果您尝试运行此代码,您会注意到,如果您键入列表中的第一项“是”或“否”,程序将正常运行。但是,如果您在列表中键入任何其他项目,例如“是”或“否”,它将不起作用。
我也通过更改 [] 括号中的数字来尝试此代码,但它不起作用。
解决方案
您刚刚检查了索引为 0 的第一个元素。
import time
shutdownAnswerYes = ["Yes", "yes", "Ye", "ye", "Y", "y"]
shutdownAnswerNo = ["No", "no", "nah", "nope", "N", "n"]
shutdown = "shutdown"
while True:
question = input("What do you want to do?: ")
if question == shutdown:
shutdownAnswer = input("Are you sure you want to shutdown?: ")
if shutdownAnswer in shutdownAnswerNo:
print("Got it! Resuming back to normal mode.")
elif shutdownAnswer in shutdownAnswerYes:
print("Got it! Shutting down.")
time.sleep(1)
exit("Shutdown Complete.")
推荐阅读
- python - 在安装 docker 之前删除 setup.py 中的 docker-py
- javascript - 应出现仅包含具有相同类的子级的 Javascript 单选按钮
- mfc - CPropertySheet 中对话框的垂直滚动条不起作用
- multithreading - 通过多线程实现数据并行性,在每个线程中调用实用程序来处理文件
- postgresql - 无法从 Dash 应用程序中的 PostgreSQL 查询结果绘制图形
- sql - SQL case 表达式在 grafana 中无法正常工作
- javascript - 如何在 NVD3.js 中选择现有图表并更新它
- javascript - javascript对象中共享变量的最佳实践
- vb.net - 遍历 Unicode 范围
- c - 用于在引导加载程序应用程序中计算 crc 的软件逻辑