python 基础2

来源:互联网 发布:intouch组态软件下载 编辑:程序博客网 时间:2024/05/19 19:42
# encoding=utf-8from math import sqrtif __name__==('__main__'):    #序列解包    x,y,z=1,2,3    print x,y,z    x = ['gjl','xff','ccc']    y = ['gjj','xoo','cee']    print [(a,b) for a in x for b in y if a[0] == b[0]]    letterys = {}    for a in x:            letterys.setdefault(a[0],[]).append(a)    print letterys    print( [(a,b) for a in x for b in letterys[a[0]]])    #循环中的else子句 注意他仅在没有执行break 句子的时候执行    """    while True:        name = raw_input('please input your name:')        if name:            print('your name is '+name)            break    """    for x in range(99,0,-1):        root = sqrt (x)        if root == int (root):            print root            break    else:        print('dint find it')    #抽象 参数 作用域    fibs = [0,1]    for x in range(10):        f = fibs[-2]+fibs[-1]        fibs.append(f)    print fibs    def try_to_change(n):        n[0] = 's'    name = ['mr','s']    try_to_change(name)    print name    #关键字参数和默认值 关键字参数就是使用参数名 来调用参数 这样使得每个参数具有集体的意义    def saysomething(name,greeting):        print( greeting+','+name)    saysomething(greeting='hello',name='gjl')    #很多时候可以让用户输入任意多的参数是非常有用的 可以 用* 支持  用** 支持关键字参数的收集    def print_params(**paras):        print paras    print_params(name ='a',gr='b')    #输出{'name': 'a', 'gr': 'b'}    #s收集参数的逆过程    def add(x,y):        return x+y    print add(*(1,2))    params ={        'name':'gjl',         'greeting':'hello'}    saysomething(**params)    #下面的函数是对之前多讲的练习 主要是对于关键字参数的把握 以及参数收集 总体记住一点 *(**)可以传递元组 字典    def power(x,y,*others):        if others:            print 'redudunt paramters'        return pow(x,y)    def interval(start,stop=None,step=1):        if stop is None:            start,stop=0,start        result = []        for x in range(start,stop,step):            result.append(x)        return result    def sayHello(**kwds):        print '%(greeting)s you are %(name)s are you ' % kwds    sayHello(**{'greeting':'hello',              'name':'gjl'})    print power(*(2,3))    power(2,3,'hello')    print power(x=2,y=3)    print interval(0,10,2)    print interval(10)    #嵌套作用域 python中 函数是可以嵌套的 嵌套函数有一个很突出的作用 就是利用函数创建函数 下面的被创建的函数就可以访问 创建函数 的 参数,    # 类似 被创建函数 存储子作用域的行为 叫做 closure    #    def multiplier(factor):        def mutiplyByFactor(numbers):            return numbers*factor        return mutiplyByFactor    double = multiplier(2)    print(double(3))    #递归recursion 阶乘 幂    def recn(n):        if n==0:            return 1        return n*recn(n-1)    print 102,recn(3)    def power1(x,y):        if y ==1:            return x        return x*power1(x,y-1)    print 107, power1(2,3)    #二分查找的基本要求是 列表有序    def search(lower,upper,x,seq):        if(lower == upper):            if (seq[upper]==x):                return upper            else:return None        mid =(upper +lower)/2        if(x>seq[mid]):            return search(mid+1,upper,x,seq)        else:            return search(lower,mid,x,seq)    l =[1,2,4,5,7]    print 120,search(0,len(l)-1,9,l)    #利用关键字参数改写    def searchNew(x,seq,lower=0,upper=None):        if upper is None:            upper = len(seq)-1        if(lower == upper):            if (seq[upper]==x):                return upper            else:return None        mid =(upper +lower)/2        if(x>seq[mid]):            return searchNew(x,seq,mid+1,upper)        else:            return searchNew(x,seq,lower,mid)    print 136, searchNew(1,l)
阅读全文
'); })();
0 0
原创粉丝点击
热门IT博客
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 可可曲奇 蔓越莓曲奇的做法 蔓越莓曲奇 自制曲奇 黄油曲奇的做法 巧克力曲奇 曲奇图片 曲奇饼干的做法图解 如何做曲奇饼干 黄油曲奇 怎样做曲奇饼干 曲奇饼干配方 曲奇做法 怎么做曲奇 曲奇怎么做 君之曲奇饼干的做法 曲奇饼干怎么做 烤曲奇 奇曲饼干 曲奇饼干的做法大全 曲奇饼干价格 小饼干 皇家曲奇 奶油曲奇饼干 曲奇蛋白营养粉 曲奇蛋 进口曲奇饼干 曲奇礼盒 曲奇人体 玫瑰曲奇 曲奇饼干包装袋 珍妮曲奇小熊饼干价格 锋味曲奇 奶香曲奇饼干 曲奇配方 曲奇抹茶 樱花曲奇 曲奇蛋挞 花式曲奇 曲奇英语 曲奇公司