Skip to main content
 首页 » 编程设计

python之如何将输入值与mysql数据库进行比较,没有匹配数据时自动添加 '0'和 '1'

2024年11月01日2bluestorm

所以我想将我的输入值与我的数据库进行比较。如果输入值与数据库值相同,我想 print("Data Valid") 。如果不一样,我想在输入值中添加“0”和“1”。 并自动将最终值与我的数据库等进行再次比较。

所以我试过这段代码:

curs = connection.cursor() 
    query = """ SELECT * FROM `foo` """ 
 
    curs.execute(query) 
    result = curs.fetchall() 
    inputvalue = input("Input= ") 
    temp = False 
    for x in result: 
        if inputvalue in x: 
            temp = True 
    if temp: 
        print("Data Valid") 
    else: 
        inputvalue += '0' 
        inputvalue += '1' 
        if inputvalue in x: 
            print(inputvalue) 

但是在我运行我的代码之后,它似乎同时向该值添加了“0”和“1”,我希望它是 2 个不同的值。

如果数据与数据库相同,我希望输出为:

inputvalue= 100 
Data Valid 

如果不一样,我希望输出为:

inputvalue= 100 
1000 
1001 

然后再次将10001001 与我的数据库进行比较 输出将是这样的:(如果数据匹配我的数据库)

inputvalue= 100 
1000 
1001 
Data Valid 

如果不匹配:

inputvalue= 100 
1000 
1001 
10000 
10001 
10010 
10011 

任何答案将不胜感激,对我帮助很大!

请您参考如下方法:

你的代码有点乱。你可以试试这个:

def check(value, result): 
    for ele in result: 
        if value in ele: 
            print('Data Valid') 
            return True 
    return False 
 
def check_in_list(value_list, result): 
    for value in value_list: 
        if check(value, result): 
            return True 
    return False 
 
# refer to your code 
curs = connection.cursor() 
query = """ SELECT * FROM `foo` """ 
curs.execute(query) 
result = curs.fetchall() 
input_value = input("Input= ") 
 
value_list = [input_value] 
while True: 
    if check_in_list(value_list, result): 
        break 
    tmp_list = [] 
    for value in value_list: 
        print(value + '0') 
        print(value + '1') 
        tmp_list.append(value + '0') 
        tmp_list.append(value + '1') 
    value_list = tmp_list 

但它有一些缺点,可能有时会陷入死循环。