为什么会有数据类型?

在介绍具体的数据类型之前,需要了解为什么需要区分数据类型。我们知道,一个公司会有很多个大的部门,每个部门下又会有许多细分的小部门,构成了公司的完整体系结构。如果把python的数据整体看做是一个公司,那么数据下面会有几个大部门——基本数据类型,而在每个大部门下还有众多小部门——内置方法及功能,每一条数据就像一个员工,会在不同的部门发挥作用。公司有这样的层级是为了提升管理效果,同理,python区分数据类型也是为了:更好的管理内存、便于管理数据,便有人类理解。

为了更好的说明,各种数字类型将按照下面的格式说明:

在这里插入代码片

#=基本使用===
#1、用途
#2、定义方式
#3、常用操作+内置的方法
#该类型总结
#存一个值or存多个值
#有序or无序
#可变or不可变(1、可变:值变,id不变。可变不可hash 2、不可变:值变,id就变。不可变==可hash)

 

整型(int)

  1. 用途
    整数类型就是用来表示年龄、年份等这些由数学上的整数构成的数据类型

  2. 定义方式
    x = 10 # x = int(10)
    由上面的定义方式可知,可以通过int()来转换整数类型,但是需要注意:只有全部由数字组成的字符串,才能转换成整型,数字两边可以有空格,但是数字字符间不允许有其他任意符号
    示例1:

  3. 常用操作+内置的方法
    整型没有太多操作与内置方法,常用的就是算术运算、比较运算、逻辑运算等,此处不做过多讲解

  4. 总结
    存放一个值
    不可变类型

浮点型(float)

  1. 用途
    整数类型就是用来表示身高、薪资等用小数表示的数据类型

  2. 定义方式
    x = 4.3 # x = float(4.3)
    由上面的定义方式可知,可以通过float()来转换浮点数类型,浮点数类型不仅可以将只包含小数的字符串转化成浮点型,字符串内包含整数也是可以转化的。

  3. 常用操作+内置的方法
    浮点型没有太多操作与内置方法,常用的就是算术运算、比较运算、逻辑运算等,此处不做过多讲解

  4. 总结
    存放一个值
    不可变类型

字符串类型(str)

  1.用途
     用于记录描述性质的状态

  2.定义方式
     在"",’’,""" “”",’’’ ‘’'内包含一串字符
         
         字符串转化:字符串可以将任何类型的数据转化成字符串。
         
  3、常用操作+内置的方法
             首先是我们最常用的一些操作和方法

  1. 按照索引取值,可取不可改

  2. 切片,顾头不顾尾,可以指定步长

  3. 长度len()
    返回字符串的长度

  4. 成员运算in 和 not in
    判断子字符串是否包含在原字符串中,返回布尔值

  5. 移除特殊符号stirp()
    默认字符串两头移除空格,挡在strip中指定参数后,可移除字符串两头的相应元素

  6. 切分split()
    根据字符串内部有规律的符号,将字符串切分成一个包含多个元素的列表

  7. 字符串和可以通过for循环遍历每一个字符


    8、一些常用的方法

# stirp、lstrip、rstrip,都可以实现移除特殊字符
msg = "****123****"
msg.strip("*") # 移除两头的"*": "123"
msg.lstrip("*") # 移除左边的"*": "123****"
msg.rstrip("*") # 移除右边的"*": "****123" # split、rsplit
msg = "12:23:34:56:78"
msg.split(":",2) # 从左边,按照":"分隔符,切分两次:
# ['12','23','34:56:78']
msg.rsplit(":",2) # 从右边,按照":"分隔符,切分两次:
# ['12:23:34','56','78'] # lower、upper 大小写转换
msg = "Wo SHI XiGazhi"
msg.lower() # 全小写:"wo shi xiguazhi"
msg.upper() # 全大写:"WO SHI XIGUAZHI" # startswith、endswith,判断开头或者结尾元素,返回布尔值
msg = "dsfgksdhal"
msg.startswith("dsf") # >>>Trueu
msg.endswith("hl") # >>>False # join(),拼接字符串类型,类似:字符串+字符串
msg = ['sd','saf','fbbdf']
":".join(msg) # 将msg中的字符串用":"连接起来,相当于split()反向操作 # replace(原值,新值,替换次数),复制原有字符串,并将用新元素更新原来的元素,返回新的字符串
msg = "wo shi ha ha shi wo ni shi"
msg.replace("shi","bushi",2) # 用"bushi"替换"shi",替换两次:
# "wo bushi ha ha bushi wo ni shi"
print(msg.replace("ha","xi")) # 默认全部替换:"wo shi xi xi shi wo ni shi" # isdight,判断字符串是否全部由数字组成,返回布尔值
x = b"4" # 字节串
y = "4" # 阿拉伯数字4
z = "四" # 中文汉字四
m = "Ⅳ" # 罗马数字Ⅳ
x.isdigit() # True,字节串认为是全部由数字组成
y.isdigit() # True,阿拉伯数字认为是数字
z.isdigit() # False,中文汉字不是数字类型
m.isdigit() # False,罗马数字不是数字类型 # format方法,对字符串进行格式化
x = "zhang"
y = 20
"wo shi {} age {}".format(x,y) # 将x,y顺序填充进{}:"wo shi zhang age 20"
"wo shi {y} age {x}".format(x,y) # 不再顺序填充,根据变量填充:
# "wo shi 20 age zhang"
"wo shi {0} {1} {0}".format(x,y) # 将按照索引,把对应的x,y填充:
# "wo shi zhang 20 zhang"

  9.一些不常用,但是需要知道的方法

```python
#1、find,rfind,index,rindex,count
msg = "hello zhang xxx zhang yyy zhang zzz"
msg.find("zhang",0,5) # 查找字符串中子字符串第一次出现时的索引,可以指定查找范围(0,5),没有不会报错: > None
msg.find("zhang") # 默认检索整个字符串: > 6
msg.rfind("zhang") # 从右边开始检索,可以指定检索范围: > 26 # msg.index("zhang",1,5) # 和find几乎一样,唯一区别是未找到报错: > 报错
msg.rindex("zhang") # 和find几乎一样,未找到报错: > 6 msg.count("zhang",1,20) # 计算子字符串出现了几次,可以指定检索范围: > 2 # center,ljust,rjust,zfill
msg = "*"
msg.center(20," ") # 指定输入宽度为20,"*"居中显示,其余用空格填充:
# " * "
msg.ljust(20,"0") # 指定输入宽度为20,居左显示,其余用0填充:
# *000000000000000000
msg.rjust(20,"-") # 居右显示,宽度为20,其余用"-"填充:
# ------------------*
msg.zfill(20) # 居右显示,默认用0填充,等价于:msg.rjust(20,"0") # captalize,swapcase,title
msg = "hellO woRld"
msg.capitalize() # 字符串首字母大写: Hello world
msg.swapcase() # 两级反转,大小写互换: HELLo WOrLD
msg.title() # 单词首字母大写: Hello World #、is数字系列
num1=b'4' #bytes
num2='4' # 阿拉伯数字
num3='四' #中文数字
num4='Ⅳ' #罗马数字 # 1、变量值是字节串或字符串类型并且包含的阿拉伯数字,isdigit()结果才为真
print(num1.isdigit())
print(num2.isdigit())
print(num3.isdigit())
print(num4.isdigit()) # 2、变量值是字符串类型并且包含的阿拉伯数字,isdecimal()结果才为真
print(num2.isdecimal())
print(num3.isdecimal())
print(num4.isdecimal()) # 3、变量值是字符串类型并且包含的阿拉伯数字\中文数字\罗马数字,isdecimal()结果才为真
print(num2.isnumeric())
print(num3.isnumeric())
print(num4.isnumeric()) #5、is其他
name='egon123'
print(name.isalnum()) #字符串由字母或数字组成
print(name.isalpha()) #字符串只由字母组成

  4、总结
  存放一个值
  不可变类型

列表(list)

元组(tuple)

字典(dict)

咱们下期见!

Python基础之数据类型详解的更多相关文章

  1. Python基础之数据类型详解(2)

    今天继续昨天的python基本数据类型详解,按照上一篇博文的格式,接下来讲解列表.元组.字典以及集合. 列表 1.用途按位置存放多个值2.定义在[]内用逗号分割开多个任意类型的元素 # 定义列表 # ...

  2. python基础之函数详解

    Python基础之函数详解 目录 Python基础之函数详解 一.函数的定义 二.函数的调用 三.函数返回值 四.函数的参数 4.1 位置参数 4.2 关键字参数 实参:位置实参和关键字参数的混合使用 ...

  3. python基础知识——字符串详解

    大多数人学习的第一门编程语言是C/C++,个人觉得C/C++也许是小白入门的最合适的语言,但是必须承认C/C++确实有的地方难以理解,初学者如果没有正确理解,就可能会在使用指针等变量时候变得越来越困惑 ...

  4. python之数据类型详解

    python之数据类型详解 二.列表list  (可以存储多个值)(列表内数字不需要加引号) sort s1=[','!'] # s1.sort() # print(s1) -->['!', ' ...

  5. python 数据类型详解

    python数据类型详解 参考网址:http://www.cnblogs.com/linjiqin/p/3608541.html 目录1.字符串2.布尔类型3.整数4.浮点数5.数字6.列表7.元组8 ...

  6. python数据类型详解(全面)

    python数据类型详解 目录1.字符串2.布尔类型3.整数4.浮点数5.数字6.列表7.元组8.字典9.日期 1.字符串1.1.如何在Python中使用字符串a.使用单引号(')用单引号括起来表示字 ...

  7. 转 python数据类型详解

    python数据类型详解 目录 1.字符串 2.布尔类型 3.整数 4.浮点数 5.数字 6.列表 7.元组 8.字典 9.日期 1.字符串 1.1.如何在Python中使用字符串 a.使用单引号(' ...

  8. Python数据类型详解——列表

    Python数据类型详解--列表 在"Python之基本数据类型概览"一节中,大概介绍了列表的基本用法,本节我们详细学一下列表. 如何定义列表:在[]内以英文里输入法的逗号,,按照 ...

  9. Python数据类型详解——元组

    Python数据类型详解--元组 有时候我们的列表数据不想被别人修改时该怎么办? 此时,就可以使用元组来存放,元祖又称为只读列表,不能修改 定义方式:与列表类似,将列表的[]换成()即可. 特性: 1 ...

随机推荐

  1. How To Install Linux & Nginx & MySQL & PHP (LEMP) stack on Raspberry Pi 3,Raspberry Pi 3,LEMP,Nginx,PHP, LEMP (not LNMP)

    1.   How To Install Linux & Nginx & MySQL & PHP (LEMP) stack on Raspberry Pi 3         R ...

  2. reStructuredText(.rst) && read the docs

    Read the Docs   &&  reStructuredText (.rst)  && markdown 1. github master 分支,创建 docs ...

  3. robots.txt

    robots.txt A robots.txt file tells search engine crawlers which pages or files the crawler can or ca ...

  4. vue mixin执行覆盖

    https://cn.vuejs.org/v2/guide/mixins.html 完整代码 vue-option-overwrite-strategies vue 自带的mixin如果钩子函数重复会 ...

  5. 解决ROS及Fast-RTPS安装和使用中raw.githubusercontent.com无法连接的问题

    资料参考: https://blog.csdn.net/weixin_44692299/article/details/105869229

  6. 01_MySQL从下载—>安装—>到快速上手

    一.MySQL下载 二.MySQL安装 三.MySQL几条简单命令快速上手(增删改查) 一.MySQL下载与安装 下载地址:https://dev.mysql.com/downloads/mysql/ ...

  7. JDK源码阅读-ByteBuffer

    本文转载自JDK源码阅读-ByteBuffer 导语 Buffer是Java NIO中对于缓冲区的封装.在Java BIO中,所有的读写API,都是直接使用byte数组作为缓冲区的,简单直接.但是在J ...

  8. 4. Vue基本指令

    目录 1. v-on指令 2. v-if指令 3. v-show指令 4. v-for指令 5. v-model指令 一. v-on指令 1. 基础用法 v-on是事件监听的指令, 下面来看简单用法 ...

  9. spring-ioc心得

    1.创建spring容器,严格的来说就是创建ClassPathXmlApplicationContext对象, 该对象属于ApplicationContext类型(是一个接口)该接口下有很多实现类, ...

  10. 无法将“node.exe”项识别为 cmdlet、函数、脚本文件或可运行程序的名称

    有些天没有启动前端项目,发现npm run dev,启动不了,经过一番查找发现问题所在 然后我查看了一下报错位置,发现并没有改动过什么 解决方法: 方法一: 检查一下npm目录: 这里发现少了node ...