import math
NAMES='赵钱孙李周吴郑王冯陈褚卫蒋武韩'defget_rows():
num=len(NAMES)
rows=int(math.log2(num)+1)
result=[''for _ inrange(rows)]id=1for name in NAMES:
insert_name(id, name, result, rows)id+=1return result
definsert_name(id, name, result, rows):for row_id inrange(len(result)):ifid%2!=0:
result[row_id]+= name +' 'id//=2defget_name(answers):
result =0for answer in answers:
result *=2if answer:
result +=1return NAMES[result-1]if __name__=='__main__':
rows=get_rows()
answers=[]for row in rows:print(row)
answer=input('你猜的姓在这一行中吗?(y,n,yes,no)')if answer isNoneorlen(answer)==0:breakif answer.lower()in('y','yes'):
answers.append(True)else:
answer.append(False)print('你猜的姓是:',get_name(answers))