3 回答
TA贡献1804条经验 获得超3个赞
以下是一些入门知识:
fakeID = {'1111111','1111112','1111113','1111114','1111115'}
while True:
id = input('Please enter your student ID and hit Enter')
if id == '9999990':
print('Done')
break
if id not in fakeID:
print('I do not know this ID. Please try again.')
continue
TA贡献1784条经验 获得超8个赞
如果我正确理解您的问题,那么我想您正在尝试将学生的 ID 号保存在inputIdList 中,然后检查特定 ID 是否在inputIdList 中。在最后一个if条件中,您尝试将List类型对象与String类型对象进行比较,这肯定会引发TypeError。而是定义以下函数并在if条件中调用它。
def check_list(id):
try:
inputIdList.index(id)
return True
except TypeError:
return False
list.index()方法尝试在列表中查找元素并返回元素的索引号。然后在你的if条件中调用这个函数。
if check_list('9999990'):
print('done')
#break
此外,inputIdList = [""]如果您已经将其初始化为inputIdList = []. 如果问题仍然存在,请在线程中发送输出。
TA贡献1847条经验 获得超7个赞
正如 Abarnert 所说,您需要重组您的方法。但我想我找到了你被卡住的地方。检查输入数字的长度后,您应该检查该数字是否与任何匹配fakeID
,并获取相应的类名称。所以你的第一个循环应该是这样的
for i in toplist:
而不是
for i in [i for i,x in enumerate(inputIDList) if x == fakeID]:
因为inputIDList
是空的,你的程序不会进入循环。在更改后的循环中,您应该检查
if s == fakeID
这是我对您所需操作的理解的极限。但是,如果您需要进一步的帮助,请询问。干杯。
添加回答
举报