for循环中的循环错误if语句python

时间:2021-03-16 01:01:34

标签: python-3.x

num = input()

id = list(result.keys())
print("key for "+ num +":")
for key in id:
   split = key.split('-')
    
   if num == split[0]:
        print(key)
   else:
        print("NOT FOUND")

这是我代码的一部分

它同时返回键值和多行“NOT FOUND”。

我相信我在 for 循环中犯了一些错误,但我陷入了困境。

任何建议将不胜感激。

2 个答案:

答案 0 :(得分:0)

首先,input 是 Python 中的保留关键字 - 不要命名您的变量。

其次,result 未在此处定义,但我假设它是在上面某处初始化的 dict。

我重构了您的代码 - 希望更改变量名称可以修复大部分错误:

inny = input()
print("Shape IDs for "+ the_input +":")
[print(str(k) if k.split('-')[0] == inny else "NOT FOUND") for k in list(result.keys())]

答案 1 :(得分:0)

id 也是您应该避免使用的内置函数的名称。

您代码中的 else 语句当前正在检查和打印每个键,因此会有很多行“未找到”。我建议使用一个变量来说明是否找到了数字,并在检查所有键后检查这个变量。

idn = ["4-123", "4-456", "4-789"]

num = input()
print("key for "+ num +":")

found = False
for key in idn:
    split = key.split("-")    
    if split[0] == num:
        found = True
        print(key)

if not found:
    print("NOT FOUND")

输出:

4
key for 4:
4-123
4-456
4-789

1234
key for 1234:
NOT FOUND