#python 我想实现循环判断并且跳出循环嵌套,个人认为逻辑通顺,但是没能实现功能

问题遇到的现象和发生背景

为啥我的代码跑起来一直是请输入书名?

问题相关代码,请勿粘贴截图
   ```python

books = []
num = 0
choice = 1
while 1:
if num < 3:
while choice:
name = input('请输入书名:')
for book in books:
if book.get('书名') == name:
print('添加书名重复,重新添加')
else:
choice = 0
break

    author = input('请输入作者:')
    price = input('请输入价格:')
    books.append({'书名': name, '作者': author, '价格': price})
    num += 1
    print(books)
else:
    print('图书信息添加完成!')
    print(books)
    break

```

运行结果及报错内容
我的解答思路和尝试过的方法

我的想法是如果书名输入不重复choice重新赋值为0,while循环跳出,break跳出for循环

我想要达到的结果

判断输入的书名是否重复,如果重复提示重新输入,不重复继续输入作者和价格

代码这样修改即可:

books = []
num = 0
while 1:
    if num < 3:        
        name = input('请输入书名:')
        names=[book['书名'] for book in books ]        
        if name in names:
            print('添加书名重复,重新添加')
        else:
            author = input('请输入作者:')
            price = input('请输入价格:')
            books.append({'书名': name, '作者': author, '价格': price})                          
            num += 1
    else:
        print('图书信息添加完成!')
        print(books)
        break
    

如有帮助,请点采纳。

层次看不清楚,用代码块功能,重新发一下代码。

img

其他语言不用代码片功能发出来还不算致命,可以将就着看一下,因为除了 python,基本上对缩进都没有严格要求。
你这个python还不用代码片功能发,那太致命了,没人能看懂你的代码。