没有缩进的看着费劲
import random
key = ''
history = []
def check(num): # 检测用户输入是否合法
if num.isdigit() and len(num) == 4 and len(set(num)) == 4:
return True
else:
return False
def randomnum(): # 随机生成4个不同数字的四位数
while True:
digitstr = str(random.randint(1000, 10000))
if len(set(digitstr)) == 4:
break
return digitstr
def compare(anum, bnum):
A, B = 0, 0
for i in bnum:
if i in anum:
for j in anum:
if i == j and bnum.index(i) == anum.index(j):
A += 1
elif i == j:
B += 1
return str(A) + 'A' + str(B) + 'B'
anum = randomnum()
while key != 'Q':
key = input('\n请输入不重复的四个数字, Q - 退出游戏:')
if check(key):
history.append('{0}-->{1}'.format(key, compare(anum, key)))
print('\nHISTORY:')
for i, v in enumerate(history):
print('{0:>2}. {1}'.format(i + 1, v))
if key == anum:
print('\n恭喜你猜对了。')
break
你的else部分是定义的一个函数,肯定不会执行啊。。。要单独运行函数部分才行还有你定义的a是数组,你input的又是字符串,这个怎么猜