zoukankan      html  css  js  c++  java
  • 数据分类型

    数据为什么要分类型?

    数据是用来表示状态的,不同的状态就应该用不同的类型的数据去表示,也就是说,对于不同类型的变量需要用不同的数据类型去描述。

    比如我的姓名---->字符串;

    爱好--->列表;

    个人信息--->字典;

    这三者就应该用不同的数据类型存储。

    1.数字类型内置方法:

    int(整型):

    • 用途:年龄、号码、等级、身高、id

    • 定义:可以使用into()方法将纯数字的字符串转为十进制的整型

      y=10
      id_num=123456
      x=int(10)
      z=int('10')
      
    • 常用操作+内置方法:算术运算+比较运算
      (加减乘除...)

    • 存一个值or多个值:一个值

    • 有序 or 无序:(有序的:有索引;无序:无索引)
      无有序无序这一说

    • 可变 or 不可变:不可变数据类型
      可变:值可变id不变,
      不可变:值不变id不变
      即在原值的基础上修改,则为可变数据类型;值变id也变,即重新申请一个空间放入新值,则为不可变数据类型。

    长整型:长整型只在python2中存在,python3中不存在长整型。

    float(浮点型):

    • 用途:薪资、身高、体重、商品价格、钱
    • 定义:可以使用float()方法将纯数字的字符串转为浮点型数字
      x=1.1
      y=1.2
      
    • 常用操作+内置方法:算术运算+比较运算
      (加减乘除...)
    • 存一个值or多个值:一个值
    • 有序 or 无序:无有序无序这一说
    • 可变 or 不可变:不可变数据类型

    2.字符串类型内置方法

    str(字符串):

    1.用途:描述性质的东西,如人的名字、单个爱好、地址、国家等
    2.定义:使用''、""、''''''、""""""包裹的的一串字符
    (三引号和三双引号都可换行)

    • u'unicode': unicode编码的字符串
    • b'101': 二进制编码的字符串
    • r' ': 原生字符串,也就是说' '这是普通的两个字符,并没有换行的意思
      常用操作+内置方法:常用操作和内置方法分为必须记住和了解两个部分。

    非常重要:

    • 按索引取值

    • 切片

    • 长度len

    • 成员运算in /not in

    • 移除空白strip

    • 切分split

    • 循环

    • 按索引取值:(只可取不可改变)

      # str索引取值
      msg = 'hello nick'
      #      0123456789  # 索引序号
      
      print(f'索引为6: {msg[6]}')
      print(f'索引为-3: {msg[-3]}')
      

      索引为6: n
      索引为-3: i

    • 切片(顾头不顾尾,步长):

      了解,步长为正从左到右;步长为负从右到左

      # 索引切片
      msg = 'hello nick'
      #      0123456789  # 索引序号
      print(f'切片3-最后: {msg[3:]}')
      print(f'切片3-8: {msg[3:8]}')
      print(f'切片3-8,步长为2: {msg[3:8:2]}')
      print(f'切片3-最后,步长为2: {msg[3::2]}')
      
      # 了解,步长为正从左到右;步长为负从右到左
      print('
      **了解知识点**')
      print(f'切片所有: {msg[:]}')
      print(f'反转所有: {msg[::-1]}')
      print(f'切片-5--2: {msg[-5:-2:1]}')
      print(f'切片-2--5: {msg[-2:-5:-1]}')
      

      切片3-最后: lo nick
      切片3-8: lo ni
      切片3-8,步长为2: l i
      切片3-最后,步长为2: l ik
      了解知识点
      切片所有: hello nick
      反转所有: kcin olleh
      切片-5--2: ni
      切片-2--5: cin

    • 长度len:

      # str长度
      msg = 'hello nick'
      
      print(len(msg))
      

      10

    • 成员运算in和not in:

      # str成员运算
      msg = 'my name is nick, nick handsome'
      
      print(f"'nick' in msg: {'nick' in msg}")
      print(f"'jason' not in msg: {'jason' not in msg}")
      print(f"not 'jason' in msg: {not 'jason' in msg}")
      

      'nick' in msg: True
      'jason' not in msg: True
      not 'jason' in msg: True

    • 移除空白strip() (移除两端的空白)

      # str移除空白strip()
      name = '&&&n ick'
      
      print(f"name.strip('&'): {name.strip('&')}")  # strip()默认为‘ ’,并且不修改原值,新创建空间
      print(f"name: {name}")
      
      # strip()应用场景
      pwd = input('password: ')  # 用户可能会手抖输入空格
      if pwd.strip() == '123':
          print('密码输入成功')
      
      print(f"'*-& nick+'.strip('*-& +'): {'*-& nick+'.strip('*-& +')}")
      

      name.strip('&'): n ick
      name: &&&n ick
      password: 123
      密码输入成功
      '-& nick+'.strip('-& +'): nick

    • 切分split:

      # str切分split
      info = 'nick:male:19'
      info_list1 = info.split(':')
      info_list2 = info.split(':', 1)
      
      print(f'info_list1:{info_list1}')
      print(f'info_list2:{info_list2}')
      

      info_list1:['nick', 'male', '19']
      info_list2:['nick', 'male:19']

    • 循环:

      msg = 'hello nick'
      for i in msg:
          print(i)
      

      h

      e
      l
      l
      o
      n
      i
      c
      k

    • 非常重要2:

    • lstrip&rstrip左空白&右空白

      # str之lstrip()和rstrip()
      name = '&&nick&&'
      
      print(f"nick.lstrip('&'): {name.lstrip('&')}")
      print(f"nick.rstrip('&'): {name.rstrip('&')}")
      
      nick.lstrip('&'): nick&&
      nick.rstrip('&'): &&nick
      
    • lower&upper小写&大写

      # str之lower()和upper()
      name = 'Nick Chen'
      
      print(f"name.upper(): {name.lower()}")
      print(f"name.upper(): {name.upper()}")
      

      name.upper(): nick chen
      name.upper(): NICK CHEN

    • startswith&endswith以开始结尾&以结尾收尾

      # str之startswith()和endswith()
      name = 'Nick Chen'
      
      print(f"name.startswith('Nick'): {name.startswith('Nick')}")
      print(f"name.endswith('chen'): {name.endswith('chen')}")
      

      name.startswith('Nick'): True
      name.endswith('chen'): False

    • rsplit右切割

      # str之rsplit()
      info = 'nick:male:19'
      
      print(f"info.rsplit(':', 1): {info.rsplit(':', 1)}")  # 从右开始切割
      

      info.rsplit(':', 1): ['nick:male', '19']

    • join 联合

      lis = [1,2,'19']
      print(f"':'.join(lis): {':'.join(lis)}")  # 报错,数字不可和字符串拼接
      
      # str之join()
      lis = ['nick', 'male', '19']
      
      print(f"':'.join(lis): {':'.join(lis)}")
      

      ':'.join(lis): nick:male:19

    • replace替代

      # str值replace()
      name = 'nick shuai'
      
      print(f"name.replace('shuai','handsome'): {name.replace('shuai','handsome')}")
      

      name.replace('shuai','handsome'): nick handsome

    • isdigit是否为数字

      判断结果true or flase,只要是数字就用isdight

      # str值isdigit()
      salary = '111'
      print(salary.isdigit())  # True
      
      salary = '111.1'
      print(salary.isdigit())  # False
      

      True
      False

    了解部分:

    1. find|rfind|index|rindex|count 发现,调出结果/ 从后向前查找字符/索引/从右边查找制定字符串出现的位置/计算
    2. center|ljust|rjust|zfill 中心,中间靠齐/向左靠齐/向右靠齐/向右靠齐,默认用0填充
    3. expandtabs 扩充标签;增加分割符
    4. captalize|swapcase|title 首字母大小写/大小写互转/单个首字母大写
    5. is系列

    ​ is数字系列(只是为了告诉你,判断是否为数字时除了中文数字以后使用isdigit()即可)

    • isdecimal(): 检查字符串是否值包含十进制字符,如果是返回True,否则返回False。
    • isdigit(): 如果字符串只包含数字则返回True,否则返回False。
    • isnumeric(): 如果字符串中只包含数字字符,则返回True,否则返回False。
    1. is其他
    • isalnum(): 如果字符串至少有一个字符并且所有字符都是字母或数字则返回True,否则返回False。
    • isalpha(): 如果字符串至少有一个字符并且所有字符都是字母则返回True,否则返回False。
    • islower(): 如果字符串中只包含至少一个区分大小写的字符,并且所有这些(区分大小写的)字符都是小写,则返回True,否则返回False。
    • isspace(): 如果字符串中只包含空白,则返回True,否则返回False
    • isupper(): 如果字符串中包含至少一个区分大小写的字符,并且所有这些(区分大小写的)字符都是大写,则返回True,否则返回False。
    • istitle(): 如果字符串是标题类型的(见title()),则返回True,否则返回False。
    1. 存一个值or多个值:一个值

    2. 有序or无序:只要是有索引的,都是有序的,因此字符串是有序的。

    3. 可变or不可变:不可变数据类型

  • 相关阅读:
    使用 requests 维持会话
    使用 requests 发送 POST 请求
    使用 requests 发送 GET 请求
    requests 安装
    使用 urllib 分析 Robots 协议
    使用 urllib 解析 URL 链接
    使用 urllib 处理 HTTP 异常
    使用 urllib 处理 Cookies 信息
    使用 urllib 设置代理服务
    按单生产程序发布
  • 原文地址:https://www.cnblogs.com/zhuyuanying123--/p/10914699.html
Copyright © 2011-2022 走看看