zoukankan      html  css  js  c++  java
  • python入门练习题3(函数)

    1.写函数:

    如有以下两个列表

    l1 = [...]

    l2 = []

    第一个列表中的数字无序不重复排列,第二个列表为空列表

    需求: 取出第一个列表的最小值 放到第二个列表的首个位置,

    取出第一个列表的最小值(仅大于上一次的最小值) 放到第二个列表的首个位置,

    取出第一个列表的最小值(仅大于上一次的最小值) 放到第二个列表的首个位置, ... 依此类推,从而获取一个有序的列表l2 ,并将其返回给函数调用者。

     1 l1 = [11,33,44,2,66]
     2 l2 = []
     3 def foo(x,y):
     4       for item in range(len(x)):
     5                   v = min(x)
     6                   y.insert(0,v)
     7                    x.remove(v)
     8         return y
     9 print(foo(l1,l2))
    10     

    2,写程序

     1 利用递归实现     1    *    2    *    3    *    4    *    5    *    6    *    7
     2 
     3 count = 0
     4 a = 1
     5 def calc(count,a):
     6     count +=1
     7     if count <= 7:
     8         a = a*count
     9         print(a)
    10     else:
    11         return
    12     calc(count,a)
    13     

    3,通过yield实现在单线程的情况下实现并发运算的效果

     1 1 import time
     2  2 def consumer(name):
     3  3     print('%s准备吃包子啦!' %name)
     4  4     while True:
     5  5         baozi = yield  # 生成器遇到yield就会终止该函数的操作,并且会将函数执行的状态挂起,
     6  6         # 直到send来恢复当前状态,然后继续执行以下的代码
     7  7         print('包子[%s]来啦!,被[%s]吃了!!' %(baozi,name))
     8  8 def producer():
     9  9     c = consumer('laiying')  # 创建了一个生成器c
    10 10     b = consumer('zcy')  # 创建了一个生成器b
    11 11     c.__next__()  # 通过c.__next__()执行consumer这个生成器
    12 12     b.__next__()  # 通过c.__next__()执行consumer这个生成器
    13 13     print('陈师傅要开始做包子啦!')
    14 14     for i in range(1,10):
    15 15         time.sleep(2)
    16 16         print('做了2个包子')
    17 17         c.send(i)  # 通过send方法去恢复yield的挂起状态,并将变量i的值传递给yield
    18 18         b.send(i)  #其实__next__方法也可以恢复yield的挂起状态,但是__next__不能传值给yield
    19 19 producer()
  • 相关阅读:
    jQuery-03
    正则表达式
    文件下载
    Shiro笔记
    MyBatis笔记
    Spring5笔记
    JavaScript笔记
    smartsvn安装和使用 —— svn工具linux版
    网易云歌单导入qq音乐
    svn版本回滚 —— svn使用笔记之三
  • 原文地址:https://www.cnblogs.com/YingLai/p/6140274.html
Copyright © 2011-2022 走看看