最近开始学习mit的python课程,其中手工实现的一个关于二分法查找的练习代码个人感觉比较有参考价值,贴上来分享交流一下。
主要功能是在1-100中自己猜测一个数值,随后系统产生数值看是否符合猜测,如果不符合选择高于或者低于猜测数值,系统继续产生随机数,最后成功找到猜测值。
实现方法为采用二分法,每次取中值,如果高了则继续取下半部分的中值,如果低了则取上半部分的中值,以此类推,最后找到正确猜测值。
1frompip.backwardcompatimportraw_input23PRint("Please think of a number between 0 and 100!")45#设初始值6hi = 1007lo =08guessed =False9guess =010whilenotguessed:11guess = (int)((hi + lo)/2)#注意此处将结果强转为int型,否则系统值将会是浮点数12print("Is your secret number"+ str(guess) +"?")13#输入语句14user_inp = raw_input("Enter 'h' to indicate the guess is too high. Enter 'l' to indicate the guess is too low. Enter 'c' to indicate I guessed correctly.")15#c为猜测正确,h为数值高了,l为低了16ifuser_inp =='c':17guessed =True18elifuser_inp =='h':19hi =guess20elifuser_inp =='l':21lo =guess22else:23print("Sorry, I did not understand your input.")24print('Game over. Your secret number was:'+ str(guess))