python学习第四天 数据类型

python学习第四天 数据类型

python学习第四天 数据类型

今日内容

  • 列表
  • 元组

内容回顾

  1. 计算机基础

    • 硬件:CPU/内存/硬盘等等

    • 操作系统

      • linux
      • windows
      • mac
      • windows
      • mac
    • 解释器/编译器

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

        #编译型:写完代码会,编译器将其变成另一个文件,然后交给计算机执行
        #解释型:写完代码交给解释器,解释器从上到下一行一行代码执行,边解释边执行
        
    1. 环境的安装
    • python解释器
    • 开发工具pycharm
    1. py语法
  2. 编码

    • 编码种类
      1. ascii
      2. unicode
      3. utf-8 utf-16
      4. gbk gb2312
    • 中文表示
      1. utf-8 三个字节
      2. gbk 两个字节
    • python默认解释器编码
  3. 输入输出

  4. 数据类型

    1. int
      • py2 中有int/long;py3中只有int
      • 强制转换:int("44")
      • 除法:py2多加一行代码(from_future_ import division) 和 py3(正常)
    2. bool
      • True/False
      • 特殊类型False的其他类型:0跟""
    3. str其他
      • 独有功能
        • upper/lower (变大小写)
        • replace (替换)
        • strip/lstrip/rstrip (去空格)
        • isdigit (是否能转换为数字)
        • 补充
          • startswith/endswith (是否以什么开头,结尾)
    name = 'alex'
    # 判断是否已al开头
    """
    # 方式一:
    flag = name.startswith('al')
    print(flag)
    """
    """
    # 方式二:
    val = name[0:2]
    if val == 'al':
    print('是以al开头')
    else:
    print('不是')
    """
    
    
    • format (格式化)

      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
      
  • 公共功能

    • 索引,获取一个字符

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

    • 步长[0 : -1 : 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循环

      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. 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

  1. 变量

  2. 注释

  3. 条件语句

  4. 循环语句 while for break continue

  5. 运算符

  6. 字符串格式化

    • %s
    • %d
    • %%
  7. 其他

    • markdown笔记
    • git
      • 本地:git软件【常用命令】
        • git status
        • git add .
        • git commit -m ''提交记录
        • git push origin master
      • 远程:码云 / github
      • 面试相关:
        • 写出你常用的git命令。
        • 你们公司是怎么用git做开发的?
          • 在码云或GitHub等代码托管的网站创建自己仓库,创建完之后码云会给我一个仓库地
            址,如:https://gitee.com/old_boy_python_stack_21/190326032.git
          • 自己写代码
          • 将代码提交到远程 仓库
            • 初始化
              • 进入一个任意文件夹,如: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\目录下的内容同步到 码云仓
                  库.
  8. 总结

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

内容详细

### 1.列表
如果想要表示两个同学 users = "李邵,李奇航..."
以后想要表示多个”事物“,可以使用列表
users = ["李邵奇""奇航"90]
  • 公共功能

    • len

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

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

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

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

      注意:

      • 字符串本身不能修改[不可变类型]v1 = "alex".upper()
      • 列表是可变类型
    • 修改(字符串/数字/布尔除外)

      users = ["李邵奇","奇航",99]
      users[2] = 66
      
      users[0] = '李杰'
      users[0][1]
      
    • 步长

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

      """
      实现一个整数加法计算器(两个数相加):
      如: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(conten
      index = 0
      total = 0
      while True:
      	char = content[inde
      	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)
      
    • for循环

      """
      users = ['李邵奇','利奇航','张三丰','李子森']
      for i in users:
      print(i)
      """
      """
      users = ['李邵奇','利奇航','张三丰','李子森']
      for i in users:
      # 第一次循环:i=“李邵奇”
      print(i)
      for ele in i:
      print(ele)
      """
      
      # 练习题:请通过for循环和数字计数器实现:users = ['李邵奇','利奇航','张三丰','李子森']
      """
      0 李邵奇
      1 利奇航
      2 张三丰
      3 李子森
      """
      """
      # 方式一
      users = ['李邵奇','利奇航','张三丰','李子森']
      count = 0
      for i in users:
      print(count,i)
      count += 1
      """
      """
      # 方式二
      users = ['李邵奇','利奇航','张三丰','李子森']
      users_len = len(users) # 4
      for index in range(0,users_len): # [0,1,2,3]
      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) # ['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 在指定的索引位置插入

      • remove 只能删除从左数第一个元素

      • pop 索引位置删除,不加默认删除最后一个

      • clear 删除所有

    • 总结

        • append / insert
        • remove / pop /clear del user[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.元组

  1. 元组书写规范

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

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

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

      users = (11,22,33,"老男孩")
      print(users[0:2])
      
    3. 步长(排除: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)
      
    4. len(排除:int/bool)

    users = (11,22,33,"老男孩")
    print(len(users))
    
  3. 独有功能(无)

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

    # 示例一:
    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
    

总结

  1. 字符串补充功能

    • 独有
      • startswith/endswith (判断以什么开头,结尾)
      • format (格式化)
      • encode (转换用什么编码储存)
      • join (循环每个元素并在元素和元素之间加入连接符)
    • 公共
      • 切片
      • 索引
      • len
      • 步长
      • for循环
      • range(0,10)# 帮助你生成一个数字列表[1,2,3,4,5,6,7,8,9,]
    • 特性
      • 不可变,所以字符串元素不能删除和修改
  2. git 本地要跟远程同步,以后只能操作本地然后提交.

  3. 列表(可变)

    1. 公共
      1. 索引
      2. 切片
      3. 步长
      4. 修改
      5. 删除 del
      6. for
      7. len
    2. 独有
      1. append (追加)
      2. insert ( 在指定的索引位置插入)
      3. pop (索引位置删除,不加默认删除最后一个)
      4. remore (只能删除从左数第一个元素)
      5. clear (删除所有)
    3. 列表嵌套
  4. 元组(不可变)

    1. 公共

      1. 索引
      2. 切片
      3. 步长
      4. for
      5. len
    2. 独有功能(无)

    3. 元祖嵌套

      v3 = (11,[1,2,3],22,33)
      v3[1] = 666 # 错误
      v3[1][2] = 123
      
posted @ 2019-04-01 21:28  oldboylkk  阅读(77)  评论(0)    收藏  举报