# print(list("胡辣汤"))

# lst = ["河南话", "四川话", "东北", "山东", "上海"]
#
# r = reversed(lst)
# print(list(r))

# huiwen = "不是上海自来水来自海上"

# s = huiwen[::-1]
# it = reversed(huiwen) # 返回的是迭代器
# s = ""
# for el in it:
#     s += el
# print(s)


# lst = ["河南话", "四川话", "东北", "山东", "上海"]
# s = slice(3,5) # 切片. 麻烦
# print(lst[s])

# s = "我叫{name}, 我来自{home}, 我喜欢干{hobby}".format(name="周杰伦", home="台湾", hobby="唱歌")
# print(s)
#
# name = "周杰伦"
# home="台湾"
# hobby="唱歌"
#
# print(f"我叫{name}, 我来自{home}, 我喜欢干{hobby}")


# s = "门神"
# s1 = s.center(20)
# print(s1)
#
# print(format("门神", "^20"))
# print(format("门神", "<20"))
# print(format("门神", ">20"))

# print(format(3, 'b'))  # ⼆二进制  binary  0b11
# print(format(65, 'c'))  # 转换成unicode字符  ascii
# print(format(11, 'd'))  # ⼗十进制
# print(format(11, 'o'))  # ⼋八进制  0o    13
# print(format(11, 'x'))  # ⼗六进制(⼩写字⺟)
# print(format(11, 'X'))  # ⼗六进制(⼤写字⺟)
# print(format(11, 'n'))  # 和d⼀样
# print(format(11))  # 和d⼀样



# print(format(123456789, 'e')) # 科学计数法. 默认保留6位小数  表示大的数据
# print(format(123456789, '.2e')) # 科学计数法. 保留2位小数(⼩写)
# print(format(123456789, '0.2E')) # 科学计数法. 保留2位⼩数(⼤写)

# 浮点计数法
# print(format(1.23456789, 'f')) # 浮点数计数法. 保留6位⼩数
# print(format(1.23456789, '0.2f')) # ⼩浮点数计数法. 保留2位⼩数
# print(format(1, '0.10f')) # ⼩浮点数计数法. 保留10位⼩数
# print(format(1.23456789e+10000, 'F')) # ⼩浮点数计数法.

# a = 0b11 # 数字3
# print(type(a))
# print(a)

# print(ord("中"))  # 20013
# print(chr(20014))

# for i in range(65536):
#     print(chr(i), end= " ")


# print(ascii("a")) # 判断出你给的信息是否是ascii


# 转义字符\n 换行\t tab 制表符\r 回车\"   双引号\'  单引号\\    \
print('你好, 我叫周杰伦.我来自\\n台湾. 我老婆叫昆凌') repr() # 还原字符串最官方的效果str:python的字符串repr: 所有的字符串print(repr("你好. \\n我叫\周杰伦")) # python -> repr() -> cpython c里面. 报错 # print(r"\n\t范德萨发生\r\b\ffdsaf") # 原封不动的显示字符串 # 函数自己调用自己 # def func(): # print("我是递归") # func() # # func() # 官方最大1000,你永远跑不到1000, 我实测998 # while 1: # print("我不是递归") # 树形结构的遍历 # import os # # def func(lujing, n): # "d:/a/" # lst = os.listdir(lujing) # 打开文件夹. 列出该文件夹内的所有文件名 # for el in lst: # el是文件的名字. b, c # # 还原文件路径 # path = os.path.join(lujing, el) # "d:/a/b" # if os.path.isdir(path): # 判断路径是否是文件夹 # print("..." * n,el) # 显示文件夹的名字 # func(path, n + 1) # 在来一次 ################ # else: # print("\t" * n,el) # 显示文件 # # func("d:/a", 0) # def func(lujing, n): # d:/a/b # lst = os.listdir(lujing) # for el in lst: # b, c # # 路径 # path = os.path.join(lujing, el) # 拼接路径 d:/a/b # # 判断是文件还是文件夹 # if os.path.isdir(path): # print("\t" * n, el) # func(path, n+1) # else: # f = open(path, mode="wb") # f.write(b'1') # print("\t" * n, el) # # # func("d:/a/", 0) # 二分法查找主要的作用就是查找元素 # lst = [1,3,5,7,12,36,68,79] # 数据集 百万级数据 # num = int(input("请输入你要查找的元素信息:")) # # for el in lst: # if num == el: # print("存在") # break # else: # print("不存在") # len(lst) # 0 1 2 3 4 5 6 7 # [1,3,5,7,12,36,68,79] # n = 28 # 3 # 规则. 掐头结尾取中间, 必须是有序序列, # 100000000 # 二分法查找 (需要你明白和掌握) # lst = [1,3,5,7,12,36,68,79] # n = int(input("请输入一个数")) # # left = 0 # right = len(lst) - 1 # # while left <= right: # mid = (left + right)//2 # if n > lst[mid]: # left = mid + 1 # elif n < lst[mid]: # right = mid - 1 # else: # print("存在") # break # # else: # 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
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 8 for i in lst: # 1,3,55,98 9 new_lst[i] = 1 10 11 print(new_lst) 12 13 14 i = int(input('请输入你要找的数据')) 15 if new_lst[i] == 0: # 1次 16 print("不存在") 17 else: 18 print("存在")

 

posted on 2018-12-13 15:22  陈`风暴烈酒  阅读(126)  评论(0)    收藏  举报