我编写了以下代码块。该代码在语法上是正确的,但是存在一些我找不到的逻辑错误。该代码输入名称,作者,并根据用户输入分配要读取的bool值。 while循环部分存在一些逻辑错误,由于该解释器无法进入while循环,因此add_book函数失败,因为未分配读取值。
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)
答案 0 :(得分:1)
如果用户未提供有效输入,则可能需要重新询问用户。也许是这样的:
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)