所以我想将我的输入值与我的数据库进行比较。如果输入值与数据库值相同,我想 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
然后再次将1000
和1001
与我的数据库进行比较 输出将是这样的:(如果数据匹配我的数据库)
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
但它有一些缺点,可能有时会陷入死循环。