1.昨日的补充
reversed    翻转, 将一个序列翻转,返回翻转序列的迭代器
lst = ["河南话", "四川话", "东北", "山东", "上海"]
 
n = reversed(lst)
print(list(n))
判断是不是回文
huiwen = "上海自来水来自海上"
 
# s = huiwen[::-1]   #切片的翻转
s1 = reversed(huiwen)   ###返回的是迭代器
n =""
for i in s1:
    n += i
print(n)
slice  切片  ###麻烦
lst = ["河南话", "四川话", "东北", "山东", "上海"]
s = slice(3, 5)
print(lst[s])
format()  与具体数据相关,用于计算各种小数,精算等
#格式化输出
s = "我叫{name}, 我来自{home}, 我喜欢干{hobby}".format(name="周杰伦", home="台湾", hobby="唱歌")
print(s)
# 字符串 和center 相同   对齐
 
# s = "门神"
# s1 = s.center(20)
# print(s1)
 
print(format('test', '<20')) # 左对⻬ 
print(format('test', '>20')) # 右对⻬
 print(format('test', '^20')) # 居中
 # 数值 
print(format(3, 'b')) # ⼆进制 
print(format(97, 'c')) # 转换成unicode字符 
print(format(11, 'd')) # ⼗进制 
print(format(11, 'o')) # ⼋进制 
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, '0.2e')) # 科学计数法. 保留2位⼩数(⼩写) print(format(123456789, '0.2E')) # 科学计数法. 保留2位⼩数(⼤写) print(format(1.23456789, 'f')) # ⼩数点计数法. 保留6位⼩数 
print(format(1.23456789, '0.2f')) # ⼩数点计数法. 保留2位⼩数 print(format(1.23456789, '0.10f')) # ⼩数点计数法. 保留10位⼩数 print(format(1.23456789e+10000, 'F')) # ⼩数点计数法.
ord() 输入字符找带字符编码的位置
# 找到对应字符的编码位置
print(ord('a')) 
print(ord('中'))
chr() 输入位置数字找出对应的字符
# 找到对应编码位置的字符 
print(chr(97)) 
print(chr(20013))
ascii() 是ascii码中的返回该值 不是就返回\u...
# 在ascii中就返回这个值. 如果不在就返回\u... 
print(ascii('a')) 
print(ascii('好'))
转义字符
\n 换行
\t tab 制表符
\r 回车
\" 双引号
\' 单引号
\\ ---> \
print('你好, 我叫周杰伦.我来自\\n台湾. 我老婆叫昆凌')
repr() 返回⼀个对象的string形式, 还原字符串最官方的效果
r 原封不动的显示字符串
# repr 就是原封不动的输出, 引号和转义字符都不起作⽤ 
print(repr('⼤家好,\n \t我叫周杰伦')) 
print('⼤家好我叫周杰伦') 
# %r 原封不动的写出来 
name = 'taibai' 
print('我叫%r' % name)
str:python的字符串
repr: 所有的字符串
print(repr("你好. \\n我叫\周杰伦"))  # python -> repr() -> cpython c里面. 报错
 
print(r"\n\t范德萨发生\r\b\ffdsaf")  # 原封不动的显示字符串
递归
递归就是函数自己调用自己,递归必须要有入口(参数)和出口(return)
def func():
    print("我是递归")
    func()
树形结构的遍历
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)
简易的病毒
import os
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 i in lst:
    if i == num:
        print("这个数存在")
        break
else:
    print("这个数不存在")
二分法查找(需要明白和掌握)
lst = [1,3,5,7,12,36,68,79]
     0 1 2 3  4  5  6 7     #通过索引最左加上最右地板除取中间
num = int(input("请输入一个数字:"))
 
lift = 0
right = len(lst) -1
 
while lift <= right:
    mid = (lift + right) // 2
    if num > mid:
        lift = mid + 1
    elif num < mid:
        right = mid -1
    else:
        print('存在')
        break
else:
    print('不存在')
递归的方法一:  通过索引列表的索引
#递归
def func(n, lst):
    lift = 0
    right = len(lst)
    if lst != []:
        mid = (lift+right) // 2
        if n > lst[mid]:
            func(n, lst[mid+1:])
        elif n < mid:
            func(n, lst[:mid])
        else:
            print("存在")
            return
    else:
        print('不存在')
        return
n = int(input("请输入一个数字:"))
func(n, [1,3,5,7,12,36,68,79])
递归二(需要明白和掌握)
def func(n, lst, left, right): # 递归找到什么是可以变的. 什么是不可以变的
    if left <= right:
        mid = (left + right) // 2
        if n > lst[mid]:
            left = mid + 1
            return func(n, lst, left, right)
        elif n < lst[mid]:
            right = mid - 1
            return func(n, lst, left, right) # 递归如果有返回值. 所有调用递归的地方必须写return
        else:
            print("找到了")
            return mid  # 难点
    else:
        print("找不到")
        return -1
 
n = int(input("请输入你要查找的数:"))
lst = [1,3,55,98,37,41,2,5,1,4]
ret = func(n, lst, 0, len(lst)-1) # 78
print(ret)
最快的查找
lst = [1,3,55,98,37,41,2,5,1,4]
 
new_lst = []
for i in range(99):
    new_lst.append(0)
 
 
for i in lst:    # 1,3,55,98
    new_lst[i] = 1
 
print(new_lst)
 
 
i = int(input('请输入你要找的数据'))
if new_lst[i] == 0: # 1次
    print("不存在")
else:
    print("存在")
 

day 14 内置函数二的更多相关文章

  1. python---day14( 内置函数二)

    内置函数二一:匿名函数 lambda函数 lambda 表示匿名函数,不需要用def 来申明. 语法: 函数名=lambda 参数:返回值 ----〉 案例:f=lambda n:n*n 例子01: ...

  2. python函数知识六 内置函数二、匿名函数与内置函数三(重要)

    19.内置函数二 abs():绝对值 lst = [1,2,-3,1,2,-5] print([abs(i) for i in lst]) enumerate("可迭代对象",&q ...

  3. day16:内置函数二

    1,大作业,yield 返回之后可以对数据进行处理了就,注意函数的解耦,每一个小功能写成一个函数,增强可读性,写之前自己要先把整体功能分块,先做什么,在做什么 # 现在需要对这个员工信息文件进行增删改 ...

  4. python 内置函数(二) 进阶函数 递归内容及二分法查找 知识点

    1,lambda:  匿名函数 2.sorgted()  排序函数 3,filter()   过滤函数 筛选 4,map()  映射函数 5.递归 6.二分法 一. 匿名函数: lambda lamb ...

  5. Python入门-内置函数二

    看到标题你也能猜到今天要说大概内容是什么了,没错,昨天没有说完的部分再给大家说说(有一些重合的部分),内置函数的内容比较多,并且工作中经常用到的却不太多,很多都是不太常用的,所以我就着重说一些比较常用 ...

  6. 百万年薪python之路 -- 内置函数二 -- 最常用的内置函数

    1.内置函数 1.1 匿名函数 匿名函数,顾名思义就是没有名字的函数(其实是有名字的,就叫lambda),那么什么函数没有名字呢?这个就是我们以后面试或者工作中经常用匿名函数 lambda,也叫一句话 ...

  7. Day 14: 内置函数:

    Python提供了,许多内置的函数我们按 函数的作用来分类: 一.作用域相关的内置函数(2个) (1).globals() 更改全局变量 (2).locals()更改局并命名空间的变量(上一级) 五. ...

  8. 内置函数二: map sorted filter

    -----------生活里没有奇迹,大部分的时候奇迹是你自己创造的. # -------------------------------------------------------------- ...

  9. Python内置函数二 (递归函数,匿名函数,二分法)

    匿名函数 lambda() 语法: lambad  参数 : 返回值 def func(a,b): return a * b print(func(2,5)) a = lambda a ,b : a* ...

随机推荐

  1. mac 修改MAC代码

    1.生成一个mac地址: openssl rand -hex | sed 's/\(..\)/\1:/g; s/.$//' 2.关闭无线 sudo /System/Library/PrivateFra ...

  2. centos 开机执行的命令

    centos开机执行的命令-------待验证,因为有可能涉及到root问题,没想明白怎么输入密码 1.增加rc.local可执行权限 chmod +x /etc/rc.d/rc.local 2.在里 ...

  3. bootstrap colorscheme以及theme自动生成

    http://paintstrap.com/ 是一个根据adobe kuler color scheme自动生成theme 的工具,比较直观好用,对于调整前端theme有一定参考意义

  4. 使用UIWebView中html标签显示富文本

    使用UIWebView中html标签显示富文本 用UIWebView来渲染文本并期望达到富文本的效果开销很大哦! Work 本人此处直接加载自定义字体"新蒂小丸子体",源码不公开, ...

  5. July 09th 2017 Week 28th Sunday

    He that boasts of his own knowledge proclaims ignorance. 夸耀知识实乃无知. Honestly speaking, I don't agree ...

  6. 转:Recsys2013论文导读

    月中在香港参加recsys2013会议,文章不少,对我有价值的并不算多,再跟目前工作相关的就更少了.这里过滤了几篇我觉得比较有意思的文章,加上了自己的理解,作为导读. A Fast Parallel ...

  7. OC Nsstring的使用

    // // main.m // NSString // // Created by mj on 13-4-5. // Copyright (c) 2013年 itcast. All rights re ...

  8. windows下编译leveldb

    前提条件,下载boost库并编译 boost库弄好后,就可以编译leveldb了 首先,下载leveldb-windows,这个github上有 一. 1文件->新建->从现有代码文件创建 ...

  9. 转 delete 和 delete []的真正区别

    c++中对new申请的内存的释放方式有delete和delete[两种方式,到底这两者有什么区别呢? 1.我们通常从教科书上看到这样的说明:delete 释放new分配的单个对象指针指向的内存dele ...

  10. jemter多种方式查看结果树及正则的使用

    最近才发现jemter结果是有一种正则表达式匹配的显示方式,以前直接在TEXT下显示和来匹配正则,真是费时间,使用方式如下: 默认使用TEXT方式显示: 显示方式有以下几种: RegExp Teste ...