python学习笔记:python基础语法与列表list

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/WilliamCode/article/details/85057673

1、while循环和for循环
    while 真值表达式1:
        语句块1
    else:
        语句块2
    执行流程:先判断真值表达式,True进语句块1,完了之后继续判断真值表达式1
          直到真值表达式为False,执行一遍else里的内容,结束while语句
    注意循环变量的自增和自减即可
2、break语句
    终止上一层循环
3、for语句用于遍历序列或者迭代对象的每一个元素
    可迭代对象:指能够依次获取数据的对象,包括字符串str、列表list、元组tuple、字典dict、集合set、range等
    语法格式:
    for 变量列表 in 可迭代对象:
        语句块1
    else:
        语句块2
    解释:可迭代对象的每一个元素对象依次赋给列表中的变量,赋值完毕后执行语句块1
        所有元素都赋值过后,执行else;如果使用了break跳出循环,else语句不会继续执行
4、range函数
    for i in range(5):    i是从0到4(包含4)
    for i in range(5,9):    i是从5到8(包含8)
    for i in range(1,9,2):    i的增量是2,所以i的值为:1 3 5 7
    for i in range(9,1,-2):    i的值依次为9,7,5,3

5、一个很好的练习题:
    用for循环生成一个字符串"ABCD...XYZ",并打印。
    代码:
    i = str()
    for c in range(ord('A'),ord('Z')+1):
        i += str(chr(c))
    print("%s"%i)
6、练习题:输入Unicode的begin值和end值,按表格形式打印这个区间内的Unicode的十进制、十六进制、对应字符
    str1 = input("please input Unicode1: ")
    str2 = input("please input Unicode2: ")
    begin = int(str1)
    end = int(str2)
    print("%s"%"10jinzhi".center(15),end = '|')
    print("%s"%"16jinzhi".center(15),end = '|')
    print("%s"%"char".center(15),end = '|\n')

    for i in range(begin,end+1):
        print("%s"%str(i).center(15),end = '|')
        print("%s"%hex(i).center(15),end = '|')
        print("%s"%str(chr(i)).center(15),end = '|\n')
    运行结果:
        please input Unicode1: 45
        please input Unicode2: 53
            10jinzhi   |    16jinzhi   |      char     |
                45      |      0x2d     |       -       |
                 46      |      0x2e     |       .       |
                 47      |      0x2f     |       /       |
                 48      |      0x30     |       0       |
                  49      |      0x31     |       1       |
                  50      |      0x32     |       2       |
                  51      |      0x33     |       3       |
                  52      |      0x34     |       4       |
                  53      |      0x35     |       5       |

7、continue语句
    和c语言一样
8、列表list
    一个长度可变的容器,其数据类型可以不一致
    比如[1,3,4,[23,424],"qweqwe",1+2j]
    声明一个列表  l = [10,2,3]
    构造函数list():
        list()    返回空列表
        list(interable,即可迭代对象,如str,range)    用所给interable产生一个list
        比如:list(range(10,1,-2)) = [10, 8, 6, 4, 2]
              list("list("abcdefg")) = ['a', 'b', 'c', 'd', 'e', 'f', 'g']            
        
9、列表的运算
    +:两个list合并
    +=:两个list合并
    *:相当于多个加法,只能乘int,不能乘list;乘以负数,得到空列表
    *=:同上
    规则和字符串一样
10、列表的比较
    < <= > >= == !=
    比较规则:从前向后比较每一个元素,完全相同则相等
        如果一个列表比另一个长,那么短的那个列表比较时,空缺的部分值为-∞
        ["abc",1,2] > ["123",1,2]因为字符串"abc">"123"
        但是["abc",1]>[1,2]执行时会出错,因为无法比较
11、list的in和not in运算符
    判断元素是否在list中
    例子:'a' in ['a',1,2,3] = True
        然而:'a' in [1,2,['a','b']] = False
12、list列表的索引与切片
    和字符串一样
    索引和c的数组完全一样
    切片的结果还是列表list
    列表的切片是可以赋值的:l[1:3] = [1,2],此时还是可以倒着赋值
    切出一个长度为0的“缝”,还可以给某个位置插入一些数据
13、del删除列表元素
    del L[-1]删除编号为-1即最后一个元素
    del L[0]删除编号为0的元素,即第一个元素
    del L[::2]删除切片出来的元素,这个语句将删除L中0,2,4,6...这些元素
14、list列表相关的函数
    len(L)
    max(L)
    min(L)
    
    sum(L)    列表元素求和,必须是数值型列表
    any(L)    列表中有一个元素bool值为真则返回真
    all(L)    列表中所有元素都为真则为真
    
15、list列表常用方法(method)
    L.index(x[,begin[,end]])    找到第一个值为x的列表元素返回下标
                    begin为开始,end为结束,默认为list开头和结尾,找不到产生错误
    L.insert(index,obj)    在index下标处插入obj,之后元素后移,负下标依然起作用
    L.count(x)    数列表中元素x的个数
    L.remove(x)     删除列表中第一次出现该值的元素
    L.append()     向列表追加一个元素
    L.extend(List)    向列表插入另一个列表,和+=不同的是,该操作不会进行内存复制,只是在L基础上追加
        注意:L.extend([1,2,3])会将1,2,3分别作为一个单独元素加入到L后面,但是append([1,2,3])将[1,2,3]作为一个元素加入L之后
    L.clear()    清空列表,即L=[]
    对列表的赋值操作是引用赋值,两个变量关联的还是同一个内存区域,用L.copy()做一个拷贝
    L.sort(reverse = Flase)    排序,默认顺序从小到大
    L.reverse()    列表反转,和切片不同的是,不用内存复制
    L.pop([index])    删除index下标处对应的元素,缺省删除最后一个,返回被pop对象的引用
16、深拷贝和浅拷贝
    浅拷贝指在拷贝时只拷贝对象的引用关系,不拷贝关联的对象
    深拷贝指连同关联的对象一起拷贝,用
        import copy
        copy.deepcopy(L1)进行深拷贝
    
17、列表和字符串比较
    列表和字符串都是可迭代对象、有序序列
    列表元素可以是任意元素,字符串元素只能是字符
    字符串相对来说的不可变对象,而序列则是可变对象
18、字符串文本解析方法split()和join()
    str.split(sep=None,maxsplit=-1)    将字符串以sep为界限分割成若干字符串,以列表形式返回。如果未给定sep,则以空白符为界限
    str.join(iterable)    举个例子:L=['aa','a','3']  "##".join(L) = 'aa##a##3'
    举例一个应用:    
        path = ['C:','usr','WilliamCode']
        "\\".join(path) = 'C\\usr\\WilliamCode'   #其中\\是转义字符,用于生成路径
    

猜你喜欢

转载自blog.csdn.net/WilliamCode/article/details/85057673