• python笔记(3)--数据类型(列表、元组)


    数据类型(二)

    今日内容:

    • 列表
    • 元组

    内容回顾和补充:

    1. 计算机基础:

      • 硬件:CPU/内存/硬盘/主板/网卡

      • 操作系统:

        • Linux(免费/开源)
          • centos
          • ubuntu
          • redhat
        • windows
        • mac
      • 解释器/编译器

        • 补充:编译型语言和解释型语言?

          # 编译型:代码写完后,编译器将其变成另外一个文件,然后交给计算机执行。
          # 解释型:写完代码交给解释器,解释器会从上到下一行行执行代码:边解释边执行。
          
      • 软件(应用程序)

    2. 环境安装:

      • python解释器
        • py2
        • py3
      • 开发工具:pycharm(推荐)/ 文本编辑器
    3. python语法

      1. 解释器路径:hello.py

        #!/usr/bin/env python
        print("你好")
        

        Linux系统应用:

        • 赋予文件可执行文件
        • ./hello.py
      2. 编码:

        #!/usr/bin/env python
        # -*- coding:utf-8 -*-
        python("你好")
        
        1. 编码种类:
          • ASCII
          • unicode
          • utf-8 / utf-16
          • gbk / gbk2312
        2. 中文表示:
          • utf-8 : 3字节
          • gbk:2字节
        3. python默认解释器编码:
          • py3:utf-8
          • py2:ascii
      3. 输入输出:

        • py2:
          • 输入:raw_input
          • 输出:print ""
        • py3:
          • 输入:input
          • 输出:print()
      4. 数据类型:

        1. int
          • py2中有:int / long;py3中只有int
          • 强制转换:int("76")
          • 除法:py2(多加一行代码可以精确到小数)和py3(正常)
        2. bool
          • True / False
          • 特殊为False的其他类型:0 和 ""
        3. str:
          • 独有功能:
            • upper / lower
            • replace
            • strip / rstrip / lstrip
            • isdigit
            • split / rsplit
            • startswitch / endswitch
            • format
            • encode
            • join
          • 公共功能:
            • 索引:获取一个字符
            • 切片:获取一段字符串(子序列)。
            • 步长:根据步长取值
            • 长度:len()
            • for循环
      5. 变量(见名知意)

      6. 注释

      7. 条件语句

      8. 循环语句:while + for + break + continue

      9. 运算符

      10. 字符串格式化

        • %s
        • %d
        • %%

    内容详细:

    1.列表

    详细:以后想要表示多个“事物”,可以使用列表。

    • 数字、字符串、布尔类型无法修改删除期中的元素
    • 列表可以对其中的元素进行增删改查
    users = ["yanan","yazhou",77]
    

    公共功能:

    • len
    • 索引
    • 切片
    • 步长
    • for循环

    独有功能:

    1. append 追加:在列表的最后追加一个元素
      • 列表.append("追加元素")
    #在列表中追加:
    user = ["小黑","船长","末日"]
    user.append("李亚楠")
    print(user)    #结果为['小黑', '船长', '末日', '李亚楠']
    #往列表中追加元素:
    users=[]			#空列表
    while True:
        name = input("请输入名字:")
        users.append(name)
        print(users)
    #录入三次用户名和密码,存放在列表中:    
    users=[]
    for i in range(0,3):
        name = input("用户名和密码:")
        users.append(name)
    print(users)
    
    1. extend 将一个(字符串 / 元组 / 列表)循环其中的每个元素,并追加到一个列表中

      li = ["小黑","船长","武器","螃蟹"]
      L2 = ["瞎子","诺克","德玛"]
      li.extend(L2)	#结果为["小黑","船长","武器","螃蟹","瞎子","诺克","德玛"]
      
      li = ["小黑","船长","武器","螃蟹"]
      L2 = ("瞎子","诺克","德玛")
      li.extend(L2)	#结果为["小黑","船长","武器","螃蟹","瞎子","诺克","德玛"]
      
      li = ["小黑","船长","武器","螃蟹"]
      name = "烬劫"
      li.extend(name)
      print(li)		#结果为['小黑', '船长', '武器', '螃蟹', '烬', '劫']
      
    2. insert插入:在元素下标位置前插入

      • 列表.insert(下标位,"插入元素")
      user = ["小黑","船长","末日"]
      user.insert(1,"李亚楠")
      print(user)
      #结果为['小黑', '李亚楠', '船长', '末日']
      
    3. remove / pop / clear 删除:在列表中删除或清空元素。注意:如果有同样的元素,则删除第一个

      • 列表.remove("删除的元素")
      • 列表.pop(需要删除的下标号) :不仅仅是删除,还可以将删除的值赋值在变量上
        • del 列表[下标] :只是删除
      • 列表.clear() #清空列表
      #在列表中删除元素
      user = ["小黑","船长","末日","小黑"]
      user.remove("小黑")
      print(user)    #结果为['船长', '末日']
      #注意,如果列表中有多个一样的删除元素,则删除第一个
      user = ["小黑","船长","末日","小黑"]
      user.remove("小黑")
      print(user)    #结果为['船长', '末日','小黑']
      
      #根据下标位置删除元素
      user = ["小黑","船长","末日"]
      user.pop(2)		
      #del user[2]		
      user.pop()		#如果pop参数为空则删除最后一个
      print(user)		#结果为['小黑']
      
      #根据下标位置删除元素并将其赋予新的变量
      user = ["小黑","船长","末日"]
      deleted = user.pop(2)
      print(user)		#结果为列表:   ['小黑','船长']
      print(deleted)	#结果为字符串:  末日   
      
      #清除列表
      user = ["小黑","船长","末日"]
      user.clear()
      print(user)
      
    4. 修改:

      • 列表[需要修改的下标] = "修改的内容"
      user = ["小黑","船长","末日"]
      user[0] = "稻草人"
      print(user)
      #结果为['稻草人', '船长', '末日']
      

    总结:

      • append / insert|
      • remove / pop / clear / del users[2]
      • users[3] = "新值"
      • 索引 / 切片

    列表的嵌套:

    users = ["小黑",456,"船长","女警官",["路飞","草帽",["火影","哪吒",856]],"eil","pop","iklo"]
    
    users[2] 		#取出"船长"
    users[4][0] 	#取出"路飞"
    users[3][1]		#取出警
    users[4][1][1]	#取出"帽"
    users[4] = 666	#将["路飞","草帽",["火影","哪吒",856]]修改为666
    

    2.元组 tuple

    1. 元组的书写

      user = [11,22,33,"小黑"] #列表可变
      
      user = (11,22,33,"小黑") #元组不可变
      
    2. 公共功能:

      • 索引
      • 切片
      • 步长
      • for循环
      • len()
    3. 独有功能(无)

    4. 特殊:元组中的元素不可修改 / 删除

      v1 = (11,22,33)
      v1[1] = 999  #错误,元组不可修改
      v1 = 999	#正确,变量重新被赋值为999
      
      #可以嵌套
      v1 = (11,22,33,(44,55,66),77)
      
      #列表嵌套元组
      v2 = [11,22,33,"小黑",(11,22,33),88] #列表可以嵌套元组
      v2[-2][0] = 666	#错误,列表内的元组不可修改
      v2[-2] = 666	#正确,列表内的元组被重新赋值了
      
      #元组嵌套列表
      v3 = (11,22,33,[44,55,66])
      v3[-1] = 666 	#错误,元组内列表整体元素属于元组,不可修改
      v3[-1][1] = 666	#正确,元组内列表的元素进行修改,可以修改
      

    总结:

    1. 解释型语言和编译型语言的区别以及列举你了解的语言

    2. 字符串的补充:

      • 独有
        • startswitch / endswitch
        • format
        • encode
        • join
      • 公共
        • 切片
        • 索引
        • len()
        • 步长 #面试题
        • for循环
        • range(0,10)#生成一个数字列表[0,1,2,3,4,5,6,7,8,9]
      • 特性
        • 不可变,所以字符串元素不能删除和修改
    3. git本地和远程要同步,以后只能操作本地然后提交

    4. 列表(可变)

      • 公共
        • 索引
        • 切片
        • 步长
        • 修改
        • 删除 (del)
        • for循环
        • len()
      • 独有
        • append
        • insert
        • pop
        • remove
        • clear
      • 列表嵌套
    5. 元组(不可变)

      • 公共

        • 索引
        • 切片
        • 步长
        • for
        • len()
      • 独有功能(无)

      • 元组的嵌套(容易出错的例子,记住)

        #元组嵌套列表
        v3 = (11,22,33,[44,55,66])
        v3[-1] = 666 	#错误,元组内列表整体元素属于元组,不可修改
        v3[-1][1] = 666	#正确,元组内列表的元素进行修改,可以修改
        

    作业:

    1. 简述解释型语言和编译型语言的区别

    2. 列举你了解的python的数据类型

      • 字符串 str
      • 整形 int
      • 布尔 bool
      • 列表 list
      • 元组 tuple
    3. 请将一个列表追加到另外一个列表中

      #li = ["小黑","船长","武器","螃蟹"]   追加到    L2 = ["瞎子","诺克","德玛"]
      #方法一:使用for循环打印列表li,并追加到列表L2中
      li = ["小黑","船长","武器","螃蟹"]
      L2 = ["瞎子","诺克","德玛"]
      for item in li:
          L2.append(item)
      print(L2)
      #方法二:使用extend循环li列表内的元素,并加到L2中
      L2.extend(li)
      print(L2)
      		#结果为:['瞎子', '诺克', '德玛', '小黑', '船长', '武器', '螃蟹']
      #如果需要加字符串中每个字符,也可以使用extend
      li = ["小黑","船长","武器","螃蟹"]
      name = "烬劫"
      li.extend(name)
      print(li)	#结果为['小黑', '船长', '武器', '螃蟹', '烬', '劫']
      
    4. 删除列表内几个连续的元素

      #删除列表内下标为1-2的值
      li = ['瞎子', '诺克', '德玛', '小黑', '船长', '武器', '螃蟹']
      del li[1:3]
      print(li)	#结果为['瞎子', '小黑', '船长', '武器', '螃蟹']
      
    5. 将字符串内所有的字符反转打印

      #使用步长方式反转:
      li = "小黑半夜三点在玩愤怒的小鸟"
      name = li[::-1]
      print(name)
      
      #使用while循环方式反转:
      L2 = ""
      li = "小黑半夜三点在玩愤怒的小鸟"
      num = len(li)
      index = num - 1
      while index >= 0 :
          item = li[index]
          index -= 1
          L2 = L2 + item		# 如果L2是列表的话,则L2.append(item)
      print(L2)
      
      #使用for循环方式反转:
      li = "小黑半夜三点在玩愤怒的小鸟"
      li_len = len(li) - 1
      val = ""
      for index in range(li_len,-1,-1):
          val += li[index]
      print(val)
      

      range的用法:加入步长,经常与for循环使用。

      print(list(range(0,10,1)))	#结果为[0,1,2,3,4,5,6,7,8,9]
      print(list(range(9,-1,-1)))	#结果为[9,8,7,6,5,4,3,2,1,0]
      
    6. 取出列表中每个元素,并加上索引。根据用户的选择,从1开始对应列表中的元素

      shoping = ['笔记本','游艇','电视','床','茶叶']
      for i in range(0,len(shoping)):
          print(i+1,shoping[i])
      num = input("请输入你要选择的商品:")
      num = int(num)
      
      text = "您选择的是:%s"%(shoping[num-1],)
      print(text)
      
    7. 根据需求完成列表的操作:

      lis = [2,3,"k",["qwe",20,["k1",["tt",3,"1"]],89],"ab","adv"]
      #将列表中lis的"k"变成大写,并打印列表
      lis[2] = lis[2].upper()
      lis[3][0] = lis[3][0].upper()
      #将列表中的3修改为字符串“100”
      lis[1] = "100"
      #将列表中的字符串"tt"变成数字101
      lis[3][2][1][0] = 101
      #在"qwe"前面插入字符串:"火车头"
      lis[3].insert(0,"火车头")
      print(lis)
      
    8. 利用for循环和range找出0~100以内的所有偶数,并追加到一个列表中

      #方法一:
      val = []
      for i in range(0,101,2):
          val.append(i)
      print(val)
      #方法二:
      for i in range(0,101):
          if i % 2 == 0:
              val.append(i)
      print(val)
      
    9. 利用for循环和range找出0~50以内能被3整除的数,并插入到列表中第0个索引位置

      val = []
      for i in range(0,51,3):
          val.insert(0,i)
      print(val)
      
    10. 查找列表中的元素,移除每个元素的空格,并找出以"a"(不论大小写)为开头的,添加到一个新列表中,最后循环打印此新列表

      li = ["tianbai","alexC","Abc ","edg","ritian","  WuSir","  anyang"]
      new_li = []
      for item in li:
          item = item.strip()
          if item.startswith("a") or item.startswith("A"):
              new_li.append(item)
      for item in new_li:
          print(item)
      print(new_li)
      
    11. 根据字符串,检索出字符串内所有数字并相加,把数字加入到列表中

      content = "5 + 78+99+ yu+ 53 + 52"
      num_list = content.split("+")
      print(num_list)
      total = 0
      new_list = []
      for item in  num_list:
          item = item.strip()
          if item.isdigit():
              new_list.append(item)
              total += int(item)
      print(new_list)
      print(total)
      
  • 相关阅读:
    Python Generators vs Iterators
    python staticmethod classmethod
    静态类型、动态类型、强类型以及弱类型语言
    Python串行运算、并行运算、多线程、多进程对比实验
    python字典根据value排序
    解读Python内存管理机制
    两个list 求交集效率对比
    Python error: Unable to find vcvarsall.bat
    max-length兼容ie
    return false 与return true 困惑
  • 原文地址:https://www.cnblogs.com/lynlearnde/p/11580135.html
Copyright © 2020-2023  润新知