zoukankan      html  css  js  c++  java
  • python 三元表达式 / 列表推导式/ 生成器表达式 /递归 / 二分法

    1.三元表达式

    name=input('姓名>>: ')
    res='SB' if name == 'alex' else 'NB'
    print(res)

    2.列表推导式

    chicken_l=['鸡蛋%s' %i for i in range(5)]

    3.生成器表达式

    chicken_g=('鸡蛋%s' %i for i in range(5))

     4.递归    最大层数998   

      定义:递归调用: 是函数嵌套调用的一种特殊形式,函数在调用时,直接或间接调用了自身,就是递归调用

      递归调用要加结束条件,不能无限调用导致死循环

    def salary(n):
        if n == 1:
            return 100
        return salary(n-1)+300
    
    print(salary(5)) 

    总结:

    #总结递归的使用:
    1. 必须有一个明确的结束条件
    
    2. 每次进入更深一层递归时,问题规模相比上次递归都应有所减少
    
    3. 递归效率不高,递归层次过多会导致栈溢出(在计算机中,函数调用是通过栈(stack)这种数据结构实现的,每当进入一个函数调用,栈就会加一层栈帧,每当函数返回,栈就会减一层栈帧。由于栈的大小不是无限的,所以,递归调用的次数过多,会导致栈溢出)

    5.二分法 + 递归      找列表中的某一个值    

    l=[1,2,10,30,33,99,101,200,301,311,402,403,500,900,1000] #从小到大排列的数字列表
    
    def search(n,l):
        print(l)
        if len(l) == 0:
            print('not exists')
            return
        mid_index=len(l) // 2
        if n > l[mid_index]:
            #in the right
            l=l[mid_index+1:]
            search(n,l)
        elif n < l[mid_index]:
            #in the left
            l=l[:mid_index]
            search(n,l)
        else:
            print('find it')
  • 相关阅读:
    APPIUM Android 定位方式
    SQL Server 根据存储过程的结果集创建临时表
    Ubuntu18.04 设置开机自启动服务
    ubuntu-18.04 (各版本镜像下载) 及的环境初始化配置
    CentOS 7 编译安装PHP5.6.31
    Centos7 编译安装 MySQL 5.5.62
    Windows 2008 R2 远程桌面连接记录(客户端IP)
    CentOS crontab定时任务
    CentOS 7 安装MySql 5.5.60
    SQL Server 数据库错误码解释
  • 原文地址:https://www.cnblogs.com/bigbox/p/11869783.html
Copyright © 2011-2022 走看看