python学习(5)写一个二分算法的程序

把之前学习的做一个小结。之前看二分查找法,只能是似而非地看懂大概。现在用这么多天的知识积累已经可以自己写了。

而且在算法书的基础上,把需要找的数字做一个人机互动操作。

另外,初步接触到了 __name__=="__main__"这块,也只初步了解了一个大概。在调试的时候,发现有这个语句就不会上下两段代码一起执行。原理现在尚不清楚,查了一下资料,似是而非,看后面能否深入了解。

另外,今天对return和print进行了比较详细的了解。我的理解是,语句中一旦有return,类似Break,后面的程序就不会再执行了。而print语句后面还会继续执行。这应该是最大的区别。

这是我写的第一段算法程序,在原来书本的基础上加入了很多中文人机互动,没想到一点点C++基础的我居然可以写算法程序。感谢这段时间来努力的自己!

 1 #!/usr/bin/env python
 2 # -*- coding: UTF-8 -*-
 3 # Author:show530
 4
 5
 6 def BinarySearch(list, item):
 7     low=0
 8     high=len(list)-1
 9     if item in list:
10         while True:
11             mid=int((low+high)/2)
12             if list[mid]==item:
13                 print(str(item)+"在数组里面的第"+str(mid)+"个位置")
14                 return
15             elif list[mid]<item:
16                 low=mid+1
17             elif list[mid]>item:
18                 high=mid-1
19     else:
20         print("没有这个数字")
21         return
22
23
24 if __name__ == "__main__":
25     arr = [1, 6, 9, 15, 26, 38, 49, 57, 63, 77, 81, 93]
26     while True:
27         key = input("请输入你要查找的数字:")
28         if key == " ":
29             print("谢谢使用!")
30             break
31         else:
32             BinarySearch(arr, int(key))

原文地址:https://www.cnblogs.com/show530/p/8541155.html

时间: 2024-10-11 01:53:46

python学习(5)写一个二分算法的程序的相关文章

【Linux学习】 写一个简单的Makefile编译源码获取当前系统时间

打算学习一下Linux,这两天先看了一下gcc的简单用法以及makefile的写法,今天是周末,天气闷热超市,早晨突然发现住处的冰箱可以用了,于是先出去吃了点东西,然后去超市买了一坨冰棍,老冰棍居多,5毛钱一根,还有几根1.5的. 嗯 接着说gcc的事 先把源代码贴上来 //gettime.h #ifndef _GET_TIME_H_ #define _GET_TIME_H_ void PrintCurrentTime(); #endif //gettime.c #include <stdio.

如何用 Python 写一个简易的抽奖程序

不知道有多少人是被这个头图骗进来的:) 事情的起因是这样的,上周有同学问小编,看着小编的示例代码敲代码,感觉自己也会写了,如果不看的话,七七八八可能也写的出来,但是一旦自己独立写一段程序,感觉到无从下手. 其实这个很正常,刚开始学习写代码,都是跟着别人的套路往下写,看的套路少,很难形成自己的套路,这就和做数学题是一样的,做一道题就想会所有的题目,这个可能性微乎其微,都是通过大量的练习来摸索到自己的套路. 正好快过年了,各个公司都会搞一些抽奖活动,小编今天就来聊一下,如果要写一个简单的抽奖程序,小

DuiVision开发教程(2)-如何写一个简单的界面程序

基于DuiVision界面库开发的界面程序主要包括如下几部分内容: 1.资源定义,包括图片资源.各个窗口界面的xml定义文件 2.事件处理类代码,用于处理界面响应消息 3.其他业务逻辑代码 下面举例说明如何写一个简单的界面程序. 第一步:使用VC向导创建一个有两个tab页面的DuiVision工程 向导生成的解决方案文件如下: 默认有两个工程,分别是DuiVision库和应用程序工程.自动生成的代码目录中bin目录下的内容那个如下,bkimg目录存放窗口背景图片,skins目录存放图片资源,xm

写一个排序算法,可以是冒泡排序或者是快速排序,假设待排序对象是一个维数组。(提示:不能使用系统已有函数,另外请仔细回忆以前学习过的 基础知识)

//冒泡排序(数组排序) function bubble_sort($array) { $count = count($array); if ($count <= 0) return false; for($i=0; $i<$count; $i++){ for($j=$count-1; $j>$i; $j--){ if ($array[$j] < $array[$j-1]){ $tmp = $array[$j]; $array[$j] = $array[$j-1]; $array[

JS入门学习,写一个时钟~

<!-- 耽搁了几天,于是又继续回到JS的学习了~~ 各种头大,加油吧... --> <!doctype html><html><head> <title>数码时钟</title> <meta charset="gb2312"> <style type="text/css"> *{ padding:0; margin:0;} body{background:rgb(0,2

Python 学习之中的一个:在Mac OS X下基于Sublime Text搭建开发平台包括numpy,scipy

1 前言 Python有许多IDE能够用,官方自己也带了一个,Eclipse也能够. 但我在使用各种IDE之后,发现用Sublime Text是最好用的一个.因此.我都是用Sublime Text来编写Python程序. 那么整个搭建事实上很easy.考虑到接下来要做的是科学研究,我们也同一时候安装numpy.scipy,matplotlib等插件. 2 开发环境 Macbook Pro Mac OS X 10.10 3 Step-by-Step 搭建 Step 1 安装Python 2.7 这

《用Java写一个通用的服务器程序》01 综述

最近一两年用C++写了好几个基于TCP通信类型程序,都是写一个小型的服务器,监听请求,解析自定义的协议,处理请求,返回结果.每次写新程序时都把老代码拿来,修改一下协议解析部分和业务处理部分,然后就一个新的程序就诞生了.如此这般做了几回,就萌生了一个想法:是不是可以做一个通用的服务器程序,每次只要实现很少的代码就可以构建的一个新的服务器程序? 巧的是在用C++写代码的时候,我刚好碰到过一个叫做Push Framework的开源项目(在这里可以找到:www.pushframework.com),就是

python+selenium+unnitest写一个完整的登陆的验证

1 import unittest 2 from selenium import webdriver 3 from time import sleep 4 5 class lonInTest (unittest.TestCase): 6 @classmethod 7 def setUp(self): 8 self.driver = webdriver.Firefox() 9 self.driver.implicitly_wait(30) 10 def test_login_sucess(self

python初尝试,写一个简单的爬虫程序

1.首先因为mac自带python,版本为python2.7.10 2.安装pip,因为已经有了,所以不能用brew install.这里用sudo easy_install pip 3.安装beatifulsoup4,sudo -H pip install beautifulsoup4. BeautifulSoup是一个可以从HTML或XML文件中提取数据的Python库.它能够通过你喜欢的转换器实现惯用的文档导航,查找,修改文档的方式. 4.安装html5lib,sudo pip insta