day004课堂笔记

day004数据类型 (二)

今日内容

1. 列表

2. 元组

上周内容回顾和补充

1. 计算机基础

  • 硬件:cpu,内存,硬盘,电源,网卡

  • 操作系统:

    • linux

    • windows

    • mac

  • 软件:一个用程序

  • 编译器/解释器

    • 编译器:写完代码之后,编译器将变成一个新的文件交给计算机一次性运行(一大段话的翻译)

    • 解释器:代码交给解释器,解释器会从头到尾逐步一行一行的执行(实时翻译)

2. 环境安装

  • python解释器

    • py2

      • 默认编码ascii码

      • raw_input

      • print ""

      • int/long

    • py3

      • utf-8

3. python语法

  • .py文件

    • linux赋予路径
      #!/usr/bin/env python
      # -*- coding:UTF-8 -*-
  • 编码

      1. 编码种类

        • ascii码

        • unicode

        • utf-8/16

        • gbk

        • gb2312

      2. 输入输出:

        • py2:

          • 输入:raw_input

          • 输出:print ""

        • py3:

          • 输入:input

          • 输出:print()

      3. 数据类型:

        1. int

          • py2中有int/long;py3中只有int

          • 强制转换:int("88")

          • 除法:

            • py2默认不能保留小数,需要加一行代码

            • py3可以保留小数

        2. bool

          • True/False (其他语言: true/false)

          • 特殊为False的类型:0和""(空字符串)

        3. str

          1. 独有功能

            • upper/lower

            • replace

            • strip/lstrip/rstrip

            • isdigit

            • split / rsplit

            • 补充

              • startswith / endswith #判断是否从(__)字符开始

                • name = 'alex'

                  # 判断是否已al开头
                  """
                  # 方式一:
                  flag = name.startswith('al')
                  print(flag)
                  """
                  """
                  # 方式二:
                  val = name[0:2]
                  if val == 'al':
                    print('是以al开头')
                  else:
                    print('不是')
                  """
            • format #占位符格式化类似%s

              • name = "我叫{0},年龄:{1}".format('老男孩',73)
                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)
          2. 公共功能

            • 索引 #获取一个字符

            • 切片 #获取一段字符或子序列

            • 步长 #赋予第一个字符长度的值

              • name = 'alex'

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

            • for in :循环 #可以跟break ;continue

              • name = 'alex' # 逐行打印
                for item in name:
                   print(item)
              • name = 'alex'
                for item in name:
                   print(item)
                   break/continue #结束或返回
                   print('123')
              • # 练习题
                
                # 1. for循环打印 “alex” 的每个元素: for > while
                
                # 2. 请打印: 1 - 10
                """
                 for i in range(1,11): # [1,2,3,4,5,6,7,8,9,10,11,12,14]  "12345678910"
                     print(i)
                """
                
                # 3. 请打印: 1 2 3 4 5 6 8 9 10
                """
                for i in range(1,11):
                    if i == 7:
                        pass
                    else:
                        print(i)
                """
                
                • 注意:for和while的应用场景:有穷尽优先使用for,无穷尽用while

4. 变量

  • 字母,数字,下划线组成.

  • 不能数字开头或全数字

  • 不能用py关键字

  • 简单明了

  • 建议使用下划线格式

5. 注释

  • '''/"""
    多行注释
    '''/"""
    

6. 条件语句

  • if 条件:
        else/elif
    

7. 循环语句

  • for in; while

    • break/continue

8. git

  • 本地:git软件【常用命令】

    • git status

    • git add .

    • git commit -m ''提交记录'

    • git push origin master

  • 远程:码云 / github(程序员交友平台)

  • 面试相关

    • 写出你常用的git命令。

    • 你们公司是怎么用git做开发的?

      1. 在码云或GitHub等代码托管的网站创建自己仓库,创建完之后码云会给我一个仓库地址,如:https://gitee.com/old_boy_python_stack_21/190326032.git

      2. 自己写代码.....

      3. 将代码提交到远程 仓库。

        • 初始化

          • 进入一个任意文件夹,如:D:\homework\

          • git init

          • git config 邮箱

          • git config 姓名

          • git remote add origin https://gitee.com/old_boy_python_stack_21/190326032.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\目录下的内容同步到 码云仓库。

今日内容

1. 列表

### 1. 列表
  • 表示多个”事物“,可以使用列表

    • #如果想要表示两个同学 users = "李明,珍妮...".

      • users = ["李明","珍妮",99]
        print(users)  #['李明', '珍妮', 99]
        

公共功能

  • len

    • users = ["李明","珍妮",99]
      users_len = len(users)
      print(users_len)  #3
      
  • 索引

    • users = ["李明","珍妮",99]
      users_1 = users[0]
      print(users_1)  #['李明']
      
  • 切片

    • users = ["李明","珍妮",99]
      users_1 = users[0:2]
      print(users_1)  #['李明', '珍妮']
      
  • 删除

    • users = ["李明","珍妮",99]
      users.pop(0)
      print(users)  #['珍妮', 99]
      
    • users = ["李明","珍妮",99]
      del users[0]
      print(users)  #['珍妮', 99]
      
  • 修改 #字符串/bool值/数字除外

    • users = ["李明","珍妮",99]
      users[0] = '戴尼'
      print(users)  #['戴尼', '珍妮', 99]
      
  • 步长

    • users = ["李明","珍妮",99]
      users_1 = users[0:-1:1]
      print(users_1)  #['李明', '珍妮']
      
  • 练习题

    • """
      实现一个整数加法计算器(两个数相加):
      
      如:content = input("请输入内容:") 用户输入:5+9或5+ 9或5 + 9(含空白),然后进行分割转换最终进行整数的计算得到结果。
      """
      
      
      
      # 思路一:
      """
      content = input('请输入:') # [5+9]  或 [5 +9]  或者 [ 5 + 9 ]
      content = content.strip() # [5+9]  或 [5 +9]  或者 [5 + 9]
      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) # ['55 ', ' 99 ']
      v1 = int(result[0]) # "55"
      v2 = int(result[1]) # " 99 "
      v3 = v1 + v2
      print(v3)
      """
      
  • 注意:

    • 字符串本身不能修改或删除【不可变类型】 v1 = "alex".upper()

    • 列表是可变类型。

独有功能

  • 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) # ['alex,123', 'oldboy,888', 'lishaoqi,123']
      
      # 用户和密码校验
      username = input('请输入要登陆用户名:')
      password = input('请输入要登陆密码:')
      for item in users:
          result = item.split(',') # ['alex','123']
          user = result[0]
          pwd = result[1]
          if user == username and pwd == password:
              print('登陆成功')
              break
              
      """
      
  • insert #在指定索引位置进行插入元素

    • users = ["李明","珍妮",99]
      users.insert(1,'带你')
      print(users)  #['李明', '带你', '珍妮', 99]
      
  • remove #删除

    • users = ["李明","珍妮",99]
      users.remove('李明')
      print(users)  #['珍妮', 99]
      
  • clear #全部删除

    • users = ["李明","珍妮",99]
      users.clear()
      print(users)
      
  • 总结

    • 增:

      • 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[2]
      users[0][2]
      users[3] # [11,22,33,"老男孩"]
      users[3][-1] # "老男孩"
      users[3][-1][1] # '男'
      users[3] = 666
      

2. 元组

元组格式

  • users = [11,22,33,"老男孩"] # 列表(可变)
    
    users = (11,22,33,"老男孩") # 元组(不可变)
    

公共功能

  1. 索引

  2. 切片

  3. 步长

  4. for循环

  5. len计算长度

没有独有功能

特殊

  • 元组中的元素(儿子)不可被修改/删除。

  • # 示例一:
    v1 = (11,22,33)
    v1[1] = 999 # 错误
    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] = 123 # 正确
    
    # 示例四:嵌套
    v3 = (11,[1,2,3],22,33)
    v3[1] = 666 # 错误
    v3[1][2] = 123
    

猜你喜欢

转载自www.cnblogs.com/Mrdalu/p/10640340.html