python,循环:搜索列表以查看是否存在项,并附加到新的lis

2024-04-26 02:54:59 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试做一个程序,我的学生将输入他们的身份证号码,这样我就可以(后面的代码)自动发送出勤,并记录谁交了作业和谁没有这样的电子邮件可以发送给家长。我有其他的一切,但我不能得到学生证的工作输入。你知道吗

我想做的是: 1) 确保其输入长度为7个字符 2) 检查他们的ID是否存在于“fakeID”中 2a)让学生用“是/否”从“类名”中确认自己的名字。 2b)把他们的名字加到inputIDList 3) 如果输入==到999999 0,则退出循环。你知道吗

它在做什么: 1) 征求意见 2) 在代码中继续,而不是循环 3) 不附加inputIDList

我觉得这对我现在的技术水平来说太复杂了。你知道吗

编辑: 循环没有检查输入的ID是否在我的fakeID列表中。 而且,它不是循环的,所以一旦输入,它就继续下一组代码。你知道吗

编辑2: 更新的代码。:D个

fakeID = ['1111111','1111112','1111113','1111114','1111115']
classNames = ['name1', 'name2', 'name3', 'name4', 'name5']
toplist = list(zip(fakeID, classNames))


inputIDList =[]
def inputID():
 while True:
     id = input('Please enter your student ID and hit Enter')

     if id == '9999990':
         print('Done')
         break

     if id in fakeID:
         inputIDList.append(id)
         print('recorder')
         continue

     if id not in fakeID:
         print('I do not know this ID. Please try again.')
         continue

Tags: 代码inid编辑ifnot名字学生
3条回答

正如阿巴内特所说,你需要重新构造你的方法。但我想我找到了你被困的地方。 检查完输入数字的长度后,应该检查该数字是否与任何fakeID匹配,并获得相应的类名。 所以你的第一个循环应该是这样的

for i in toplist:

而不是

for i in [i for i,x in enumerate(inputIDList) if x == fakeID]:

因为inputIDList是空的,所以程序不会进入循环。在改变的循环中你应该检查一下

if s == fakeID

这是我所能理解的你想要的行动的极限。但如果你需要进一步的帮助,尽管问。 干杯。你知道吗

如果我正确理解了您的问题,那么我假设您正在尝试将学生的ID号保存在inputIdList中,然后检查特定ID是否在inputIdList中。在最后一个if条件中,您试图将列表类型的对象与字符串类型的对象进行比较,这肯定会引发类型错误。而是定义以下函数并在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 = [],则无需将其赋值。 如果问题仍然存在,请在线程中发送输出。你知道吗

下面是一些让你开始的东西:

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

相关问题 更多 >