python - 与或运算符一起使用时,while 语句中的逻辑错误
问题描述
我编写了以下代码块。该代码在语法上是正确的,但有一些我找不到的逻辑错误。该代码采用名称、作者并根据用户输入分配一个要读取的布尔值。while 循环部分有一些逻辑错误,由于解释器永远不会进入 while 循环,因此 add_book 函数失败,因为 read 没有分配值。
name = input("Title: ").lower()
author = input("Author: ").lower()
has_read = input("Mark as Read (y/n): ").lower()
while has_read not in ['n', 'y']:
if has_read == 'y':
read = True
else:
read = False
add_book(name, author, read)
解决方案
如果他们没有提供有效的输入,您可能需要重新询问用户。也许是这样的:
name = input("Title: ").lower()
author = input("Author: ").lower()
valid = False
while not valid:
has_read = input("Mark as Read (y/n): ").lower()
if had_read in ['n', 'y']:
valid = True
if has_read == 'y':
read = True
else:
read = False
add_book(name, author, read)
推荐阅读
- javascript - ajax 进程运行时在引导箱中显示加载消息?
- python - 如何将 statsmodels 测试的结果导出到 CSV?
- elasticsearch - Kibana 中的日期显示不正确
- scala - 隐藏到 Unix 时间戳
- javascript - IE 11 文件选择问题 - 远程连接上缺少文件
- android - 在下载的派生 APK 中找不到默认活动
- php - 如何删除没有产品的类别?
- swift - 无法使用 Cocoapod 将 Firebase 存储添加到我的 SwiftUI 应用程序
- javascript - Javascript 如何使文本变大 10%
- css - 壁纸在主题中调整和放大我的 Wordpress 登陆页面