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')
  • 相关阅读:
    html5 canvas 渐变
    html5 canvas 画直线
    html5在canvas中插入图片
    Window文件夹右击菜单定制
    HTML中解决双击会选中文本的问题
    Linux 下修改mysql 字符集编码
    mysqlimport导入命令使用
    PAM 2500 荧光数据导出数据整合脚本
    Resources for Ecology and Evolution
    Plant Ecology Journal Club, 分享主题和文献列表 825, 2019年春
  • 原文地址:https://www.cnblogs.com/bigbox/p/11869783.html
Copyright © 2011-2022 走看看