python全栈day4

day04 数据类型(二)

今日内容

  • 列表
  • 元组

内容回顾和补充

  1. 计算机基础

    • 硬件:cpu 硬盘 内存 主板 显卡

    • 操作系统

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

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

      • 编译型语言:cc++javac#go

      • 解释型语言:pyphp uby

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

  2. 环境的安装

    • python 解释器
      • py2 2020年不在支持,语法问题
      • py3 建议用
    • 开发工具:pycharm(推荐) /文本编辑器
  3. python 语法

    1. 解释器路径

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

      linux系统应用:

      • 赋予文件可执行权限
      • ./hello.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. python默认解释器编码

        • py3:utf-8
        • py2:acsii
    3. 输入输出

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

      1. int

        • py2 中有:int/long;py3中有int
        • 强制转换:int(“4765”)
        • 除法:py2(多加一行代码) 和py3(正常)
      2. bool

        • True/False (其他语言:true/false)
        • 特殊为False的基他类型: 0和“”
      3. str

        • 独有功能:

          • upper/lower 大小写

          • replace 替换

          • strip/lstrip/rstrip 去空白

          • isdigit 判断是否是数字

          • split/rsplit 切割

          • 补充:

            • startswith/endswith

              name = "alex"
              
              # 判断是否以al开头
              """
              # 方式一
              flag = name.startswith("al")  # 是否以al开头
              print(flag)
              # name.endswith()
              """
              
              """
              # 方式二
              val = name[0:2]
              if val =="al":
                  print("是以alga开头")
              else:
                  print("不是")
              """
              
              name = "alex"
              
              # 判断是否以al开头
              """
              # 方式一
              flag = name.endswith("al")  # 是否以al结尾
              print(flag)
              # name.endswith()
              """
              
            • format

              name = "我叫{0},年龄:{1}".format("ly", 10)
              print(name)
              
            • encode

              name = "李杰"  # 解释器读取到内存后,按照unicode编码存储:8个字节。
              v1 = name.encode("utf-8")
              print(v1)
              
              v2 = name.encode("gbk")
              print(v2)
              
            • join (连接加入)

              name = "alex"  # a_l_e_x
              result = "**".join(name)  # 循环每个元素,并在元素和元素之间加入连接符。 "_"
              print(result)
              
        • 公共功能:

          • 索引,获取一个字符

          • 切片,获取一段字符串(子序列)

          • 步长

            name = "alex"
            # val = name[0:-1:2]
            # val = name[1:-1:2]
            # val = name[1::2]
            # val = name[::2]
            # val = name[-1::2]
            # val = name[-1:0:-1]  # 步长可正可负
            # print(val)
            
            # 笔试题:请将字符串反转。
            print(name[::-1])
            
          • 长度len(),获取字符长度

          • for循环

            name = "alex"
            
            for item in name:
                print(item)
            print("结束")
            
            name = "alex"
            
            for item in name:
                print(item)
            	break
                print("123")
            print("结束")
            
            name = "alex"
            
            for item in name:
                print(item)
                continue
                print("123")
            print("结束")
            
            # 练习题
            
            # 1. for循环打印 “alex” 的每个元素: for > while
            v = "123456789"
            for i in v:
                print(i)
                
                
            # 2. 请打印:1-10
            """
            for i in range(1, 11):  # [1, 2, 3, 4, 6, 7, 8, 9, 10, 11, 12, 13]
                 print(i)
            """
            
            # 3.  请打印:1-10 不要7 for 循环 + range
            """
            for i in range(1, 11):
                if i == 7:
                    continue
                print(i)
            """
            

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

    5. 变量

    6. 注释

    7. 条件语句: if elif else

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

    9. 运算符

    10. 字符串格式化

      • %s
      • %d
      • %%
    11. 其他

      • markdown笔记
      • git
        • 本地:git软件 [常用命令]
          • git status 查看状态
          • git add .
          • git commit -m “提交记录”
          • git push origin master
        • 远程: 码云 / github (程序员交友平台)
        • 面试相关:
          1. 写出你常 用的git命令。
          2. 你们公司是怎么用git做开发的?
            1. 在码云或GitHub等代码托管的网站创建自己仓库,创建 完之后码云会给我一个仓库地址, 如:https://gitee.com/yzwone/oldboy_pyqz_s21.git
            2. 自己写代码。。。。
            3. 将代码提交到远程 仓库。
              • 初始化
                • 进入一个任意文件夹,如:d:homework
                • git init
                • git config 邮箱
                • git config 姓名
                • git remote add origin https://gitee.com/yzwone/oldboy_pyqz_s21.git
                • 注意:至此git已经将d:homework目录管理起来,以后此文件夹有任何变化,git都会检测到。(使用 git status 命令可以查看状态)
              • 代码收集并提交
                • git status
                • git add .
                • git commit -m “修改了新功能”
                • git push origin master 将本地 D:homework目录下的内容同步到码云仓库。
              • 修改代码或删除文件等对本地D :homework 下任何文件做操作。
                • git status
                • git add .
                • git commit -m “修改了新功能”
                • git push origin master 将本地 D:homework目录下的内容同步到码云仓库。
              • [避免]如果远程有本地没有的代码,必须先执行:[可能会引发合并问题]
                • git pull origin master # 把远程文件拉下来
                • git status
                • git add .
                • git commit -m “修改了新功能”
                • git push origin master 将本地 D:homework目录下的内容同步到码云仓库。
    12. 总结

      1. 语法:变量/if/while/运算符(辅助)
        1. 必备:变量/if/while/运算符
        2. 重点:数据类型中上字符串
          1. 独有功能
          2. 公共功能
          3. for
      2. 解决实际问题:
        • 逻辑 + 代码

内容详细

1.列表

​ 如查想要表示两个同学 users = ”李少奇,李启航“

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

users = ["李少奇", "李启航", 99]
  • 公共功能

    • len

      users = ["李少奇", "李启航", 99]
      val = len(users)
      print(val)  # 3
      
    • 索引

      users = ["李少奇", "李启航", 99]
      val = users[0]
      print(val)
      
    • 切片

      users = ["李少奇", "李启航", 99]
      val = users[0:2]
      
    • 删除 del (数字、布尔、字符串除外)

      users = ["李少奇", "李启航", 99]
      # 方式一
      users.pop(1)
      print(users)
      
      # 方式二
      del users[1]
      print(users)
      

      注意:

      • 字符串本身不能修改或删除 [不可变类型] v1 = “alex”.upper()
      • 列表是可变类型

      修改(数字、布尔、字符串除外)

      users = ["李少奇", "李启航", 99]f
      users[2] = 66
      users[0] = "要"
      
      
    • 步长

      users = ["李少奇", "李启航", 99]
      val = users[0:2:2]
      
    • 练习题

      """
      实现一个整数加法计算器(两个数相加):
      
      """
      
      
      # 思路一:
      """
      content = input("请输入:")  # 5+9  或 5 +9 或 5 + 9
      content = content.strip()
      v1 = int(content[0])
      v2 = int(content[-1])
      v3 = v1 + v2
      """
      
      # 思路二:
      """
      content = input("请输入:")  # 5+9  或 5 +9 或 5 + 9
      content_len = len(content)
      index = 0
      total = 0
      while True:
          char = content[index]
          if char.isdigit():
              total += int(char)
      
          index += 1
          if index == content_len:
              break
      print(total)
      """
      
      # 思路三:
      content = input("请输入:")  # 5+9  或 5 +9 或 5 + 9
      result = content.split("+")
      print(result)
      v1 = int(result[0])
      v2 = int(result[1])
      v3 = v1 + v2
      print(v3)
      
    • for 循环

      # 1. for循环
      users = ["李少厅", "liqihang", "zsfen", "李要大"]
      
      for i in users:
          print(i)
      """
      
      """
      users = ["李少厅", "liqihang", "zsfen", "李要大"]
      
      for i in users:
          for ele in i:
              print(ele)
      """
      
      # 练习题:请通过for循环和数字计数器实现: users = ["李少厅", "liqihang", "zsfen", "李要大"]
      """
      # 方式一
      users = ["李少厅", "liqihang", "zsfen", "李要大"]
      
      num = 0
      for i in users:
          print(num, i)
          num += 1
      
      """
      
      # 方式二
      
      users = ["李少厅", "liqihang", "zsfen", "李要大"]
      
      users_len = len(users)
      for index in range(0, users_len):
          print(index, users[index])
      
      
  • 独有功能

    • append,在列表的最后追加一个元素

      users = []
      users.append("alex")
      print(users)
      
      """"
      # 示例一
      users = []
      while True:
          name = input("请输入姓名:")
          users.append(name)
          print(users)
      """
      
      # 录入用户和密码
      
      """
      # 示例二
      users = []
      for i in range(0,3):
          name = input("请输入姓名:")
          users.append(name)
      
      print(users)
      """
      
    • insert

    • remove

    • pop

    • clear

  • 总结:

    • 增:

      • append / insert
    • 删:

      • remove / pop /clear / del users[2]
    • 改:

      • users[3] = “新值”
    • 查:

      • 索引 / 切片
    • 列表嵌套

      users = ["alex",0,True[11,22,33,"老男孩"],[1,["alex","oldboy"],2,3]]
      users[0]
      users[0][2]
      users[3] # [11,22,33,"老男孩"]
      users[3][-1] # "老男孩"
      users[3][-1][1] # "男"
      users[3] = 666
      
      

    2. 元组

    1. 元组书写规范

      users = [11,22,33,"老男孩"]  # 列表(可变)
      users = (11,22,33,"老男孩")  # 元组(不可变)
      
      1. 公共功能

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

      users = (11,22,33,"老男孩")
      print(users[1])
      
      1. 切片(排除:int/bool)
      users = (11,22,33,"老男孩")
      print(users[0:2])
      
      1. 步长(排除:int/bool)
      users = (11,22,33,"老男孩")
      print(users[0:2:2])
      
      1. 删除 (排除:tuple/str/int/bool)

      2. 修改(排除:tuple/str/int/bool)

      3. for 循环 (排除:int/bool)

      users = (11,22,33,"老男孩")
      for item in users:
      	print(item)
      
      1. len (排除:int/bool)
      users = (11,22,33,"老男孩")
      print(len(users))
      

      1. 独有功能(无)

      2. 特殊:元组中的元素(儿子)不可被修改/删除。

      # 示例一:
      v1 = (11,22,33)
      v1[2] = 9  # 错误
      v1 = 999 # 正确
      
      # 示例二:可以嵌套
      v1 = (11,22,33(44,55,66),(11,2,(99,88),3)
      
      # 示例三:嵌套
      v2 = [11,22,33,(11,22,33)]
      v2[-1][1] = 99  # 错误
      v2[-1] = 1324 # 正确
            
      # 示例四 嵌套 元组内的列表内容可以修改
      v3 = (11,[1,2,3],22,33)
      v3[1] = 666 # 错误
      v3[1][2] = 123
      

总结

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

  2. 字符串补充功能

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

    2. 列表(可变)

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

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

    • 元组嵌套

      v3 = (11,[1,2,3],22,33)
      v3[1] = 666 # 错误
      v3[1][2] = 123
      
原文地址:https://www.cnblogs.com/yzwone/p/12161731.html