1. # print(list("胡辣汤"))
  2.  
  3. # lst = ["河南话", "四川话", "东北", "山东", "上海"]
  4. #
  5. # r = reversed(lst)
  6. # print(list(r))
  7.  
  8. # huiwen = "不是上海自来水来自海上"
  9.  
  10. # s = huiwen[::-1]
  11. # it = reversed(huiwen) # 返回的是迭代器
  12. # s = ""
  13. # for el in it:
  14. # s += el
  15. # print(s)
  16.  
  17. # lst = ["河南话", "四川话", "东北", "山东", "上海"]
  18. # s = slice(3,5) # 切片. 麻烦
  19. # print(lst[s])
  20.  
  21. # s = "我叫{name}, 我来自{home}, 我喜欢干{hobby}".format(name="周杰伦", home="台湾", hobby="唱歌")
  22. # print(s)
  23. #
  24. # name = "周杰伦"
  25. # home="台湾"
  26. # hobby="唱歌"
  27. #
  28. # print(f"我叫{name}, 我来自{home}, 我喜欢干{hobby}")
  29.  
  30. # s = "门神"
  31. # s1 = s.center(20)
  32. # print(s1)
  33. #
  34. # print(format("门神", "^20"))
  35. # print(format("门神", "<20"))
  36. # print(format("门神", ">20"))
  37.  
  38. # print(format(3, 'b')) # ⼆二进制 binary 0b11
  39. # print(format(65, 'c')) # 转换成unicode字符 ascii
  40. # print(format(11, 'd')) # ⼗十进制
  41. # print(format(11, 'o')) # ⼋八进制 0o 13
  42. # print(format(11, 'x')) # ⼗六进制(⼩写字⺟)
  43. # print(format(11, 'X')) # ⼗六进制(⼤写字⺟)
  44. # print(format(11, 'n')) # 和d⼀样
  45. # print(format(11)) # 和d⼀样
  46.  
  47. # print(format(123456789, 'e')) # 科学计数法. 默认保留6位小数 表示大的数据
  48. # print(format(123456789, '.2e')) # 科学计数法. 保留2位小数(⼩写)
  49. # print(format(123456789, '0.2E')) # 科学计数法. 保留2位⼩数(⼤写)
  50.  
  51. # 浮点计数法
  52. # print(format(1.23456789, 'f')) # 浮点数计数法. 保留6位⼩数
  53. # print(format(1.23456789, '0.2f')) # ⼩浮点数计数法. 保留2位⼩数
  54. # print(format(1, '0.10f')) # ⼩浮点数计数法. 保留10位⼩数
  55. # print(format(1.23456789e+10000, 'F')) # ⼩浮点数计数法.
  56.  
  57. # a = 0b11 # 数字3
  58. # print(type(a))
  59. # print(a)
  60.  
  61. # print(ord("中")) # 20013
  62. # print(chr(20014))
  63.  
  64. # for i in range(65536):
  65. # print(chr(i), end= " ")
  66.  
  67. # print(ascii("a")) # 判断出你给的信息是否是ascii
  68.  
  69. # 转义字符\n 换行\t tab 制表符\r 回车\" 双引号\' 单引号\\ \
    print('你好, 我叫周杰伦.我来自\\n台湾. 我老婆叫昆凌')
  70.  
  71. repr() # 还原字符串最官方的效果str:python的字符串repr: 所有的字符串print(repr("你好. \\n我叫\周杰伦")) # python -> repr() -> cpython c里面. 报错
  72.  
  73. # print(r"\n\t范德萨发生\r\b\ffdsaf") # 原封不动的显示字符串
  74. # 函数自己调用自己
  75.  
  76. # def func():
  77. # print("我是递归")
  78. # func()
  79. #
  80. # func() # 官方最大1000,你永远跑不到1000, 我实测998
  81.  
  82. # while 1:
  83. # print("我不是递归")
  84.  
  85. # 树形结构的遍历
  86. # import os
  87. #
  88. # def func(lujing, n): # "d:/a/"
  89. # lst = os.listdir(lujing) # 打开文件夹. 列出该文件夹内的所有文件名
  90. # for el in lst: # el是文件的名字. b, c
  91. # # 还原文件路径
  92. # path = os.path.join(lujing, el) # "d:/a/b"
  93. # if os.path.isdir(path): # 判断路径是否是文件夹
  94. # print("..." * n,el) # 显示文件夹的名字
  95. # func(path, n + 1) # 在来一次 ################
  96. # else:
  97. # print("\t" * n,el) # 显示文件
  98. #
  99. # func("d:/a", 0)
  100.  
  101. # def func(lujing, n): # d:/a/b
  102. # lst = os.listdir(lujing)
  103. # for el in lst: # b, c
  104. # # 路径
  105. # path = os.path.join(lujing, el) # 拼接路径 d:/a/b
  106. # # 判断是文件还是文件夹
  107. # if os.path.isdir(path):
  108. # print("\t" * n, el)
  109. # func(path, n+1)
  110. # else:
  111. # f = open(path, mode="wb")
  112. # f.write(b'1')
  113. # print("\t" * n, el)
  114. #
  115. #
  116. # func("d:/a/", 0)
  117.  
  118. # 二分法查找主要的作用就是查找元素
  119. # lst = [1,3,5,7,12,36,68,79] # 数据集 百万级数据
  120. # num = int(input("请输入你要查找的元素信息:"))
  121. #
  122. # for el in lst:
  123. # if num == el:
  124. # print("存在")
  125. # break
  126. # else:
  127. # print("不存在")
  128. # len(lst)
  129. # 0 1 2 3 4 5 6 7
  130. # [1,3,5,7,12,36,68,79]
  131. # n = 28 # 3
  132. # 规则. 掐头结尾取中间, 必须是有序序列,
  133.  
  134. #
  135.  
  136. # 二分法查找 (需要你明白和掌握)
  137. # lst = [1,3,5,7,12,36,68,79]
  138. # n = int(input("请输入一个数"))
  139. #
  140. # left = 0
  141. # right = len(lst) - 1
  142. #
  143. # while left <= right:
  144. # mid = (left + right)//2
  145. # if n > lst[mid]:
  146. # left = mid + 1
  147. # elif n < lst[mid]:
  148. # right = mid - 1
  149. # else:
  150. # print("存在")
  151. # break
  152. #
  153. # else:
  154. # print("不存在")
  1. # 递归
  2. # def func(n, lst):
  3. #
  4. # left = 0
  5. # right = len(lst) - 1
  6. # if lst != []:
  7. # mid = (left + right)//2
  8. # if n > lst[mid]:
  9. # func(n, lst[mid+1:]) # 改变列表
  10. # elif n < lst[mid]:
  11. # func(n, lst[:mid])
  12. # else:
  13. # print("找到了")
  14. # return
  15. # else:
  16. # print("没找到")
  17. # return
  18. #
  19. # n = int(input("请输入你要查找的数:"))
  20. # func(n, [1,3,5,7,12,36,68,79]) # 78

递归

  1. # 递归二 (需要你明白和掌握)
  2. # def func(n, lst, left, right): # 递归找到什么是可以变的. 什么是不可以变的
  3. # if left <= right:
  4. # mid = (left + right) // 2
  5. # if n > lst[mid]:
  6. # left = mid + 1
  7. # return func(n, lst, left, right)
  8. # elif n < lst[mid]:
  9. # right = mid - 1
  10. # return func(n, lst, left, right) # 递归如果有返回值. 所有调用递归的地方必须写return
  11. # else:
  12. # print("找到了")
  13. # return mid # 难点
  14. # else:
  15. # print("找不到")
  16. # return -1
  17. #
  18. # n = int(input("请输入你要查找的数:"))
  19. # lst = [1,3,55,98,37,41,2,5,1,4]
  20. # ret = func(n, lst, 0, len(lst)-1) # 78
  21. # print(ret)

递归2

  1. # 最快的查询
    1 lst = [1,3,55,98,37,41,2,5,1,4]
  2.  
  3. new_lst = []
  4. for i in range(99):
  5. new_lst.append(0)
  6.  
  7. for i in lst: # 1,3,55,98
  8. new_lst[i] = 1
  9.  
  10. print(new_lst)
  11.  
  12. i = int(input('请输入你要找的数据'))
  13. if new_lst[i] == 0: # 1次
  14. print("不存在")
  15. else:
  16. print("存在")

python-递归,二分查找的更多相关文章

  1. Python递归 — — 二分查找、斐波那契数列、三级菜单

    一.二分查找 二分查找也称之为折半查找,二分查找要求线性表(存储结构)必须采用顺序存储结构,而且表中元素顺序排列. 二分查找: 1.首先,将表中间位置的元素与被查找元素比较,如果两者相等,查找结束,否 ...

  2. Python实现二分查找

    老生常谈的算法了. #!/usr/bin/python # -*- coding:utf-8 -*- # Filename: demo.py # 用python实现二分查找 def binarySea ...

  3. 巨蟒python全栈开发-第14天 内置函数2 递归 二分查找

    一.今日内容总览 1.内置函数补充 repr() 显示出字符串的官方表示形式 chr() arscii码中的字,转换成位置 ord() arscii码中的位置,转换成字2.递归 自己调用自己 两个口: ...

  4. Python 实现二分查找(递归版)

    二分查找 为什么使用二分查找: python中的列表,一般取值为遍历这个列表,直到取到你想要的值,但是如果你的列表是一个有着百万元素的列表呢,那样for循环遍历列表就会很慢,可能会循环几十万次,才能找 ...

  5. Python递归函数,二分查找算法

    目录 一.初始递归 二.递归示例讲解 二分查找算法 一.初始递归 递归函数:在一个函数里在调用这个函数本身. 递归的最大深度:998 正如你们刚刚看到的,递归函数如果不受到外力的阻止会一直执行下去.但 ...

  6. python实现二分查找算法

    二分查找算法也成为折半算法,对数搜索算法,一会中在有序数组中查找特定一个元素的搜索算法.搜索过程是从数组中间元素开始的 如果中间元素正好是要查找的元素,则搜索过程结束:如果查找的数大于中间数,则在数组 ...

  7. python关于二分查找

    楔子 如果有这样一个列表,让你从这个列表中找到66的位置,你要怎么做? l = [2,3,5,10,15,16,18,22,26,30,32,35,41,42,43,55,56,66,67,69,72 ...

  8. 数据结构和算法:Python实现二分查找(Binary_search)

    在一个列表当中我们可以进行线性查找也可以进行二分查找,即通过不同的方法找到我们想要的数字,线性查找即按照数字从列表里一个一个从左向右查找,找到之后程序停下.而二分查找的效率往往会比线性查找更高. 一. ...

  9. 【Python】二分查找算法

    二分查找:在一段数字内,找到中间值,判断要找的值和中间值大小的比较.如果中间值大一些,则在中间值的左侧区域继续按照上述方式查找.如果中间值小一些,则在中间值的右侧区域继续按照上述方式查找.直到找到我们 ...

  10. python实现二分查找与冒泡排序

    二分查找,代码如下: def binarySearch(l, t): low, high = 0, len(l) - 1 while low < high: 'print low, high' ...

随机推荐

  1. 力扣(LeetCode)412. Fizz Buzz

    写一个程序,输出从 1 到 n 数字的字符串表示. 如果 n 是3的倍数,输出"Fizz": 如果 n 是5的倍数,输出"Buzz": 3.如果 n 同时是3和 ...

  2. 数据库 Mysql 使用,优化,索引

    数据库事务的隔离级别,由低到高 : READ UNCOMMITTED(读未提交数据):允许事务读取未被其他事务提交的变更数据,会出现脏读.不可重复读和幻读问题. READ COMMITTED(读已提交 ...

  3. maven项目依赖jar包报 java.lang.classnotfoundexception:Type com.xx.xx.xxx not present 的解决

    今天在工作的时候遇到了这样一个奇葩的异常: java.lang.classnotfoundexception:Type com.ys.yahu.vo.file.MobileFileVo not pre ...

  4. ECharts图表的小工具

    本文介绍一个echarts工具类EChart.js,用来制作统计图表,基于echarts3. 一.工具类特性如下: 包含柱状图.折线图和饼图,可以实现这三类统计图之间的切换: 支持标题和副标题: 支持 ...

  5. 并发之ThreadLocal

    ThreadLocal ThreadLocal 用一种存储变量与线程绑定的方式,在每个线程中用自己的 ThreadLocalMap 安全隔离变量,为解决多线程程序的并发问题提供了一种新的思路.   简 ...

  6. spring ----> ResourceBundle [message] not found for MessageSource: Can't find bundle for base name message, local_zh

    环境: idea 2018.1.3社区版,jdk8,spring4.2.0,maven3.5.2 主题: spring国际化 出现的问题: ResourceBundle [message] not f ...

  7. 使用validateXxx()方法进行输入校验 --Struts2框架

    1.本例是在使用validate()方法进行输入校验 --Struts2框架的基础上接着做的,上一篇使用validate()方法进行输入校验时会对当前Action中的所有方法有效,由于Struts2框 ...

  8. hadoop 企业应用案例--大众点评

    hadoop 企业应用案例--大众点评 http://f.dataguru.cn/thread-260531-1-1.html

  9. php匹配页面中的所有路径

    方法一 $url='http://www.google.cn/search?q=php'; $html=file_get_contents($url); $dom = new DOMDocument( ...

  10. CentOS7 安装redis4:

      phpredis-4.0.12.tar.gz:下载:wget http://download.redis.io/releases/redis-4.0.12.tar.gz   $ tar -zxvf ...