发布于2020-02-25 00:39 阅读(1069) 评论(0) 点赞(0) 收藏(1)
算法:二分查找
〉 从中间的数开始,如果猜中则结束
〉 如结果大于或者小于中间的数,则在 剩下大于或小于中间的数的那一半中 查找
〉 每一次比较都使搜索范围缩小一半
- import random
-
- import sys
-
- def human_guess():
- #从0-1000中,产生一个随机数
- num = random.randint(0,1000)
- i = 0
- while 1 :
- #异常处理-输入非int型数据的时候
- try:
- #guess接收-从键盘输入数字的值
- guess = int(input('‘请输入数字0~1000:'))
- except ValueError:
- print("请输入正确的数字0~1000")
- continue
- i += 1
- #如果输入猜测的数字,比随机产生的数num要大
- if guess > num :
- #提示猜测大了
- print("猜大了:",guess)
-
- elif guess < num :
- #提示猜小了
- print("猜小了:",guess)
-
- else:
- print("你猜对了!共猜了",i,"次")
- sys.exit(0)
-
- def computer_guess():
- print('请在心里想一个0~1000范围内的数字')
- small = 0
- big = 1000
- guess = 500
- i = 0
- while 1:
- guess = int((big+small)/2)
- i += 1
- print('是这个数吗:'+ str(guess) + 'B:大了,S:小了,C:正确')
- char = input()
- if char == 'B':
- big = guess
- elif char == 'S':
- small = guess
- elif char == 'C':
- print("共猜了{0}次,得到正确结果{1}".format(i,guess))
- sys.exit(0)
- else:
- print('请正确输入回答:(B:大了,S:小了,C:正确)')
- def main():
- who_guess = input('请决定谁来猜数(C:电脑,H:玩家):')
- if who_guess in 'Hh':
- human_guess()
- elif who_guess in 'Cc':
- computer_guess()
-
- if __name__ == '__main__':
- try:
- main()
- except KeyboardInterrupt:
- print('程序异常')
- sys.exit(1)
作者:232hdsjdh
链接:https://www.pythonheidong.com/blog/article/232955/6814b437c89f939e6aee/
来源:python黑洞网
任何形式的转载都请注明出处,如有侵权 一经发现 必将追究其法律责任
昵称:
评论内容:(最多支持255个字符)
---无人问津也好,技不如人也罢,你都要试着安静下来,去做自己该做的事,而不是让内心的烦躁、焦虑,坏掉你本来就不多的热情和定力
Copyright © 2018-2021 python黑洞网 All Rights Reserved 版权所有,并保留所有权利。 京ICP备18063182号-1
投诉与举报,广告合作请联系vgs_info@163.com或QQ3083709327
免责声明:网站文章均由用户上传,仅供读者学习交流使用,禁止用做商业用途。若文章涉及色情,反动,侵权等违法信息,请向我们举报,一经核实我们会立即删除!