• python学习笔记3


    合并字符串

    r来形成原始字符串
    +不能像c#一样直接连接一个字符串和有关数值。

    切片

    能够 从头開始也能够倒数计数。也能够间隔一定距离取

    >>> numlist=list(range(100))
    >>> numlist
    [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99]
    >>> numlist[:10)
    SyntaxError: invalid syntax
    >>> numlist[:10]     #这里冒号前面的0能够省略
    [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
    >>> numlist[:10:2]
    [0, 2, 4, 6, 8]
    >>> numlist[-10::2]   #这里冒号中间的-1能够省略;
    [90, 92, 94, 96, 98]
    >>> numlist[-10::3]
    [90, 93, 96, 99]
    >>>

    迭代:

    可迭代对象iterable 、 for … in … 、 enumerate函数能够把一个索引元素对,也就相当于一个带序号和实际内容的元素对组成的list
    容器和生成器都是可迭代对象,而仅仅有生成器才是迭代器对象。
    容器包含序列(list与tuple)、集合set、字典dict。Enumerate能够对序列生成索引元素对。

    mydict={}
    mydict['数学']=60
    mydict['语文']=90
    mydict['英语']=100
    
    for str,score in mydict.items():
        print(str,score)
    
    for str in mydict.items():
        print(str)
    
    for index,str in enumerate(mydict.items()):
    print(index,str)

    列表生成式

    列表生成式就是用生成式来简化循环生成列表的过程。

    生成式与if语句联合

    generatedList=[x*x for x in range(1,11) if x%2==0]
    print(generatedList);

    两个for联合能够使用两层循环形成全排列

    allSortedList=[(x,y) for x in 'ABC' for y in [1,2,3]]
    print(allSortedList)

    列出当前文件夹下全部文件和文件夹名

    import os
    dir=[d for d in os.listdir('.')]
    print(dir)

    字符串变小写

    #測试
    strlist=['Abc','dE12',334,'12F']
    #strlist=[strs.lower() for strs in strlist if isinstance(strs,str)]
    strlist=[strs for strs in strlist 
             if not isinstance(strs,str) or isinstance(strs.lower(),str)]
    print(strlist)

    生成器

    假设列表元素能够依照某种算法推算出来,那就不必生成完整的列表。仅仅要依据须要来生成,这样就能节省内存空间。

    这就是生成器generator();generator是一个算法,而不是一个列表,假设想訪问下一个元素须要使用next(g);

    生成器有两种方法创建。第一种是使用生成式的方式。另外一种是使用定义生成器函数的方式。


    生成式也是iterable对象

    生成式的方式生成生成器

    g=(x*x for x in range(1,10))
    for n in g:
        print(n)

    iterable对象在迭代到最后一个元素后假设继续迭代会产生StopIteration异常,能够进行捕获。

    # -_-! coding: utf-8 -_-!
    myList=list(range(1,100))
    for index,num in enumerate(myList):
        print(index,num)
    
    #迭代
    mydict={}
    mydict['数学']=60
    mydict['语文']=90
    mydict['英语']=100
    
    for str,score in mydict.items():
        print(str,score)
    
    #dict的默认是迭代key,能够用.value()迭代值,能够用.items()迭代键值对
    for str in mydict.items():
        print(str)
    
    for index,str in enumerate(mydict.items()):
        print(index,str)
    
    #生成式
    #与if语句联合
    generatedList=[x*x for x in range(1,11) if x%2==0]
    print(generatedList);
    
    
    #两个for联合
    #能够使用两层循环形成全排列
    allSortedList=[(x,y) for x in 'ABC' for y in [1,2,3]]
    print(allSortedList)
    
    #列出当前文件夹下全部文件和文件夹名
    import os
    dir=[d for d in os.listdir('.')]
    print(dir)
    
    
    #字符串变小写
    #測试
    strlist=['Abc','dE12',334,'12F']
    #strlist=[strs.lower() for strs in strlist if isinstance(strs,str)]
    strlist=[strs for strs in strlist 
             if not isinstance(strs,str) or isinstance(strs.lower(),str)]
    print(strlist)
    
    lista=[1,2,3]
    listb=[2,3,4]
    lista=lista+listb;
    print(lista)
    
    
    #生成器
    ##生成式的方式生成生成器
    g=(x*x for x in range(1,10))
    for n in g:
        print(n)
    
    ##定义函数的方式生成生成器
    ###斐波那契额数 1 1 2 3 5 8
    def fab(n):
        x,y,z=0,1,0
        while z<n:
            yield y #返回生成器的函数与其他函数的差别就在于print改成yied,在此处就可调用next()
            x,y=y,x+y#这里能够用作交换x,y的值比其他语言要少了两行
            z=z+1
        return 'done'
    
    g=fab(10)
    for n in g:
        print(n)
    
    
    ##捕获StopIteration异常
    def fab(n):
        x,y,z=0,1,0
        while z<n:
            yield y #返回生成器的函数与其他函数的差别就在于print改成yied,在此处就可调用next()
            x,y=y,x+y#这里能够用作交换x,y的值比其他语言要少了两行
            z=z+1
        return 'done'
    
    f=fab(9)
    while True:
        try:
            x=next(f)
            print(x)
        except StopIteration as e:
            print('stopIteration结束了',e.value)
            break
    
    
    #杨辉三角
    def triangles():
        x,y,z,temp=[1],0,0,[]
        while True:
            yield x
            for num in x:
                temp.append(num+y)
                y=num
            temp.append(x[-1]+z)
    
            x,temp,y=temp,[],0
        return 'done'
    
    n=0
    for t in triangles():
        print(t)
        n=n+1
        if n==10:
            break
  • 相关阅读:
    linux下查看nginx,apache,mysql,php的编译参数
    Nginx重大漏洞,文件类型错误解析
    用C语言编写PHP扩展1(转)
    数字证书中keytool命令使用说明
    Nginx 日志文件切割
    推荐12款精心设计网站设计PSD模板
    分享9个最棒的代码片段资源网站
    强大的独立日期选择器(date picker)插件 Kalendae
    分享一个HTML5的drag and drop API实现的图片拖拽分组效果
    你真的很了解HTML标签吗? 试试这个超异类的HTML标签小测验吧!
  • 原文地址:https://www.cnblogs.com/zhchoutai/p/8442089.html
Copyright © 2020-2023  润新知