因此,我想将输入值与数据库进行比较。并且如果输入值与数据库值相同,则我想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
任何答案将不胜感激,对我有很大帮助!
答案 0 :(得分:1)
您的代码有点混乱。您可以尝试以下方法:
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
但是它有一些缺点,也许有时会陷入无限循环。