python - Python TypeError:无法解压不可迭代的布尔对象
问题描述
TypeError: cannot unpack non-iterable bool object
当我尝试搜索列表时,我得到了。当我返回一个布尔值和我正在搜索的项目的索引值时。
def name_ser(name):
found = False
for i in range(len(names)):
if names[i] == name:
found = True
return found, names.index(name)
else:
found = False
return found,None
def main_menu():
print('Welcome!\nPlease Choose from the following options...')
print('1: Create an account\n2: Login ')
opt = int(input('Enter Your Choice: '))
if opt == 1:
name_search = input('Enter Name... ')
found, _ = name_ser(name_search)
if found == True:
print("Account Already excites!")
elif found == False & len(names) == 0:
acc_creation(name_search)
print('Account created!')
错误:
Traceback (most recent call last):
File "/Users/darkmbs/VS-Code/FirstPythonProject/accounts.py", line 100, in <module>
main_menu()
File "/Users/darkmbs/VS-Code/FirstPythonProject/accounts.py", line 77, in main_menu
found, _ = name_ser(name_search)
TypeError: cannot unpack non-iterable NoneType object
解决方案
name_ser
可以返回 3 个不同的对象。
def name_ser(name):
found = False
for i in range(len(names)):
if names[i] == name:
found = True
return found, names.index(name) <== returns 2-tuple
else: <== if name[0] doesn't match,
found = False executes immediately
return found <== returns boolean
<== if names is empty, returns None
您需要一致的返回类型。但实际上,这个功能根本不应该存在。它试图返回name
innames
或的索引False
。str.find
差不多就是这样。
def main_menu():
print('Welcome!\nPlease Choose from the following options...')
print('1: Create an account\n2: Login ')
opt = int(input('Enter Your Choice: '))
if opt == 1:
name_search = input('Enter Name... ')
if name_search in names:
print("Account Already exists!")
else:
acc_creation(name_search)
print('Account created!')
name_ser
在添加帐户之前,我还删除了为空的支票。我认为如果只有一个人可以创建一个帐户会很奇怪。
推荐阅读
- javascript - JavaScript:未捕获的 ReferenceError:未定义用户名
- powerbi-desktop - 从 OBIEE 转换的 Power BI 报表生成器
- sql - 如何存储一个值以便以后在 SQL 中使用它?
- h.264 - 在分析h264时,Elecard Stream Eye中的比特分配点和大小是什么意思?
- javascript - 给定一个 div 如何选择一个 div 中的所有 contenteditable 插入符号
- python - 为什么我的备忘录对象打印 Python 中数组的所有组合?
- intellij-idea - WebStorm 打开几个空窗口
- python-3.x - 优化 python 练习。示例:k == 1 或 k == 2 或 k == 3
- python-3.x - 一次从多列中查找混合数据类型
- windows - 用于格式化源日期的 Windows bat 文件脚本