美文网首页
Day5-课堂笔记-列表

Day5-课堂笔记-列表

作者: 晓晓的忍儿 | 来源:发表于2018-07-20 18:48 被阅读0次

    1.input()函数

    • input()可以接收从控制台输入的内容(以回车为结束标志)
    • input函数会阻塞线程,程序执行到input的时候就会停下来,等待输入完成
    • 接收到的数据是以字符串的形式返回的(python2.x中输入的是数字的时候,可能返回int型或者是浮点型,Python3.x中返回的全是str型)
      练习:猜数字游戏
      随机产生一个1-100的整数,输入的数字如果和产生的随机数是一样的,就提示才对,并结束游戏,如果输入的数大于或者小于随机数,就提示输入的数字偏大或则偏小,然后从新输入
    import random
    mul1=random.randint(1,100)
    mul2=input("请输入猜测的数字")
    count=0
    while 1:
        count+=1
        mul2 = int(mul2)
        if mul1==mul2:
            print("恭喜你猜正确")
            if count<7:
                print('大神,你运气贼好')
            elif count<20:
                print('还不赖嘛')
            else:
                print('快去找妹子充会儿电吧')
            break
        elif mul1>mul2:
            print('抱歉,你猜的数字小了')
            mul2=input('请重新输入你的猜测')
        elif mul1<mul2:
            print('抱歉,你猜的数字大了')
            mul2 = input('请重新输入你的猜测')
    

    结果:

    请输入猜测的数字50
    抱歉,你猜的数字小了
    请重新输入你的猜测75
    抱歉,你猜的数字小了
    请重新输入你的猜测85
    抱歉,你猜的数字小了
    请重新输入你的猜测90
    抱歉,你猜的数字大了
    请重新输入你的猜测88
    恭喜你猜正确
    大神,你运气贼好

    2.列表

    列表、字典、元组、集合都是序列,都是容器类型的数据类型
    列表:用来存储多个数据的一种数据类型,存储的单个数据叫元素
    特点:有序的、可变的(内容的个数和值是可变的)、元素可以是任何类型的数据
    列表的值:用[]将列表元素括起来,元素间用逗号隔开。[]-->空列表

    1)声明列表

    # 声明列表
    list1=[3,'dfs',4.5,5,[1,2,3]]
    print(list1[4][1])
    list2=[]#空列表
    print(list2,list1,sep='_')
    chr='djfdkhgaslj'
    # 将其他类型的数据转成列表
    list3=list(chr)
    print(list3)
    list4=list(i for i in range(10))
    print(list4)
    list5=list(i for i in range(10) if i%3!=0)
    print(list5)
    

    结果:

    2
    []_[3, 'dfs', 4.5, 5, [1, 2, 3]]
    ['d', 'j', 'f', 'd', 'k', 'h', 'g', 'a', 's', 'l', 'j']
    [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
    [1, 2, 4, 5, 7, 8]

    2)获取列表的元素

    列表中的每个元素对应一个下标:0-列表长度-1,-1到-列表长度

    • 获取单个元素:列表名[下标]、下标不能越界
    • 获取部分元素
      列表名[开始下标:结束下标]:获取从开始下标,到结束下标前一个位置的所有元素,结果是一个列表
      列表名[开始下标:结束下标:步进]:从开始下标,每次下标值加步进获取下一个元素,直到结束下标前一个位置为止
    • 起始下标和结束下标都可以缺省
      开始下标缺省: 如果步进是正数,就从开始取到结束下标前一个为止。如果步进是负数,就从列表最后一个元素开始获取元素直到结束下标前一个为止
      结束下标缺省:如果步进是正数,就从开始下标开始获取元素直到列表最后。如果步进是负数,就从开始下标开始向列表开头获取元素直到列表最开头
      列:
    names=['鸣人','天明','项羽','曹尼玛']
    print(names[1],names[-3])
    print(names[1:3],names[-3:-1],names[-4:-1:2])
    
    

    结果:

    天明 天明
    ['天明', '项羽'] ['天明', '项羽'] ['鸣人', '项羽']

    • 一个一个的获取列表元素
      for循环
    for item in list5:
        print(item)
    print('========')
    

    结果:

    21
    43
    4535
    54
    665
    46
    557
    5
    ========

    while循环

    num=0
    while num<len(list5):
        print(list5[num])
        num+=1
    

    结果:

    21
    43
    4535
    54
    665
    46
    557
    5

    3) 获取列表的长度

    函数len(列表)

    list5=[21,43,4535,54,665,46,557,5]
    print('长度为%d'%(len(list5)))
    

    结果:

    长度为8

    3.添加列表元素

    1)append()函数

    格式:列表.append(元素)
    在列表的末尾添加一个元素

    skills=[]
    skills.append('炁体源流')
    print(skills)
    skills.append('拘灵遣将')
    print(skills)
    

    结果:

    ['炁体源流']
    ['炁体源流', '拘灵遣将']

    2) insert()函数

    格式:列表.insert(index(下标),元素)
    在列表中指定位置并插入到它前面
    index可以越界,将值插入到列表的两边

    skills.insert(1,'通天箓')
    print(skills)
    

    结果:

    ['炁体源流', '通天箓', '拘灵遣将']

    3)+

    格式:列表1+列表2
    将列表2中的元素和列表1中元素合并创建一个新的列表

    str=[1,2,3]
    new_skills=skills+str
    print(new_skills)
    

    结果:

    ['炁体源流', '通天箓', '拘灵遣将', 1, 2, 3]

    练习:从控制台输入10个学生的成绩,然后保存到一个列表中

    list6=[]
    for x in range(10):
        mul1=int(input("你好,你是第%d名学生,请输入成绩:"%(x+1)))
        if 0<=mul1<=100:
            list6.append(mul1)
        else:
            mul1 = int(input("输入错误,请从新输入:"))
            list6.append(mul1)
    print(list6)
    

    结果

    你好,你是第1名学生,请输入成绩:45
    你好,你是第2名学生,请输入成绩:65
    你好,你是第3名学生,请输入成绩:75
    你好,你是第4名学生,请输入成绩:86
    你好,你是第5名学生,请输入成绩:87
    你好,你是第6名学生,请输入成绩:43
    你好,你是第7名学生,请输入成绩:76
    你好,你是第8名学生,请输入成绩:97
    你好,你是第9名学生,请输入成绩:87
    你好,你是第10名学生,请输入成绩:34
    [45, 65, 75, 86, 87, 43, 76, 97, 87, 34]

    4.删除列表元素

    1)del语句

    • del可以直接删除任何数据
    • del 列表[下标] :删除列表中指导下标的元素
    • 注意:不管是添加元素还是删除元素,列表都会重新分配下标
      删除列表时,下标不能越界
    films=['战狼','杨门女将','逃学威龙','赌神']
    del films[1]
    print(films)
    

    结果:

    ['战狼', '逃学威龙', '赌神']

    2)remove()方法

    • 列表.remove(元素):删除列表中的指定元素(删除第一个匹配项的元素)
    • 注意:如果要删除的元素不再列表中会报错(ValueError)
    films+=films
    films.remove('逃学威龙')
    print(films)
    

    结果:

    ['战狼', '赌神', '战狼', '逃学威龙', '赌神']

    3)pop方法

    *列表.pop():将列表中的最后一个元素取出来
    *列表.pop(下标):将列表中指定下标的元素取出来
    *注意:del和remove删除是直接将元素删除,以后不能在操作这个元素而pop则是将元素移除列表,可以将移出列表的元素保存,再进行操作

    film2=films.pop(3)
    print(films.pop(),film2)
    

    结果:

    赌神 逃学威龙
    练习:

    方法一:
    scores=[23,45,78,32,90,89,1]
    nul=[]
    mul=-1
    for x in scores:
        if x<60:
            nul.append(1)
        else:
            nul.append(x)
    for y in nul:
        mul+= 1
        if y==1:
            del scores[mul]
            mul-=1
    print(scores)
    
    方法二:
    scores1=[23,78,32,90,89,1,45]
    scores2=scores1.copy()
    for x in scores2:
        if x<60:
            print(x)
            scores1.remove(x)
    print(scores1)
    
    方法三:
    for item in scores[:]:
        if item<60:
            scores.remove(item)
    print(scores)
    

    结果:

    [78, 90, 89]
    [78, 90, 89]

    [78, 90, 89]

    相关文章

      网友评论

          本文标题:Day5-课堂笔记-列表

          本文链接:https://www.haomeiwen.com/subject/bgcfmftx.html