首页 > 其他 > 详细

No.4列表&元组

时间:2020-03-19 09:37:18      阅读:50      评论:0      收藏:0      [点我收藏+]

No.4

今日概要

  1. 列表
  2. 元组
  3. 字典
  4. 集合

内容回顾和补充

  1. 计算机基础

    • 硬件

    • 操作系统

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

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

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

  2. 环境的安装

    • python解释器
      • py2
      • py3
    • 开发工具IDE:pycharm
  3. 语法

    1. 解释器路径:hellow.py

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

      Linux系统应用:

      • 赋予文件可执行权限
      • ./hellow.py
        • 输入此命令后会自动找文件第一行,根据第一行内容寻找解释器路径。
    2. 编码

      #!/usr/bin/env python
      # -*- coding:utf-8 -*-
      
      print('你好')
      1. 编码种类
        • acsii
        • unicode
        • utf-8 / utf-16
        • gbk / gb2312
      2. 中文表示
        • utf-8:3字节
        • gbk:2字节
    3. 输入输出

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

      1. int

        • 类型
          • py2:int / long
          • py3:int
        • 强制转换:int()
        • 除法
          • py2:取整(要变正常需要加一行代码)
          • py3:正常
      2. bool

        • Ture/False(其它语言:ture/false)
        • 转bool值为False的其它类型:0 和 ""
      3. str

        • 独有功能

          • .upper() / .lower()

          • .isgidit()

          • .strip() / .lstrip() / .rstrip()

          • .replace( , , )

          • .split( , ) / rsplit( , )

          • 补充

            • .startswith( ) / .endswith( )

              name = 'alex'
              #判段是否以al开头
              flag = name.startswith('al')
              print(flag)       结果True
              #判断是否以ex结尾
              flag2 = name.endswith('ex')
              print(flag2)      结果True
            • .format( , ,...)

              msg = '我的姓名是{0},我的年纪是{1}岁。'.format('老男孩','18')
              print(msg)
            • .encode(‘编码‘)

              neme = '李杰' 
              #解释器读取到内存后,按照unicode编码存储,占了8个字节。
              v1 = neme.encode('utf-8')
              print(v1)
              v2 = name.encode('gbk')
              print(v2)
            • .join()

              name = 'alex'
              s = '_'.join(name)
              print(s)
              结果:
              a_l_e_x
        • 公共功能

          • 索引:获取单个元素

          • 切片:获取多个元素(子序列)

          • 步长

            name = 'abcdabcd'
            v = name[-1:]
            print(v)   
            结果:d
            
            #步长默认是1,且默认往后找。
            name = 'abcdabcd'
            v = name[-1:0]
            print(v)     
            结果:空
            
            #面试题将字符串反转
            name = 'alex'
            v = name[-1::-1]
            print(v)
          • 长度

          • for循环

            name = 'alex'
            for item in name:
                print(item)
            
            name = 'alex' 
            for item in name:
                print(item)
                break
                print('123')
            
            name = 'alex'    
            for item in name:
                print(item)
                continue
                print('123')
            #习题:循环打印 1 ~ 10
            for i in range(1,11):
                print(i)

            注意:for和while的应用场景。有穷尽先用for,无穷尽用while。

    5. 变量

    6. 注释

    7. 条件语句

    8. 循环语句

      • while
      • for
    9. 运算符

    10. 字符串格式化

      • %s
      • %d
      • %%
    11. 其它

      • markdow笔记
      • git
        • 本地:git软件
          • git status
          • git add .
          • git commit -m ‘提交记录‘
          • git push origin master
        • 远程:码云 / github(程序员交友平台)
    12. 总结

      1. 语法
        1. 必备:变量 / if / while
        2. 重点:字符串
          1. 独有功能
          2. 公共功能
          3. for
      2. 解决实际问题
        • 逻辑 + 代码

内容详细

01.列表List

如果想要表示两个人名,虽然使用字符串可以做到,但是很难索取分别输出。

 users = '张三,李四'

以后想要表示多个元素可以使用列表。

users = ['张三','李四','王五',100]
  • 公共功能

    • 长度

      users = ['张三','李四','王五',100]
      val = len(users)
      print(val)
      结果:3
    • 索引

      users = ['张三','李四','王五',100]
      val = users[0]
      print(val)
      结果:张三     #类型str
    • 切片

      users = ['张三','李四','王五',100]
      val = users[0:2]
      print(val)
      结果:['张三', '李四']
    • 删除(int/bool/str除外)

      users = ['张三','李四','王五',100]
      del users[1]
      print(users)

      注意:

      • 字符串本身不能被修改(不可变类型) m = ‘alex‘.upper()
      • 列表是可变类型
    • 修改(int/bool/str除外)

      users = ['张三','李四','王五',100]
      users[3] = 66
      users[0] = '赵四'
      #users[0][1]不可修改
    • 步长

      users = ['张三','李四','王五',100]
      val = users[0:2:2]
      print(val)
      结果:['张三']  #类型list
      #习题
      content = input('请输入:')
      n = content.split('+')
      print(n)
      v1 = int(n[0])    #转换的时候,字符串两边空格会自动去除,中间若有空格会报错。
      v2 = int(n[1])
      v3 = v1 + v2
      print(v3)
    • for循环

      users = ['张三','李四','王五',100]
      for i in users:
          print(i)
  • 独有功能

    • 追加模式:.append(元素)

      #示例:用户名密码录入+效验
      users = []
      for i in range(0,3):
          name = input('请输入用户名和密码:')
          users.append(name)
      print(users)
      
      username = input('请输入用户名:')
      password = input('请输入密码:')
      for item in users:
          result = item.split(' ')
          user = result[0]
          pwd = result[1]
          if user == username and pwd == password:
              print('登陆成功')
              break
    • 插入模式:.insert(索引,元素)

      lst = ["林俊杰", "周润发", "周芷若"]
      print(lst)
      lst.insert(1,'李连杰')
      print(lst)
    • 特定删除:.renmove(元素)

    • 索引删除:.pop(索引)

    • 列表清空:.clear()

  • 总结:

    • 增:

      • append / insert
    • 删:

      • remove / pop / clear / del list[索引]
    • 改:

      • list[索引] = 新元素
    • 查:

      • 索引/切片
    • 列表嵌套

      lst = ["林俊杰", "周润发", "周芷若",['张三',['李四','王五',88],'李连杰'],100]
      
      lst[0]
      lst[3]
      lst[3][1]      # ['李四','王五',88]
      lst[3][1][2]   # 88

02.元组Tuple

lst = ['张三','李四','王五',100]   # 列表可变类型

tup = ('张三','李四','王五',100)   # 元组不可变类型
  • 公共功能

    1. 索引(排除:int/bool)

      tup = ('张三','李四','王五',100) 
      print(tup[0])
      print(tup[-1])
    2. 切片(排除:int/bool)

      tup = ('张三','李四','王五',100) 
      print(tup[0:2])
    3. 步长(排除:int/bool)

      tup = ('张三','李四','王五',100) 
      print(tup[0:2:2])
    4. for循环(排除:int/bool)

       tup = ('张三','李四','王五',100) 
      for item in tup:
        print(item)
    5. 长度(排除:int/bool)

       tup = ('张三','李四','王五',100) 
      print(len(tup))
  • 没有独有功能

  • 特殊:元组中的元素不可被修改和删除

    v1 = (11,22,33)
    v1[2] = 999    #错误
    v1 = 999       #正确
    
    元组可以嵌套
    v1 = (11,22,33,(44,55,66),(77,88,(99,111),222))
    
    列表嵌套元组
    v1 = [11,22,33,(11,22,33)]
    v1[-1][1] = 999 #错误
    v1[-1] = 999    #正确
    
    元组嵌套列表
    v1 = (11,[1,2,3],22,33)
    v1[1] = 999     #错误
    v1[1][2] = 999  #正确

总结

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

  2. 字符串补充功能

    • 独有

      • startswith / endswith
      • format
      • encode
      • join
    • 公共

      • 索引
      • 切片

      • 步长(面试题)
      • for循环
        • range
      • len

    • 特性

      • 不可变(str数据元素不可以删除和修改)
  3. git本地和远程要同步,以后之操作本地别操作远程。

  4. 列表(可变)

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

    • 公共
      • 索引
      • 切片
      • 步长
      • for
      • len
    • 无独有功能
    • 嵌套

No.4列表&元组

原文:https://www.cnblogs.com/elliottwave/p/12521780.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!